<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/">
    <channel>
        <title>Metals Blog</title>
        <link>http://scalameta.org/metals/blog</link>
        <description>Metals Blog</description>
        <lastBuildDate>Tue, 07 Apr 2026 00:00:00 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <language>en</language>
        <item>
            <title><![CDATA[Metals v1.6.7 - Osmium]]></title>
            <link>http://scalameta.org/metals/blog/2026/04/07/osmium</link>
            <guid>http://scalameta.org/metals/blog/2026/04/07/osmium</guid>
            <pubDate>Tue, 07 Apr 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[We're happy to announce the release of Metals v1.6.7, which mostly focuses on]]></description>
            <content:encoded><![CDATA[<p>We're happy to announce the release of Metals v1.6.7, which mostly focuses on
bugfixes and improvements. It also brings long-requested features: automatic
decompilation and stdio transport support for the Metals MCP server.</p>
<table><tbody><tr><td>Commits since last release</td><td align="center">37</td></tr><tr><td>Merged PRs</td><td align="center">37</td></tr><tr><td>Contributors</td><td align="center">9</td></tr><tr><td>Closed issues</td><td align="center">5</td></tr><tr><td>New features</td><td align="center">2</td></tr></tbody></table>
<p>For full details:
<a href="https://github.com/scalameta/metals/milestone/86?closed=1" target="_blank" rel="noopener noreferrer" class="">https://github.com/scalameta/metals/milestone/86?closed=1</a></p>
<p>Metals is a language server for Scala that works with VS Code, Vim, Emacs, Zed,
Helix and Sublime Text. Metals is developed at the
<a href="https://scala.epfl.ch/" target="_blank" rel="noopener noreferrer" class="">Scala Center</a> and <a href="https://virtuslab.com/" target="_blank" rel="noopener noreferrer" class="">VirtusLab</a>
with help from contributors in the community.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="tldr">TL;DR<a href="http://scalameta.org/metals/blog/2026/04/07/osmium#tldr" class="hash-link" aria-label="Direct link to TL;DR" title="Direct link to TL;DR" translate="no">​</a></h2>
<p>Check out <a href="https://scalameta.org/metals/" target="_blank" rel="noopener noreferrer" class="">https://scalameta.org/metals/</a>, and
give Metals a try!</p>
<ul>
<li class=""><a href="http://scalameta.org/metals/blog/2026/04/07/osmium#stdio-transport-support-for-the-metals-mcp-server" class="">Stdio transport support for the Metals MCP server</a></li>
<li class=""><a href="http://scalameta.org/metals/blog/2026/04/07/osmium#automatic-decoding-of-class-semanticdb-and-tasty-files" class="">Automatic decoding of <code>.class</code>, <code>.semanticdb</code>, and <code>.tasty</code> files</a></li>
<li class=""><a href="http://scalameta.org/metals/blog/2026/04/07/osmium#miscellaneous" class="">Miscellaneous</a></li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="stdio-transport-support-for-the-metals-mcp-server">Stdio transport support for the Metals MCP server<a href="http://scalameta.org/metals/blog/2026/04/07/osmium#stdio-transport-support-for-the-metals-mcp-server" class="hash-link" aria-label="Direct link to Stdio transport support for the Metals MCP server" title="Direct link to Stdio transport support for the Metals MCP server" translate="no">​</a></h2>
<p>Thanks to <a href="https://github.com/majk-p" target="_blank" rel="noopener noreferrer" class="">majk-p</a> it's now possible to use the Metals
MCP server over stdio transport in addition to HTTP transport. This is
particularly useful when running agentic tools that do not support per-workspace
configuration.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="automatic-decoding-of-class-semanticdb-and-tasty-files">Automatic decoding of .class, .semanticdb, and .tasty files<a href="http://scalameta.org/metals/blog/2026/04/07/osmium#automatic-decoding-of-class-semanticdb-and-tasty-files" class="hash-link" aria-label="Direct link to Automatic decoding of .class, .semanticdb, and .tasty files" title="Direct link to Automatic decoding of .class, .semanticdb, and .tasty files" translate="no">​</a></h2>
<p>When using Visual Studio Code or its forks, Metals can now automatically decode
<code>.class</code>, <code>.semanticdb</code>, and <code>.tasty</code> files. Metals registers itself as a
separate editor type for these formats, so you can choose Metals when opening a
binary file and optionally set it as the default editor for that file type.</p>
<p>This is also controlled by the settings:</p>
<div class="language-json codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#bfc7d5;--prism-background-color:#292d3e"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-json codeBlock_bY9V thin-scrollbar" style="color:#bfc7d5;background-color:#292d3e"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#bfc7d5"><span class="token plain">"workbench.editorAssociations": {</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">    "*.class": "metals.classDecoder",</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">    "*.tasty": "metals.classDecoder",</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">    "*.semanticdb": "metals.classDecoder"</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">},</span><br></div></code></pre></div></div>
<p>or can be used on a case-by-case basis when opening any of the three supported
binary files.</p>
<p>In VS Code, Metals will not be used by default for binary files; you still need
to go through "Open anyway" in the dialog, so this change should not affect users
who are not interested in decoding these files.</p>
<p>For <code>.class</code> files, you can set the decoder to CFR or <code>javap</code>; CFR is the default.</p>
<div class="language-json codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#bfc7d5;--prism-background-color:#292d3e"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-json codeBlock_bY9V thin-scrollbar" style="color:#bfc7d5;background-color:#292d3e"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#bfc7d5"><span class="token plain">"metals.classDecoder": "cfr", // also "javap", "javap-verbose", "none"</span><br></div></code></pre></div></div>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="miscellaneous">Miscellaneous<a href="http://scalameta.org/metals/blog/2026/04/07/osmium#miscellaneous" class="hash-link" aria-label="Direct link to Miscellaneous" title="Direct link to Miscellaneous" translate="no">​</a></h2>
<ul>
<li class="">fix(tests): support method call syntax for behavior.of in AnyFlatSpec.
<a href="https://github.com/nanjo712" target="_blank" rel="noopener noreferrer" class="">nanjo712</a></li>
<li class="">improvement: Return only last version in find-dep tool instead of all
versions. <a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a></li>
<li class="">Support generating opencode config in metals-mcp.
<a href="https://github.com/majk-p" target="_blank" rel="noopener noreferrer" class="">majk-p</a></li>
<li class="">Add --list-settings flag to print all user configuration options in metals
CLI. <a href="https://github.com/matejcerny" target="_blank" rel="noopener noreferrer" class="">matejcerny</a></li>
<li class="">bugfix: Fix potential Metals classpath issue with duplicated AutoImports class
<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a></li>
<li class="">bugfix: Detect Bazel rules name instead of assuming a name for a specific
Bazel version. <a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a></li>
<li class="">bugfix: Fix an issue with running tests with an empty scalatest prefix
<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a></li>
<li class="">Better heuristic for guessing the name of the Scala rule set
<a href="https://github.com/odisseus" target="_blank" rel="noopener noreferrer" class="">odisseus</a></li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="contributors">Contributors<a href="http://scalameta.org/metals/blog/2026/04/07/osmium#contributors" class="hash-link" aria-label="Direct link to Contributors" title="Direct link to Contributors" translate="no">​</a></h2>
<p>Big thanks to everybody who contributed to this release or reported an issue!</p>
<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#bfc7d5;--prism-background-color:#292d3e"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#bfc7d5;background-color:#292d3e"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#bfc7d5"><span class="token plain">$ git shortlog -sn --no-merges v1.6.6..v1.6.7</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">     18	Tomasz Godzik</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">     8	dependabot[bot]</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">     4	scalameta-bot</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">     2	Michał Pawlik</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">     1	BrianHotopp</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">     1	Jiacong Ye</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">     1	Krzysztof Maliszewski</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">     1	Matej Cerny</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">     1	Myroslav</span><br></div></code></pre></div></div>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="v167-2026-04-07"><a href="https://github.com/scalameta/metals/tree/v1.6.7" target="_blank" rel="noopener noreferrer" class="">v1.6.7</a> (2026-04-07)<a href="http://scalameta.org/metals/blog/2026/04/07/osmium#v167-2026-04-07" class="hash-link" aria-label="Direct link to v167-2026-04-07" title="Direct link to v167-2026-04-07" translate="no">​</a></h2>
<p><a href="https://github.com/scalameta/metals/compare/v1.6.6...v1.6.7" target="_blank" rel="noopener noreferrer" class="">Full Changelog</a></p>
<p><strong>Merged pull requests:</strong></p>
<ul>
<li class="">improvement: Also add metals v2 methods to RawPresentationCompiler
<a href="https://github.com/scalameta/metals/pull/8289" target="_blank" rel="noopener noreferrer" class="">#8289</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">build(deps): bump lodash from 4.17.23 to 4.18.1 in /website
<a href="https://github.com/scalameta/metals/pull/8287" target="_blank" rel="noopener noreferrer" class="">#8287</a>
(<a href="https://github.com/dependabot%5Bbot%5D" target="_blank" rel="noopener noreferrer" class="">dependabot[bot]</a>)</li>
<li class="">build(deps): bump coursier/setup-action from 2 to 3 in the github-actions
group <a href="https://github.com/scalameta/metals/pull/8284" target="_blank" rel="noopener noreferrer" class="">#8284</a>
(<a href="https://github.com/dependabot%5Bbot%5D" target="_blank" rel="noopener noreferrer" class="">dependabot[bot]</a>)</li>
<li class="">build(deps-dev): bump @types/node from 25.3.3 to 25.5.0 in /website in the
npm-dependencies group <a href="https://github.com/scalameta/metals/pull/8285" target="_blank" rel="noopener noreferrer" class="">#8285</a>
(<a href="https://github.com/dependabot%5Bbot%5D" target="_blank" rel="noopener noreferrer" class="">dependabot[bot]</a>)</li>
<li class="">chore: Suggest changing metals.macos-max-watch-roots
<a href="https://github.com/scalameta/metals/pull/8283" target="_blank" rel="noopener noreferrer" class="">#8283</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">chore: Test Metals with Scala 3.8.3
<a href="https://github.com/scalameta/metals/pull/8211" target="_blank" rel="noopener noreferrer" class="">#8211</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">build(deps): bump brace-expansion from 1.1.12 to 1.1.13 in /website
<a href="https://github.com/scalameta/metals/pull/8281" target="_blank" rel="noopener noreferrer" class="">#8281</a>
(<a href="https://github.com/dependabot%5Bbot%5D" target="_blank" rel="noopener noreferrer" class="">dependabot[bot]</a>)</li>
<li class="">build(deps): bump node-forge from 1.3.2 to 1.4.0 in /website
<a href="https://github.com/scalameta/metals/pull/8282" target="_blank" rel="noopener noreferrer" class="">#8282</a>
(<a href="https://github.com/dependabot%5Bbot%5D" target="_blank" rel="noopener noreferrer" class="">dependabot[bot]</a>)</li>
<li class="">Better heuristic for guessing the name of the Scala rule set
<a href="https://github.com/scalameta/metals/pull/8270" target="_blank" rel="noopener noreferrer" class="">#8270</a>
(<a href="https://github.com/odisseus" target="_blank" rel="noopener noreferrer" class="">odisseus</a>)</li>
<li class="">bugfix: Fix constructing invalid symbol
<a href="https://github.com/scalameta/metals/pull/8277" target="_blank" rel="noopener noreferrer" class="">#8277</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">docs: add jarchive to Emacs setup for dependency source navigation
<a href="https://github.com/scalameta/metals/pull/8280" target="_blank" rel="noopener noreferrer" class="">#8280</a>
(<a href="https://github.com/BrianHotopp" target="_blank" rel="noopener noreferrer" class="">BrianHotopp</a>)</li>
<li class="">build(deps): bump picomatch from 2.3.1 to 2.3.2 in /website
<a href="https://github.com/scalameta/metals/pull/8278" target="_blank" rel="noopener noreferrer" class="">#8278</a>
(<a href="https://github.com/dependabot%5Bbot%5D" target="_blank" rel="noopener noreferrer" class="">dependabot[bot]</a>)</li>
<li class="">feature: Add a tool to return contents of a specific class
<a href="https://github.com/scalameta/metals/pull/8250" target="_blank" rel="noopener noreferrer" class="">#8250</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">feat: Add stdio transport support for Metals MCP server
<a href="https://github.com/scalameta/metals/pull/8266" target="_blank" rel="noopener noreferrer" class="">#8266</a>
(<a href="https://github.com/majk-p" target="_blank" rel="noopener noreferrer" class="">majk-p</a>)</li>
<li class="">bugfix: Fix an issue with an empty scalatest prefix
<a href="https://github.com/scalameta/metals/pull/8274" target="_blank" rel="noopener noreferrer" class="">#8274</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">docs: Add AGENTS.md file
<a href="https://github.com/scalameta/metals/pull/8275" target="_blank" rel="noopener noreferrer" class="">#8275</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">bugfix: Detect rules name instead of assuming a specific version
<a href="https://github.com/scalameta/metals/pull/8265" target="_blank" rel="noopener noreferrer" class="">#8265</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">bugfix: Fix potential issue with duplicated AutoImports class
<a href="https://github.com/scalameta/metals/pull/8264" target="_blank" rel="noopener noreferrer" class="">#8264</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">Add --list-settings flag to print all user configuration options
<a href="https://github.com/scalameta/metals/pull/8260" target="_blank" rel="noopener noreferrer" class="">#8260</a>
(<a href="https://github.com/matejcerny" target="_blank" rel="noopener noreferrer" class="">matejcerny</a>)</li>
<li class="">build(deps): bump undici from 6.23.0 to 6.24.1 in /website
<a href="https://github.com/scalameta/metals/pull/8262" target="_blank" rel="noopener noreferrer" class="">#8262</a>
(<a href="https://github.com/dependabot%5Bbot%5D" target="_blank" rel="noopener noreferrer" class="">dependabot[bot]</a>)</li>
<li class="">chore: Add new config options to presentation compiler conf
<a href="https://github.com/scalameta/metals/pull/8258" target="_blank" rel="noopener noreferrer" class="">#8258</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">Support generating opencode config in metals-mcp
<a href="https://github.com/scalameta/metals/pull/8247" target="_blank" rel="noopener noreferrer" class="">#8247</a>
(<a href="https://github.com/majk-p" target="_blank" rel="noopener noreferrer" class="">majk-p</a>)</li>
<li class="">improvement: Return only last version in find-dep tool
<a href="https://github.com/scalameta/metals/pull/8249" target="_blank" rel="noopener noreferrer" class="">#8249</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">fix(tests): support method call syntax for behavior.of in AnyFlatSpec
<a href="https://github.com/scalameta/metals/pull/8248" target="_blank" rel="noopener noreferrer" class="">#8248</a>
(<a href="https://github.com/nanjo712" target="_blank" rel="noopener noreferrer" class="">nanjo712</a>)</li>
<li class="">build(deps): Update scribe, scribe-file, scribe-slf4j2 from 3.17.0 to 3.18.0
<a href="https://github.com/scalameta/metals/pull/8244" target="_blank" rel="noopener noreferrer" class="">#8244</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update mill-contrib-testng from 1.1.2 to 1.1.3
<a href="https://github.com/scalameta/metals/pull/8243" target="_blank" rel="noopener noreferrer" class="">#8243</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update munit from 1.2.3 to 1.2.4
<a href="https://github.com/scalameta/metals/pull/8245" target="_blank" rel="noopener noreferrer" class="">#8245</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update cli_3, scala-cli-bsp from 1.12.3 to 1.12.4
<a href="https://github.com/scalameta/metals/pull/8246" target="_blank" rel="noopener noreferrer" class="">#8246</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">docs: simplify install instructions
<a href="https://github.com/scalameta/metals/pull/8240" target="_blank" rel="noopener noreferrer" class="">#8240</a>
(<a href="https://github.com/kmaliszewski9" target="_blank" rel="noopener noreferrer" class="">kmaliszewski9</a>)</li>
<li class="">bugfix: Default to 0 if minor or patch are missing, log warning
<a href="https://github.com/scalameta/metals/pull/8232" target="_blank" rel="noopener noreferrer" class="">#8232</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">improvement: Add relevant methods from Metals v2
<a href="https://github.com/scalameta/metals/pull/8238" target="_blank" rel="noopener noreferrer" class="">#8238</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">improvement: Log which symbols we wanted to insert
<a href="https://github.com/scalameta/metals/pull/8234" target="_blank" rel="noopener noreferrer" class="">#8234</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">improvement: Fix flakiness with the fatal warnings tests
<a href="https://github.com/scalameta/metals/pull/8233" target="_blank" rel="noopener noreferrer" class="">#8233</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">build(deps): bump svgo from 3.3.2 to 3.3.3 in /website
<a href="https://github.com/scalameta/metals/pull/8230" target="_blank" rel="noopener noreferrer" class="">#8230</a>
(<a href="https://github.com/dependabot%5Bbot%5D" target="_blank" rel="noopener noreferrer" class="">dependabot[bot]</a>)</li>
<li class="">docs: Simplify install instructions
<a href="https://github.com/scalameta/metals/pull/8227" target="_blank" rel="noopener noreferrer" class="">#8227</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">docs: Update docs <a href="https://github.com/scalameta/metals/pull/8226" target="_blank" rel="noopener noreferrer" class="">#8226</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">docs: Add release notes for Metals 1.6.6
<a href="https://github.com/scalameta/metals/pull/8218" target="_blank" rel="noopener noreferrer" class="">#8218</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
</ul>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Metals v1.6.6 - Osmium]]></title>
            <link>http://scalameta.org/metals/blog/2026/03/03/osmium</link>
            <guid>http://scalameta.org/metals/blog/2026/03/03/osmium</guid>
            <pubDate>Tue, 03 Mar 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[We're happy to announce the release of Metals v1.6.6, which brings a standalone]]></description>
            <content:encoded><![CDATA[<p>We're happy to announce the release of Metals v1.6.6, which brings a standalone
MCP server for AI-powered workflows, support for Play's Twirl templates, easier
access to compiler explain output, and an option to shut down the build server
when closing your editor.</p>
<table><tbody><tr><td>Commits since last release</td><td align="center">72</td></tr><tr><td>Merged PRs</td><td align="center">72</td></tr><tr><td>Contributors</td><td align="center">8</td></tr><tr><td>Closed issues</td><td align="center">14</td></tr><tr><td>New features</td><td align="center">5</td></tr></tbody></table>
<p>For full details:
<a href="https://github.com/scalameta/metals/milestone/85?closed=1" target="_blank" rel="noopener noreferrer" class="">https://github.com/scalameta/metals/milestone/85?closed=1</a></p>
<p>Metals is a language server for Scala that works with VS Code, Cursor, Vim,
Emacs, Zed, Helix and Sublime Text. Metals is developed at the
<a href="https://scala.epfl.ch/" target="_blank" rel="noopener noreferrer" class="">Scala Center</a> and <a href="https://virtuslab.com/" target="_blank" rel="noopener noreferrer" class="">VirtusLab</a>
with the help from contributors from the community.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="tldr">TL;DR<a href="http://scalameta.org/metals/blog/2026/03/03/osmium#tldr" class="hash-link" aria-label="Direct link to TL;DR" title="Direct link to TL;DR" translate="no">​</a></h2>
<p>Check out <a href="https://scalameta.org/metals/" target="_blank" rel="noopener noreferrer" class="">https://scalameta.org/metals/</a>, and
give Metals a try!</p>
<ul>
<li class=""><a href="http://scalameta.org/metals/blog/2026/03/03/osmium#allow-users-to-get-the-output-of--explain" class="">Allow users to get the output of -explain</a></li>
<li class=""><a href="http://scalameta.org/metals/blog/2026/03/03/osmium#standalone-mcp-server" class="">Standalone MCP server</a></li>
<li class=""><a href="http://scalameta.org/metals/blog/2026/03/03/osmium#add-an-option-to-shutdown-bloop-build-server" class="">Add an option to shutdown Bloop build server</a></li>
<li class=""><a href="http://scalameta.org/metals/blog/2026/03/03/osmium#support-for-plays-twirl-templates" class="">Support for Play's Twirl templates</a></li>
<li class=""><a href="http://scalameta.org/metals/blog/2026/03/03/osmium#new-file-improvements" class="">New File Improvements</a></li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="allow-users-to-get-the-output-of--explain">Allow users to get the output of -explain<a href="http://scalameta.org/metals/blog/2026/03/03/osmium#allow-users-to-get-the-output-of--explain" class="hash-link" aria-label="Direct link to Allow users to get the output of -explain" title="Direct link to Allow users to get the output of -explain" translate="no">​</a></h2>
<p>When the Scala compiler suggests using the <code>-explain</code> option to get more
detailed error messages, it isn't exactly easy to do so. You would have to change
your build configuration, which might require rebuilding the entire project.</p>
<p>Metals now offers two ways to access explain output:</p>
<ul>
<li class=""><strong>With virtual documents support</strong>: When your editor supports virtual
documents, Metals replaces the code description with a link that invokes a
command to get diagnostics from the presentation compiler with <code>-explain</code>
enabled.</li>
</ul>
<p><img decoding="async" loading="lazy" src="https://raw.githubusercontent.com/scalameta/gh-pages-images/main/metals/2026-03-03-osmium/explain.gif" alt="explain-diagnostic" class="img_ev3q"></p>
<ul>
<li class=""><strong>Without virtual documents</strong>: If your editor doesn't support virtual
documents, Metals shows a code action that, when invoked, creates a new
document in the <code>.metals/explained-diagnostics</code> directory with the full
diagnostic output from <code>-explain</code>. Some editors might not open the new file
automatically.</li>
</ul>
<p><img decoding="async" loading="lazy" src="https://raw.githubusercontent.com/scalameta/gh-pages-images/main/metals/2026-03-03-osmium/explain-action.gif" alt="explain-diagnostic2" class="img_ev3q"></p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="standalone-mcp-server">Standalone MCP server<a href="http://scalameta.org/metals/blog/2026/03/03/osmium#standalone-mcp-server" class="hash-link" aria-label="Direct link to Standalone MCP server" title="Direct link to Standalone MCP server" translate="no">​</a></h2>
<p>Metals now includes a standalone MCP (Model Context Protocol) server that can
run independently of your editor. This allows AI-powered tools like Cursor,
Claude Code, or other MCP clients to interact with your Scala project without
needing the full Metals language server running inside an IDE.</p>
<p>The standalone server runs over HTTP and automatically imports the workspace
when a project is detected. Several improvements make it easier to configure:</p>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#bfc7d5;--prism-background-color:#292d3e"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#bfc7d5;background-color:#292d3e"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#bfc7d5"><span class="token plain">A standalone MCP (Model Context Protocol) server for Scala projects.</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain" style="display:inline-block"></span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">Usage:</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">  metals-mcp --workspace &lt;path&gt; [options]</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain" style="display:inline-block"></span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">Options:</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">  --workspace &lt;path&gt;      Path to the Scala project (required)</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">  --port &lt;number&gt;         HTTP port to listen on (default: auto-assign)</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">  --transport &lt;type&gt;      Transport type: http (default) or stdio (reserved for future use)</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">  --client &lt;name&gt;         Client to generate config for: Visual Studio Code, Visual Studio Code - Insiders, VSCodium, vscode, VSCodium - Insiders, Kilo, kilo, Cursor, cursor, claude, Claude Code, claude-code</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">  --&lt;key&gt; [value]         UserConfiguration override. Use kebab-case (e.g. --java-home /path, --bloop-version 1.4.0).</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">                          For boolean options, value is optional: omit for true, or use --key true/false.</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">  --help, -h              Show this help message</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">  --version, -v           Show version information</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain" style="display:inline-block"></span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">Examples:</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">  # Start MCP server for a project</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">  metals-mcp --workspace /path/to/project</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain" style="display:inline-block"></span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">  # Start with specific port</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">  metals-mcp --workspace /path/to/project --port 8080</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain" style="display:inline-block"></span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">  # Override Java home and enable default BSP to build tool (boolean, omit = true)</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">  metals-mcp --workspace /path/to/project --java-home /path/to/jdk --default-bsp-to-build-tool</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain" style="display:inline-block"></span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">  # Generate config for Cursor editor</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">  metals-mcp --workspace /path/to/project --client Cursor</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain" style="display:inline-block"></span><br></div></code></pre></div></div>
<ul>
<li class=""><strong>Client configuration</strong>: When you specify <code>--client</code> (e.g.
<code>--client cursor</code>), Metals generates the appropriate MCP configuration for
supported clients, making setup straightforward for command-line tools.</li>
<li class=""><strong>User configuration in CLI</strong>: You can pass Metals configuration options
directly via the command line using <code>--&lt;key&gt; &lt;value&gt;</code> syntax, including nested
keys and boolean flags. This lets you customize the MCP server behavior
independently of your editor.</li>
</ul>
<p>You should be able to install the standalone MCP server using Coursier:</p>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#bfc7d5;--prism-background-color:#292d3e"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#bfc7d5;background-color:#292d3e"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#bfc7d5"><span class="token plain">cs install metals-mcp</span><br></div></code></pre></div></div>
<p>or Homebrew:</p>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#bfc7d5;--prism-background-color:#292d3e"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#bfc7d5;background-color:#292d3e"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#bfc7d5"><span class="token plain">brew install metals</span><br></div></code></pre></div></div>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="add-an-option-to-shutdown-bloop-build-server">Add an option to shutdown Bloop build server<a href="http://scalameta.org/metals/blog/2026/03/03/osmium#add-an-option-to-shutdown-bloop-build-server" class="hash-link" aria-label="Direct link to Add an option to shutdown Bloop build server" title="Direct link to Add an option to shutdown Bloop build server" translate="no">​</a></h2>
<p>A long-standing request was to terminate the Bloop process when closing the
editor, so you don't end up with leftover build server processes running in the
background if you didn't need it anymore.</p>
<p>Metals now provides the <code>build-disconnect-and-shutdown</code> LSP command. When
invoked, it disconnects from the build server and shuts it down so the process
exits. Visual Studio Code will use this command if you set the
<code>metals.shutdownBloopOnEditorClose</code> configuration option to <code>true</code>. It will try
to track the number of open VS Code instances and only exit if there are no more
open instances.</p>
<p>It's important to note that this doesn't work with any other BSP server other
than Bloop.</p>
<p>Thanks to <a href="https://github.com/thomasGuerin3" target="_blank" rel="noopener noreferrer" class="">thomasGuerin3</a> for implementing
this feature!</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="support-for-plays-twirl-templates">Support for Play's Twirl templates<a href="http://scalameta.org/metals/blog/2026/03/03/osmium#support-for-plays-twirl-templates" class="hash-link" aria-label="Direct link to Support for Play's Twirl templates" title="Direct link to Support for Play's Twirl templates" translate="no">​</a></h2>
<p>Metals now has LSP support for Play Framework's Twirl template files
(<code>.scala.html</code>, <code>.scala.txt</code>, <code>.scala.xml</code>, <code>.scala.js</code>). This work was done as
part of Google Summer of Code 2025.</p>
<p>The IDE features for Twirl templates include:</p>
<ul>
<li class=""><strong>Hover</strong>: See documentation and type information when hovering over symbols</li>
<li class=""><strong>Completions</strong>: Get code completions for Scala expressions within templates</li>
<li class=""><strong>Go to definition</strong>: Navigate from template code to Scala definitions</li>
<li class=""><strong>Auto-import</strong>: Automatically add imports when using completions</li>
<li class=""><strong>Rename</strong>: Rename symbols with proper updates across the template</li>
<li class=""><strong>Document highlighting</strong>: See all occurrences of the symbol currently under
the cursor in a single file</li>
</ul>
<p><img decoding="async" loading="lazy" src="https://raw.githubusercontent.com/scalameta/gh-pages-images/main/metals/2026-03-03-osmium/twirl.gif" alt="twirl" class="img_ev3q"></p>
<p>Metals compiles Twirl templates in-memory and maps positions between the
template source and the generated Scala code, so all these features should work
correctly within the template syntax.</p>
<p>Thanks to <a href="https://github.com/ajafri2001" target="_blank" rel="noopener noreferrer" class="">ajafri2001</a> for implementing this
feature and to <a href="https://github.com/zielinsky" target="_blank" rel="noopener noreferrer" class="">zielinsky</a> for finishing the work!</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="new-file-improvements">New File Improvements<a href="http://scalameta.org/metals/blog/2026/03/03/osmium#new-file-improvements" class="hash-link" aria-label="Direct link to New File Improvements" title="Direct link to New File Improvements" translate="no">​</a></h2>
<p>When using "New Scala File" or "New Java File" commands, Metals will now
automatically strip extensions from the file name if they are provided.
Additionally, there is a new type of new file which will take the current copied
snippet and insert it into the new file with the suggested name.</p>
<p><img decoding="async" loading="lazy" src="https://raw.githubusercontent.com/scalameta/gh-pages-images/main/metals/2026-03-03-osmium/new-file.gif" alt="new-file" class="img_ev3q"></p>
<p>As this requires access to the clipboard, it's only available in the Visual
Studio Code extension, which implements the new clipboard API.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="miscellaneous">Miscellaneous<a href="http://scalameta.org/metals/blog/2026/03/03/osmium#miscellaneous" class="hash-link" aria-label="Direct link to Miscellaneous" title="Direct link to Miscellaneous" translate="no">​</a></h2>
<ul>
<li class="">fix: reduce presentation compiler memory usage (#6967)
<a href="https://github.com/krrish175-byte" target="_blank" rel="noopener noreferrer" class="">krrish175-byte</a></li>
<li class="">improvement: Properly set minimum Bloop version instead of using newest to
avoid unnecessary bloop server restart messages
<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a></li>
<li class="">feat(mcp): Add smart fallback and module parameter for inspect, get-docs,
get-usages <a href="https://github.com/li-nkSN" target="_blank" rel="noopener noreferrer" class="">li-nkSN</a></li>
<li class="">fix: Recompile worksheet on changes even if didFocus is not supported
<a href="https://github.com/krrish175-byte" target="_blank" rel="noopener noreferrer" class="">krrish175-byte</a></li>
<li class="">improvement: Add message on timeouts to simplify debugging for users
<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a></li>
<li class="">bugfix: Make sure that cs or coursier is a coursier binary
<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a></li>
<li class="">improvement: Add KiloCodeEditor client configuration
<a href="https://github.com/cheleb" target="_blank" rel="noopener noreferrer" class="">cheleb</a></li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="contributors">Contributors<a href="http://scalameta.org/metals/blog/2026/03/03/osmium#contributors" class="hash-link" aria-label="Direct link to Contributors" title="Direct link to Contributors" translate="no">​</a></h2>
<p>Big thanks to everybody who contributed to this release or reported an issue!</p>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#bfc7d5;--prism-background-color:#292d3e"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#bfc7d5;background-color:#292d3e"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#bfc7d5"><span class="token plain">$ git shortlog -sn --no-merges v1.6.5..v1.6.6</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">    28	scalameta-bot</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">    23	Tomasz Godzik</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">     7	dependabot[bot]</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">     2	Krrish Biswas</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">     1	Olivier NOUGUIER</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">     1	Prince</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">     1	li-nkSN</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">     1	thomasGuerin3</span><br></div></code></pre></div></div>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="merged-prs">Merged PRs<a href="http://scalameta.org/metals/blog/2026/03/03/osmium#merged-prs" class="hash-link" aria-label="Direct link to Merged PRs" title="Direct link to Merged PRs" translate="no">​</a></h2>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="v166-2026-02-27"><a href="https://github.com/scalameta/metals/tree/v1.6.6" target="_blank" rel="noopener noreferrer" class="">v1.6.6</a> (2026-02-27)<a href="http://scalameta.org/metals/blog/2026/03/03/osmium#v166-2026-02-27" class="hash-link" aria-label="Direct link to v166-2026-02-27" title="Direct link to v166-2026-02-27" translate="no">​</a></h2>
<p><a href="https://github.com/scalameta/metals/compare/v1.6.5...v1.6.6" target="_blank" rel="noopener noreferrer" class="">Full Changelog</a></p>
<p><strong>Merged pull requests:</strong></p>
<ul>
<li class="">build(deps): Update mcp, mcp-json-jackson2 from 0.18.1 to 1.0.0
<a href="https://github.com/scalameta/metals/pull/8215" target="_blank" rel="noopener noreferrer" class="">#8215</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): bump actions/upload-artifact from 6 to 7 in the github-actions
<a href="https://github.com/scalameta/metals/pull/8219" target="_blank" rel="noopener noreferrer" class="">#8219</a>
(<a href="https://github.com/dependabot%5Bbot%5D" target="_blank" rel="noopener noreferrer" class="">dependabot[bot]</a>)</li>
<li class="">build(deps): bump the npm-dependencies group in /website with 2 updates
<a href="https://github.com/scalameta/metals/pull/8220" target="_blank" rel="noopener noreferrer" class="">#8220</a>
(<a href="https://github.com/dependabot%5Bbot%5D" target="_blank" rel="noopener noreferrer" class="">dependabot[bot]</a>)</li>
<li class="">build(deps): Update flyway-core from 12.0.2 to 12.0.3
<a href="https://github.com/scalameta/metals/pull/8221" target="_blank" rel="noopener noreferrer" class="">#8221</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update sbt, scripted-plugin from 1.12.3 to 1.12.5
<a href="https://github.com/scalameta/metals/pull/8222" target="_blank" rel="noopener noreferrer" class="">#8222</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update munit from 1.2.2 to 1.2.3
<a href="https://github.com/scalameta/metals/pull/8223" target="_blank" rel="noopener noreferrer" class="">#8223</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update cli_3, scala-cli-bsp from 1.12.2 to 1.12.3 commit-count:1
<a href="https://github.com/scalameta/metals/pull/8224" target="_blank" rel="noopener noreferrer" class="">#8224</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">improvement: Improve the UX of new file provider
<a href="https://github.com/scalameta/metals/pull/8209" target="_blank" rel="noopener noreferrer" class="">#8209</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">build(deps): Update sbt-scalafix, scalafix-interfaces from 0.14.5 to 0.14.6
<a href="https://github.com/scalameta/metals/pull/8212" target="_blank" rel="noopener noreferrer" class="">#8212</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update protobuf-java from 4.33.5 to 4.34.0
<a href="https://github.com/scalameta/metals/pull/8214" target="_blank" rel="noopener noreferrer" class="">#8214</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update jackson-databind from 2.21.0 to 2.21.1
<a href="https://github.com/scalameta/metals/pull/8213" target="_blank" rel="noopener noreferrer" class="">#8213</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">chore: Test Scala 3.8.2
<a href="https://github.com/scalameta/metals/pull/8208" target="_blank" rel="noopener noreferrer" class="">#8208</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">build(deps): Update flyway-core from 12.0.1 to 12.0.2
<a href="https://github.com/scalameta/metals/pull/8207" target="_blank" rel="noopener noreferrer" class="">#8207</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">improvement: Allow specifying UserConfiguration in CLI
<a href="https://github.com/scalameta/metals/pull/8206" target="_blank" rel="noopener noreferrer" class="">#8206</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">build(deps): Update sbt-mima-plugin from 1.1.4 to 1.1.5
<a href="https://github.com/scalameta/metals/pull/8204" target="_blank" rel="noopener noreferrer" class="">#8204</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update mcp, mcp-json-jackson2 from 0.17.2 to 0.18.1
<a href="https://github.com/scalameta/metals/pull/8205" target="_blank" rel="noopener noreferrer" class="">#8205</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">improvement: Add KiloCodeEditor client configuration
<a href="https://github.com/scalameta/metals/pull/8196" target="_blank" rel="noopener noreferrer" class="">#8196</a>
(<a href="https://github.com/cheleb" target="_blank" rel="noopener noreferrer" class="">cheleb</a>)</li>
<li class="">Twirl support in metals
<a href="https://github.com/scalameta/metals/pull/7751" target="_blank" rel="noopener noreferrer" class="">#7751</a>
(<a href="https://github.com/ajafri2001" target="_blank" rel="noopener noreferrer" class="">ajafri2001</a>)</li>
<li class="">build(deps): Update scalameta, semanticdb-metap, ... from 4.14.7 to 4.15.2
<a href="https://github.com/scalameta/metals/pull/8202" target="_blank" rel="noopener noreferrer" class="">#8202</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">chore: Bump Scala to 3.8.2-RC3
<a href="https://github.com/scalameta/metals/pull/8203" target="_blank" rel="noopener noreferrer" class="">#8203</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">build(deps): Update org.eclipse.lsp4j, ... from 0.24.0 to 1.0.0
<a href="https://github.com/scalameta/metals/pull/8192" target="_blank" rel="noopener noreferrer" class="">#8192</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update ujson from 4.4.2 to 4.4.3
<a href="https://github.com/scalameta/metals/pull/8200" target="_blank" rel="noopener noreferrer" class="">#8200</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update sbt, scripted-plugin from 1.12.2 to 1.12.3
<a href="https://github.com/scalameta/metals/pull/8201" target="_blank" rel="noopener noreferrer" class="">#8201</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">feat(server): add build-disconnect-and-shutdown command
<a href="https://github.com/scalameta/metals/pull/8162" target="_blank" rel="noopener noreferrer" class="">#8162</a>
(<a href="https://github.com/thomasGuerin3" target="_blank" rel="noopener noreferrer" class="">thomasGuerin3</a>)</li>
<li class="">build(deps): bump qs from 6.14.1 to 6.14.2 in /website
<a href="https://github.com/scalameta/metals/pull/8190" target="_blank" rel="noopener noreferrer" class="">#8190</a>
(<a href="https://github.com/dependabot%5Bbot%5D" target="_blank" rel="noopener noreferrer" class="">dependabot[bot]</a>)</li>
<li class="">bugfix: Make sure that cs or coursier is a coursier binary
<a href="https://github.com/scalameta/metals/pull/8191" target="_blank" rel="noopener noreferrer" class="">#8191</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">build(deps): Update scalafmt-core, scalafmt-dynamic from 3.10.6 to 3.10.7
<a href="https://github.com/scalameta/metals/pull/8194" target="_blank" rel="noopener noreferrer" class="">#8194</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update flyway-core from 12.0.0 to 12.0.1
<a href="https://github.com/scalameta/metals/pull/8193" target="_blank" rel="noopener noreferrer" class="">#8193</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">improvement: Log normally when started as http mcp server
<a href="https://github.com/scalameta/metals/pull/8197" target="_blank" rel="noopener noreferrer" class="">#8197</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">improvement: Generate configuration for client when --client is supplied
<a href="https://github.com/scalameta/metals/pull/8184" target="_blank" rel="noopener noreferrer" class="">#8184</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">ci: Use coursier cache and make it reuse between jobs
<a href="https://github.com/scalameta/metals/pull/8189" target="_blank" rel="noopener noreferrer" class="">#8189</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">chore: Test Metals on 3.8.2-RC2
<a href="https://github.com/scalameta/metals/pull/8188" target="_blank" rel="noopener noreferrer" class="">#8188</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">improvement: Reduce the number of tests and split sbt tests into two groups
<a href="https://github.com/scalameta/metals/pull/8186" target="_blank" rel="noopener noreferrer" class="">#8186</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">improvement: Add more shards and drop running macOS tests
<a href="https://github.com/scalameta/metals/pull/8185" target="_blank" rel="noopener noreferrer" class="">#8185</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">build(deps): bump the npm-dependencies group in /website with 2 updates
<a href="https://github.com/scalameta/metals/pull/8182" target="_blank" rel="noopener noreferrer" class="">#8182</a>
(<a href="https://github.com/dependabot%5Bbot%5D" target="_blank" rel="noopener noreferrer" class="">dependabot[bot]</a>)</li>
<li class="">chore: Group dependabot PRs
<a href="https://github.com/scalameta/metals/pull/8180" target="_blank" rel="noopener noreferrer" class="">#8180</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">build(deps): Update cli_3, scala-cli-bsp from 1.12.1 to 1.12.2
<a href="https://github.com/scalameta/metals/pull/8178" target="_blank" rel="noopener noreferrer" class="">#8178</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update mill-contrib-testng from 1.1.1 to 1.1.2
<a href="https://github.com/scalameta/metals/pull/8177" target="_blank" rel="noopener noreferrer" class="">#8177</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">improvement: Adjust messages about mcp server
<a href="https://github.com/scalameta/metals/pull/8175" target="_blank" rel="noopener noreferrer" class="">#8175</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">improvement: Add message on timeout and remove warnings
<a href="https://github.com/scalameta/metals/pull/8176" target="_blank" rel="noopener noreferrer" class="">#8176</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">build(deps): Update cli_3, scala-cli-bsp from 1.12.0 to 1.12.1
<a href="https://github.com/scalameta/metals/pull/8173" target="_blank" rel="noopener noreferrer" class="">#8173</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update sbt, scripted-plugin from 1.12.1 to 1.12.2
<a href="https://github.com/scalameta/metals/pull/8171" target="_blank" rel="noopener noreferrer" class="">#8171</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): bump webpack from 5.96.1 to 5.105.0 in /website in the
npm_and_yarn group across 1 directory
<a href="https://github.com/scalameta/metals/pull/8174" target="_blank" rel="noopener noreferrer" class="">#8174</a>
(<a href="https://github.com/dependabot%5Bbot%5D" target="_blank" rel="noopener noreferrer" class="">dependabot[bot]</a>)</li>
<li class="">build(deps): Update scalameta, semanticdb-metap, ... from 4.14.5 to 4.14.7
<a href="https://github.com/scalameta/metals/pull/8172" target="_blank" rel="noopener noreferrer" class="">#8172</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">chore: Add standalone metal MCP server
<a href="https://github.com/scalameta/metals/pull/8156" target="_blank" rel="noopener noreferrer" class="">#8156</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">chore: Update mill and mill scripts
<a href="https://github.com/scalameta/metals/pull/8170" target="_blank" rel="noopener noreferrer" class="">#8170</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">chore: Bump Bloop and Bazel BSP
<a href="https://github.com/scalameta/metals/pull/8169" target="_blank" rel="noopener noreferrer" class="">#8169</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">build(deps): bump react from 19.2.3 to 19.2.4 in /website
<a href="https://github.com/scalameta/metals/pull/8159" target="_blank" rel="noopener noreferrer" class="">#8159</a>
(<a href="https://github.com/dependabot%5Bbot%5D" target="_blank" rel="noopener noreferrer" class="">dependabot[bot]</a>)</li>
<li class="">build(deps): Update munit from 1.2.0 to 1.2.2
<a href="https://github.com/scalameta/metals/pull/8166" target="_blank" rel="noopener noreferrer" class="">#8166</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update requests from 0.9.2 to 0.9.3
<a href="https://github.com/scalameta/metals/pull/8164" target="_blank" rel="noopener noreferrer" class="">#8164</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">chore: Use Scala 2.13 in test in unit module
<a href="https://github.com/scalameta/metals/pull/8168" target="_blank" rel="noopener noreferrer" class="">#8168</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">build(deps): Update os-lib from 0.11.7 to 0.11.8
<a href="https://github.com/scalameta/metals/pull/8163" target="_blank" rel="noopener noreferrer" class="">#8163</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update flyway-core from 11.20.3 to 12.0.0
<a href="https://github.com/scalameta/metals/pull/8165" target="_blank" rel="noopener noreferrer" class="">#8165</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update scalafmt-core, scalafmt-dynamic from 3.10.4 to 3.10.6
<a href="https://github.com/scalameta/metals/pull/8167" target="_blank" rel="noopener noreferrer" class="">#8167</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps-dev): bump @types/node from 25.0.3 to 25.1.0 in /website
<a href="https://github.com/scalameta/metals/pull/8160" target="_blank" rel="noopener noreferrer" class="">#8160</a>
(<a href="https://github.com/dependabot%5Bbot%5D" target="_blank" rel="noopener noreferrer" class="">dependabot[bot]</a>)</li>
<li class="">build(deps): bump @easyops-cn/docusaurus-search-local from 0.52.2 to 0.52.3 in
/website <a href="https://github.com/scalameta/metals/pull/8161" target="_blank" rel="noopener noreferrer" class="">#8161</a>
(<a href="https://github.com/dependabot%5Bbot%5D" target="_blank" rel="noopener noreferrer" class="">dependabot[bot]</a>)</li>
<li class="">build(deps): Update mill-contrib-testng from 1.0.6 to 1.1.0
<a href="https://github.com/scalameta/metals/pull/8148" target="_blank" rel="noopener noreferrer" class="">#8148</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update protobuf-java from 4.33.4 to 4.33.5
<a href="https://github.com/scalameta/metals/pull/8147" target="_blank" rel="noopener noreferrer" class="">#8147</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update os-lib from 0.11.6 to 0.11.7
<a href="https://github.com/scalameta/metals/pull/8149" target="_blank" rel="noopener noreferrer" class="">#8149</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update flyway-core from 11.20.2 to 11.20.3
<a href="https://github.com/scalameta/metals/pull/8150" target="_blank" rel="noopener noreferrer" class="">#8150</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update sbt, scripted-plugin from 1.12.0 to 1.12.1
<a href="https://github.com/scalameta/metals/pull/8151" target="_blank" rel="noopener noreferrer" class="">#8151</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">fix: Recompile worksheet on changes even if didFocus is not supported
<a href="https://github.com/scalameta/metals/pull/8141" target="_blank" rel="noopener noreferrer" class="">#8141</a>
(<a href="https://github.com/krrish175-byte" target="_blank" rel="noopener noreferrer" class="">krrish175-byte</a>)</li>
<li class="">feat(mcp): Add smart fallback and module parameter for inspect, get-d…
<a href="https://github.com/scalameta/metals/pull/8125" target="_blank" rel="noopener noreferrer" class="">#8125</a>
(<a href="https://github.com/li-nkSN" target="_blank" rel="noopener noreferrer" class="">li-nkSN</a>)</li>
<li class="">bugfix: Fix test failure on Windows
<a href="https://github.com/scalameta/metals/pull/8143" target="_blank" rel="noopener noreferrer" class="">#8143</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">test: Add mcp test for running testng suites
<a href="https://github.com/scalameta/metals/pull/8140" target="_blank" rel="noopener noreferrer" class="">#8140</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">feature: Allow users to get the output of -explain
<a href="https://github.com/scalameta/metals/pull/8088" target="_blank" rel="noopener noreferrer" class="">#8088</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">improvement: Properly set minimum Bloop version instead of using current
<a href="https://github.com/scalameta/metals/pull/8137" target="_blank" rel="noopener noreferrer" class="">#8137</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">build(deps): Update mcp, mcp-json-jackson2 from 0.17.1 to 0.17.2
<a href="https://github.com/scalameta/metals/pull/8135" target="_blank" rel="noopener noreferrer" class="">#8135</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">chore: Test newest Next 3.8.1
<a href="https://github.com/scalameta/metals/pull/8134" target="_blank" rel="noopener noreferrer" class="">#8134</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">build(deps): bump lodash from 4.17.21 to 4.17.23 in /website in the
npm_and_yarn group across 1 directory
<a href="https://github.com/scalameta/metals/pull/8133" target="_blank" rel="noopener noreferrer" class="">#8133</a>
(<a href="https://github.com/dependabot%5Bbot%5D" target="_blank" rel="noopener noreferrer" class="">dependabot[bot]</a>)</li>
<li class="">fix: reduce presentation compiler memory usage (#6967)
<a href="https://github.com/scalameta/metals/pull/8124" target="_blank" rel="noopener noreferrer" class="">#8124</a>
(<a href="https://github.com/krrish175-byte" target="_blank" rel="noopener noreferrer" class="">krrish175-byte</a>)</li>
<li class="">docs: Add release notes for Metals 1.6.5
<a href="https://github.com/scalameta/metals/pull/8129" target="_blank" rel="noopener noreferrer" class="">#8129</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
</ul>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Metals v1.6.5 - Osmium]]></title>
            <link>http://scalameta.org/metals/blog/2026/01/21/osmium</link>
            <guid>http://scalameta.org/metals/blog/2026/01/21/osmium</guid>
            <pubDate>Wed, 21 Jan 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[We're happy to announce the release of Metals v1.6.5, which brings several]]></description>
            <content:encoded><![CDATA[<p>We're happy to announce the release of Metals v1.6.5, which brings several
exciting new features including completions for implicit classes, auto imports
for Java, Type Hierarchy support, and an updated MCP server implementation.</p>
<table><tbody><tr><td>Commits since last release</td><td align="center">110</td></tr><tr><td>Merged PRs</td><td align="center">110</td></tr><tr><td>Contributors</td><td align="center">16</td></tr><tr><td>Closed issues</td><td align="center">43</td></tr><tr><td>New features</td><td align="center">3</td></tr></tbody></table>
<p>For full details:
<a href="https://github.com/scalameta/metals/milestone/84?closed=1" target="_blank" rel="noopener noreferrer" class="">https://github.com/scalameta/metals/milestone/84?closed=1</a></p>
<p>Metals is a language server for Scala that works with VS Code, Vim, Emacs, Zed,
Helix and Sublime Text. Metals is developed at the
<a href="https://scala.epfl.ch/" target="_blank" rel="noopener noreferrer" class="">Scala Center</a> and <a href="https://virtuslab.com/" target="_blank" rel="noopener noreferrer" class="">VirtusLab</a>
with the help from contributors from the community.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="tldr">TL;DR<a href="http://scalameta.org/metals/blog/2026/01/21/osmium#tldr" class="hash-link" aria-label="Direct link to TL;DR" title="Direct link to TL;DR" translate="no">​</a></h2>
<p>Check out <a href="https://scalameta.org/metals/" target="_blank" rel="noopener noreferrer" class="">https://scalameta.org/metals/</a>, and
give Metals a try!</p>
<ul>
<li class=""><a href="http://scalameta.org/metals/blog/2026/01/21/osmium#completions-for-implicit-classes" class="">Completions for implicit classes</a></li>
<li class=""><a href="http://scalameta.org/metals/blog/2026/01/21/osmium#add-auto-imports-for-java" class="">Add auto imports for Java</a></li>
<li class=""><a href="http://scalameta.org/metals/blog/2026/01/21/osmium#switch-to-streamable-http-standard" class="">Switch to streamable HTTP standard</a></li>
<li class=""><a href="http://scalameta.org/metals/blog/2026/01/21/osmium#implement-type-hierarchy-support" class="">Implement Type Hierarchy support</a></li>
<li class=""><a href="http://scalameta.org/metals/blog/2026/01/21/osmium#incoming-metals-v2" class="">Incoming Metals v2</a></li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="completions-for-implicit-classes">Completions for implicit classes<a href="http://scalameta.org/metals/blog/2026/01/21/osmium#completions-for-implicit-classes" class="hash-link" aria-label="Direct link to Completions for implicit classes" title="Direct link to Completions for implicit classes" translate="no">​</a></h2>
<p>Metals can now suggest methods from implicit classes that are not yet imported
in your code. When you type a method that could come from an implicit class in
your workspace or dependencies, Metals will show these completions with an
<code>(implicit)</code> label and automatically add the necessary import when you accept
the completion.</p>
<p>For example, if you want to use the millisecond method from <code>scala.concurrent.duration</code> package,
typing <code>2.mill</code> will now suggest <code>millisecond</code> from <code>DurationInt</code> and
add <code>import scala.concurrent.duration.DurationInt</code> when selected. This also works for
implicit classes defined in your own workspace - if you define
<code>implicit class MyIntOps(n: Int)</code> with a <code>myDouble</code> method, you can use it
anywhere in your project and Metals will handle the import automatically.</p>
<p>Thanks to <a href="https://github.com/pielas" target="_blank" rel="noopener noreferrer" class="">pielas</a> for implementing this feature!</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="add-auto-imports-for-java">Add auto imports for Java<a href="http://scalameta.org/metals/blog/2026/01/21/osmium#add-auto-imports-for-java" class="hash-link" aria-label="Direct link to Add auto imports for Java" title="Direct link to Add auto imports for Java" translate="no">​</a></h2>
<p>Metals now supports auto imports for Java files! When you use a class that isn't
imported yet, Metals will suggest the import and automatically add it for you
when you accept the completion. Metals won't add duplicate imports and properly handles wildcard
imports (e.g., <code>java.util.*</code>). If there's a naming conflict with an existing
import, Metals will insert the fully qualified class name instead.</p>
<p>Thanks to <a href="https://github.com/zielinsky" target="_blank" rel="noopener noreferrer" class="">zielinsky</a> for working on this!</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="switch-to-streamable-http-standard">Switch to streamable HTTP standard<a href="http://scalameta.org/metals/blog/2026/01/21/osmium#switch-to-streamable-http-standard" class="hash-link" aria-label="Direct link to Switch to streamable HTTP standard" title="Direct link to Switch to streamable HTTP standard" translate="no">​</a></h2>
<p>The Metals MCP server has been updated to use the new streamable HTTP transport
standard. This change brings the MCP implementation in line with the latest MCP
specification and improves compatibility with various MCP clients.</p>
<p><strong>What changed:</strong> The MCP server endpoint has been changed from <code>/sse</code>
(Server-Sent Events) to <code>/mcp</code>. For some users with common editors like Cursor,
VS Code, or Claude, Metals will automatically rewrite your existing
configuration to use the new endpoint when you start the MCP server.</p>
<p><strong>Manual migration:</strong> If you have a custom MCP client configurations, you'll need
to update the URL from <code>http://localhost:&lt;port&gt;/sse</code> to
<code>http://localhost:&lt;port&gt;/mcp</code>. Metals will attempt to detect and update
configurations automatically, but if you maintain your own setup, please update
accordingly.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="implement-type-hierarchy-support">Implement Type Hierarchy support<a href="http://scalameta.org/metals/blog/2026/01/21/osmium#implement-type-hierarchy-support" class="hash-link" aria-label="Direct link to Implement Type Hierarchy support" title="Direct link to Implement Type Hierarchy support" translate="no">​</a></h2>
<p>Metals now supports the LSP Type Hierarchy feature, allowing you to explore
class inheritance relationships directly from your editor. This feature provides
three capabilities:</p>
<ul>
<li class=""><strong>Prepare Type Hierarchy</strong>: When you place your cursor on a class, trait,
object, or type, you can request to see its type hierarchy.</li>
<li class=""><strong>Supertypes</strong>: Navigate upward in the inheritance tree to see parent classes
and implemented traits. For example, selecting <code>Dog</code> will show you <code>Animal</code>
and <code>AnyRef</code> if <code>Dog extends Animal</code>.</li>
<li class=""><strong>Subtypes</strong>: Navigate downward to discover all classes that extend or
implement the selected type.</li>
</ul>
<p>This feature works across your entire project, including dependencies stored in
JAR files. The type hierarchy information is indexed and stored in a database
for fast lookups.</p>
<p>To use this feature, look for "Show Type Hierarchy" or similar commands in your
editor (the exact UI depends on your editor's LSP support).</p>
<p>Thanks to <a href="https://github.com/warcholjakub" target="_blank" rel="noopener noreferrer" class="">warcholjakub</a> for implementing this
feature!</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="incoming-metals-2">Incoming Metals 2<a href="http://scalameta.org/metals/blog/2026/01/21/osmium#incoming-metals-2" class="hash-link" aria-label="Direct link to Incoming Metals 2" title="Direct link to Incoming Metals 2" translate="no">​</a></h2>
<p>We are currently testing and working on new Metals 2, which is a major overhaul
of how Metals works. The main intention is to make it much better for larger monorepo
setups as well as improve user experience even if your codebase is not compiling.</p>
<p>Take a look at the <a href="https://metals-lsp.org/" target="_blank" rel="noopener noreferrer" class="">new Metals 2 website</a> for more information.</p>
<p>We don not have a release date yet, but we want to make sure that all the features available
in Metals 1 are available in Metals 2.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="miscellaneous">Miscellaneous<a href="http://scalameta.org/metals/blog/2026/01/21/osmium#miscellaneous" class="hash-link" aria-label="Direct link to Miscellaneous" title="Direct link to Miscellaneous" translate="no">​</a></h2>
<ul>
<li class="">bugfix: Filter out invalid multiline comment fold ranges
(<a href="https://github.com/discapes" target="_blank" rel="noopener noreferrer" class="">discapes</a>)</li>
<li class="">bugfix: Correct autoImportBuilds config key name
(<a href="https://github.com/jklukas" target="_blank" rel="noopener noreferrer" class="">jklukas</a>)</li>
<li class="">improvement: Support <code>build.mill.yaml</code> build files
<a href="https://github.com/lolgab" target="_blank" rel="noopener noreferrer" class="">lolgab</a></li>
<li class="">bugfix<!-- -->:Fix<!-- --> script definition URIs to point to original .sc files
(<a href="https://github.com/zielinsky" target="_blank" rel="noopener noreferrer" class="">zielinsky</a>)</li>
<li class="">improvement: Use mill scripts if available in the workspace
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">improvement: Support inspecting Java generic types in MCP
(<a href="https://github.com/warcholjakub" target="_blank" rel="noopener noreferrer" class="">warcholjakub</a>)</li>
<li class="">bugfix: SQL syntax highlighting in complex cases
(<a href="https://github.com/warcholjakub" target="_blank" rel="noopener noreferrer" class="">warcholjakub</a>)</li>
<li class="">bugfix: Fix SQL highlighting for nested interpolators
<a href="https://github.com/scalameta/metals/pull/8047" target="_blank" rel="noopener noreferrer" class="">#8047</a>
(<a href="https://github.com/Mensh1kov" target="_blank" rel="noopener noreferrer" class="">Mensh1kov</a>)</li>
<li class="">improvement<!-- -->:Make<!-- --> Metals look for <code>./mill</code> and <code>./mill.bat</code> files when
identifying Mill projects <a href="https://github.com/lihaoyi" target="_blank" rel="noopener noreferrer" class="">lihaoyi</a></li>
<li class="">improvement: Show a warning when newer -release version flag is used
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">bugfix: ZIO test explorer reveals sub-tasks with provideLayer
(<a href="https://github.com/krrish175-byte" target="_blank" rel="noopener noreferrer" class="">krrish175-byte</a>)</li>
<li class="">improvement: Add memory usage warning when heap is nearly full
(<a href="https://github.com/krrish175-byte" target="_blank" rel="noopener noreferrer" class="">krrish175-byte</a>)</li>
<li class="">bugfix: Inline value false-positive shadowing with lambda params
(<a href="https://github.com/krrish175-byte" target="_blank" rel="noopener noreferrer" class="">krrish175-byte</a>)</li>
<li class="">Fix: Handle InvalidSymbolException in StacktraceAnalyzer (#7974)
(<a href="https://github.com/krrish175-byte" target="_blank" rel="noopener noreferrer" class="">krrish175-byte</a>)</li>
<li class="">improvement: Use jar based coursier as a fallback when not available in PATH
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">improvement: Compile only JVM targets by default when not focusing on Native
and JS specific files. (<a href="https://github.com/warcholjakub" target="_blank" rel="noopener noreferrer" class="">warcholjakub</a>)</li>
<li class="">improvement: Forward credentials to Bloop process
(<a href="https://github.com/krrish175-byte" target="_blank" rel="noopener noreferrer" class="">krrish175-byte</a>)</li>
<li class="">bugfix: Fix inlining interpolated variables
<a href="https://github.com/scalameta/metals/pull/8108" target="_blank" rel="noopener noreferrer" class="">#8108</a>
(<a href="https://github.com/johndoknjas" target="_blank" rel="noopener noreferrer" class="">johndoknjas</a>)</li>
<li class="">bugfix: Fix MCP server identification for multi-project workspaces
(<a href="https://github.com/krrish175-byte" target="_blank" rel="noopener noreferrer" class="">krrish175-byte</a>)</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="contributors">Contributors<a href="http://scalameta.org/metals/blog/2026/01/21/osmium#contributors" class="hash-link" aria-label="Direct link to Contributors" title="Direct link to Contributors" translate="no">​</a></h2>
<p>Big thanks to everybody who contributed to this release or reported an issue!</p>
<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#bfc7d5;--prism-background-color:#292d3e"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#bfc7d5;background-color:#292d3e"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#bfc7d5"><span class="token plain">$ git shortlog -sn --no-merges v1.6.4..v1.6.5</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">    42 scalameta-bot</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">    33 Tomasz Godzik</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">    12 dependabot[bot]</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">     4 Jakub Warchoł</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">     7 Krrish Biswas</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">     2 Jeff Klukas</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">     2 Zieliński Patryk</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">     1 John Doknjas</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">     1 Jonathan Burns</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">     1 Li Haoyi</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">     1 Lorenzo Gabriele</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">     1 Mateusz Piękos</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">     1 Mensh1kov</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">     1 Miika Tuominen</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">     1 Russ White</span><br></div></code></pre></div></div>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="merged-prs">Merged PRs<a href="http://scalameta.org/metals/blog/2026/01/21/osmium#merged-prs" class="hash-link" aria-label="Direct link to Merged PRs" title="Direct link to Merged PRs" translate="no">​</a></h2>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="v165-2026-01-20"><a href="https://github.com/scalameta/metals/tree/v1.6.5" target="_blank" rel="noopener noreferrer" class="">v1.6.5</a> (2026-01-20)<a href="http://scalameta.org/metals/blog/2026/01/21/osmium#v165-2026-01-20" class="hash-link" aria-label="Direct link to v165-2026-01-20" title="Direct link to v165-2026-01-20" translate="no">​</a></h2>
<p><a href="https://github.com/scalameta/metals/compare/v1.6.4...v1.6.5" target="_blank" rel="noopener noreferrer" class="">Full Changelog</a></p>
<p><strong>Merged pull requests:</strong></p>
<ul>
<li class="">fix: Fix MCP server identification for multi-project workspaces
<a href="https://github.com/scalameta/metals/pull/8070" target="_blank" rel="noopener noreferrer" class="">#8070</a>
(<a href="https://github.com/krrish175-byte" target="_blank" rel="noopener noreferrer" class="">krrish175-byte</a>)</li>
<li class="">build(deps): Update jackson-databind from 2.20.1 to 2.21.0
<a href="https://github.com/scalameta/metals/pull/8126" target="_blank" rel="noopener noreferrer" class="">#8126</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update scalafmt-core, scalafmt-dynamic from 3.10.3 to 3.10.4
<a href="https://github.com/scalameta/metals/pull/8127" target="_blank" rel="noopener noreferrer" class="">#8127</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update scalameta, semanticdb-metap, ... from 4.14.4 to 4.14.5
<a href="https://github.com/scalameta/metals/pull/8128" target="_blank" rel="noopener noreferrer" class="">#8128</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update protobuf-java from 4.33.3 to 4.33.4
<a href="https://github.com/scalameta/metals/pull/8119" target="_blank" rel="noopener noreferrer" class="">#8119</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update flyway-core from 11.20.1 to 11.20.2
<a href="https://github.com/scalameta/metals/pull/8121" target="_blank" rel="noopener noreferrer" class="">#8121</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update cli_3, scala-cli-bsp from 1.11.0 to 1.12.0
<a href="https://github.com/scalameta/metals/pull/8122" target="_blank" rel="noopener noreferrer" class="">#8122</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update requests from 0.9.0 to 0.9.2
<a href="https://github.com/scalameta/metals/pull/8120" target="_blank" rel="noopener noreferrer" class="">#8120</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">Inlining interpolated variables
<a href="https://github.com/scalameta/metals/pull/8108" target="_blank" rel="noopener noreferrer" class="">#8108</a>
(<a href="https://github.com/johndoknjas" target="_blank" rel="noopener noreferrer" class="">johndoknjas</a>)</li>
<li class="">build(deps): bump undici from 6.21.3 to 6.23.0 in /website in the npm_and_yarn
group across 1 directory
<a href="https://github.com/scalameta/metals/pull/8116" target="_blank" rel="noopener noreferrer" class="">#8116</a>
(<a href="https://github.com/dependabot%5Bbot%5D" target="_blank" rel="noopener noreferrer" class="">dependabot[bot]</a>)</li>
<li class="">chore: Update Bloop to 2.0.18
<a href="https://github.com/scalameta/metals/pull/8114" target="_blank" rel="noopener noreferrer" class="">#8114</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">bugfix: Fixed reversed flag
<a href="https://github.com/scalameta/metals/pull/8115" target="_blank" rel="noopener noreferrer" class="">#8115</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">bugfix: Make sure we use stable version
<a href="https://github.com/scalameta/metals/pull/8113" target="_blank" rel="noopener noreferrer" class="">#8113</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">Add validation and fallback for SemanticDB version resolution
<a href="https://github.com/scalameta/metals/pull/8105" target="_blank" rel="noopener noreferrer" class="">#8105</a>
(<a href="https://github.com/russwyte" target="_blank" rel="noopener noreferrer" class="">russwyte</a>)</li>
<li class="">bugfix: Don't test expression evaluator availability post 3.8.0
<a href="https://github.com/scalameta/metals/pull/8112" target="_blank" rel="noopener noreferrer" class="">#8112</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">bugfix: Use stable latest release to avoid using 2.0.0-M prematurely
<a href="https://github.com/scalameta/metals/pull/8111" target="_blank" rel="noopener noreferrer" class="">#8111</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">docs(contributing): Improve documentation for tests and Scala 3 PC location
<a href="https://github.com/scalameta/metals/pull/8106" target="_blank" rel="noopener noreferrer" class="">#8106</a>
(<a href="https://github.com/krrish175-byte" target="_blank" rel="noopener noreferrer" class="">krrish175-byte</a>)</li>
<li class="">feat: Forward credentials to Bloop process
<a href="https://github.com/scalameta/metals/pull/8082" target="_blank" rel="noopener noreferrer" class="">#8082</a>
(<a href="https://github.com/krrish175-byte" target="_blank" rel="noopener noreferrer" class="">krrish175-byte</a>)</li>
<li class="">build(deps): Update protobuf-java from 4.33.2 to 4.33.3
<a href="https://github.com/scalameta/metals/pull/8102" target="_blank" rel="noopener noreferrer" class="">#8102</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update scalameta, semanticdb-metap, ... from 4.14.3 to 4.14.4
<a href="https://github.com/scalameta/metals/pull/8103" target="_blank" rel="noopener noreferrer" class="">#8103</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">bugfix: Use proper exception handling when request to user timeouts
<a href="https://github.com/scalameta/metals/pull/8101" target="_blank" rel="noopener noreferrer" class="">#8101</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">bugfix: Handle non relative URI in semanticdb
<a href="https://github.com/scalameta/metals/pull/8100" target="_blank" rel="noopener noreferrer" class="">#8100</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">fix: compile only JVM targets by default
<a href="https://github.com/scalameta/metals/pull/8060" target="_blank" rel="noopener noreferrer" class="">#8060</a>
(<a href="https://github.com/warcholjakub" target="_blank" rel="noopener noreferrer" class="">warcholjakub</a>)</li>
<li class="">build(deps): Update metaconfig-core from 0.18.1 to 0.18.2
<a href="https://github.com/scalameta/metals/pull/8098" target="_blank" rel="noopener noreferrer" class="">#8098</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update flyway-core from 11.20.0 to 11.20.1
<a href="https://github.com/scalameta/metals/pull/8096" target="_blank" rel="noopener noreferrer" class="">#8096</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update sbt, scripted-plugin from 1.11.7 to 1.12.0
<a href="https://github.com/scalameta/metals/pull/8097" target="_blank" rel="noopener noreferrer" class="">#8097</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update coursier, ... from 2.1.25-M22 to 2.1.25-M23
<a href="https://github.com/scalameta/metals/pull/8094" target="_blank" rel="noopener noreferrer" class="">#8094</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update mcp, mcp-json-jackson2 from 0.17.0 to 0.17.1
<a href="https://github.com/scalameta/metals/pull/8095" target="_blank" rel="noopener noreferrer" class="">#8095</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">chore: Test with Scala 3.8.0-RC6
<a href="https://github.com/scalameta/metals/pull/8092" target="_blank" rel="noopener noreferrer" class="">#8092</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">feat: implement Type Hierarchy support
<a href="https://github.com/scalameta/metals/pull/8058" target="_blank" rel="noopener noreferrer" class="">#8058</a>
(<a href="https://github.com/warcholjakub" target="_blank" rel="noopener noreferrer" class="">warcholjakub</a>)</li>
<li class="">Add hint to gradle docs for manual bloopInstall
<a href="https://github.com/scalameta/metals/pull/8084" target="_blank" rel="noopener noreferrer" class="">#8084</a>
(<a href="https://github.com/jbburns" target="_blank" rel="noopener noreferrer" class="">jbburns</a>)</li>
<li class="">improvement: Use jar based coursier as a fallback
<a href="https://github.com/scalameta/metals/pull/8077" target="_blank" rel="noopener noreferrer" class="">#8077</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">Fix: Handle InvalidSymbolException in StacktraceAnalyzer (#7974)
<a href="https://github.com/scalameta/metals/pull/8068" target="_blank" rel="noopener noreferrer" class="">#8068</a>
(<a href="https://github.com/krrish175-byte" target="_blank" rel="noopener noreferrer" class="">krrish175-byte</a>)</li>
<li class="">tests: Revert tested version to 2.13.12 for older bazel versions
<a href="https://github.com/scalameta/metals/pull/8079" target="_blank" rel="noopener noreferrer" class="">#8079</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">chore: Update react to 19.2.3
<a href="https://github.com/scalameta/metals/pull/8080" target="_blank" rel="noopener noreferrer" class="">#8080</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">improvement: Switch to new endpoint and offer a rewrite
<a href="https://github.com/scalameta/metals/pull/8081" target="_blank" rel="noopener noreferrer" class="">#8081</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">Fix: Inline value false-positive shadowing with lambda params (#7944)
<a href="https://github.com/scalameta/metals/pull/8069" target="_blank" rel="noopener noreferrer" class="">#8069</a>
(<a href="https://github.com/krrish175-byte" target="_blank" rel="noopener noreferrer" class="">krrish175-byte</a>)</li>
<li class="">chore: Update bloop-maven-plugin to 2.0.3
<a href="https://github.com/scalameta/metals/pull/8083" target="_blank" rel="noopener noreferrer" class="">#8083</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">chore: Test metals with Scala 3.8.0-RC5
<a href="https://github.com/scalameta/metals/pull/8078" target="_blank" rel="noopener noreferrer" class="">#8078</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">build(deps): bump qs from 6.14.0 to 6.14.1 in /website in the npm_and_yarn
group across 1 directory
<a href="https://github.com/scalameta/metals/pull/8064" target="_blank" rel="noopener noreferrer" class="">#8064</a>
(<a href="https://github.com/dependabot%5Bbot%5D" target="_blank" rel="noopener noreferrer" class="">dependabot[bot]</a>)</li>
<li class="">Add memory usage warning when heap is nearly full
<a href="https://github.com/scalameta/metals/pull/8066" target="_blank" rel="noopener noreferrer" class="">#8066</a>
(<a href="https://github.com/krrish175-byte" target="_blank" rel="noopener noreferrer" class="">krrish175-byte</a>)</li>
<li class="">build(deps): bump actions/upload-artifact from 5 to 6
<a href="https://github.com/scalameta/metals/pull/8072" target="_blank" rel="noopener noreferrer" class="">#8072</a>
(<a href="https://github.com/dependabot%5Bbot%5D" target="_blank" rel="noopener noreferrer" class="">dependabot[bot]</a>)</li>
<li class="">build(deps): bump coursier/setup-action from 1 to 2
<a href="https://github.com/scalameta/metals/pull/8073" target="_blank" rel="noopener noreferrer" class="">#8073</a>
(<a href="https://github.com/dependabot%5Bbot%5D" target="_blank" rel="noopener noreferrer" class="">dependabot[bot]</a>)</li>
<li class="">build(deps-dev): bump @types/node from 24.10.1 to 25.0.3 in /website
<a href="https://github.com/scalameta/metals/pull/8074" target="_blank" rel="noopener noreferrer" class="">#8074</a>
(<a href="https://github.com/dependabot%5Bbot%5D" target="_blank" rel="noopener noreferrer" class="">dependabot[bot]</a>)</li>
<li class="">build(deps): Update jsoup from 1.21.2 to 1.22.1
<a href="https://github.com/scalameta/metals/pull/8076" target="_blank" rel="noopener noreferrer" class="">#8076</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">fix: ZIO test explorer reveals sub-tasks with provideLayer (#8054)
<a href="https://github.com/scalameta/metals/pull/8063" target="_blank" rel="noopener noreferrer" class="">#8063</a>
(<a href="https://github.com/krrish175-byte" target="_blank" rel="noopener noreferrer" class="">krrish175-byte</a>)</li>
<li class="">improvement: Show a warning when newer -release version flag is used
<a href="https://github.com/scalameta/metals/pull/8059" target="_blank" rel="noopener noreferrer" class="">#8059</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">techdebt: Switch to streamble HTTP standard
<a href="https://github.com/scalameta/metals/pull/8057" target="_blank" rel="noopener noreferrer" class="">#8057</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">bugfix: Create a fallback for static imports in java
<a href="https://github.com/scalameta/metals/pull/8056" target="_blank" rel="noopener noreferrer" class="">#8056</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">Make Metals look for <code>./mill</code> and <code>./mill.bat</code> files when identifying Mill
projects <a href="https://github.com/scalameta/metals/pull/8055" target="_blank" rel="noopener noreferrer" class="">#8055</a>
(<a href="https://github.com/lihaoyi" target="_blank" rel="noopener noreferrer" class="">lihaoyi</a>)</li>
<li class="">fix: sql nested interpoles
<a href="https://github.com/scalameta/metals/pull/8047" target="_blank" rel="noopener noreferrer" class="">#8047</a>
(<a href="https://github.com/Mensh1kov" target="_blank" rel="noopener noreferrer" class="">Mensh1kov</a>)</li>
<li class="">build(deps): Update flyway-core from 11.19.1 to 11.20.0
<a href="https://github.com/scalameta/metals/pull/8049" target="_blank" rel="noopener noreferrer" class="">#8049</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update metaconfig-core from 0.17.0 to 0.18.1
<a href="https://github.com/scalameta/metals/pull/8051" target="_blank" rel="noopener noreferrer" class="">#8051</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update ujson from 4.4.1 to 4.4.2
<a href="https://github.com/scalameta/metals/pull/8053" target="_blank" rel="noopener noreferrer" class="">#8053</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update scalafmt-core, scalafmt-dynamic from 3.10.2 to 3.10.3
<a href="https://github.com/scalameta/metals/pull/8052" target="_blank" rel="noopener noreferrer" class="">#8052</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update mdoc-interfaces from 2.8.1 to 2.8.2
<a href="https://github.com/scalameta/metals/pull/8050" target="_blank" rel="noopener noreferrer" class="">#8050</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">chore: Bump next to 3.8.0-RC4
<a href="https://github.com/scalameta/metals/pull/8046" target="_blank" rel="noopener noreferrer" class="">#8046</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">bugfix: Update scalameta to 4.14.3
<a href="https://github.com/scalameta/metals/pull/8045" target="_blank" rel="noopener noreferrer" class="">#8045</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">chore: Send enabled rules in initialize params
<a href="https://github.com/scalameta/metals/pull/8042" target="_blank" rel="noopener noreferrer" class="">#8042</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">bugfix: Fix issues with latest mill version
<a href="https://github.com/scalameta/metals/pull/8043" target="_blank" rel="noopener noreferrer" class="">#8043</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">chore: Update bazel-bsp to 4.0.2
<a href="https://github.com/scalameta/metals/pull/8041" target="_blank" rel="noopener noreferrer" class="">#8041</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">build(deps): Update coursier, ... from 2.1.25-M21 to 2.1.25-M22
<a href="https://github.com/scalameta/metals/pull/8040" target="_blank" rel="noopener noreferrer" class="">#8040</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">improvement: Allow downloading nightly presentation compiler versions
<a href="https://github.com/scalameta/metals/pull/8039" target="_blank" rel="noopener noreferrer" class="">#8039</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">build(deps): Update flyway-core from 11.19.0 to 11.19.1
<a href="https://github.com/scalameta/metals/pull/8038" target="_blank" rel="noopener noreferrer" class="">#8038</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): bump loader-utils from 2.0.2 to 2.0.4 in /website in the
npm_and_yarn group across 1 directory
<a href="https://github.com/scalameta/metals/pull/8036" target="_blank" rel="noopener noreferrer" class="">#8036</a>
(<a href="https://github.com/dependabot%5Bbot%5D" target="_blank" rel="noopener noreferrer" class="">dependabot[bot]</a>)</li>
<li class="">build(deps): Update semanticdb-java from 0.11.1 to 0.11.2
<a href="https://github.com/scalameta/metals/pull/8037" target="_blank" rel="noopener noreferrer" class="">#8037</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">fix: SQL syntax highlighting
<a href="https://github.com/scalameta/metals/pull/8035" target="_blank" rel="noopener noreferrer" class="">#8035</a>
(<a href="https://github.com/warcholjakub" target="_blank" rel="noopener noreferrer" class="">warcholjakub</a>)</li>
<li class="">fix(mcp): support inspecting Java generic types
<a href="https://github.com/scalameta/metals/pull/8033" target="_blank" rel="noopener noreferrer" class="">#8033</a>
(<a href="https://github.com/warcholjakub" target="_blank" rel="noopener noreferrer" class="">warcholjakub</a>)</li>
<li class="">chore: Update scalameta to 4.14.2
<a href="https://github.com/scalameta/metals/pull/8032" target="_blank" rel="noopener noreferrer" class="">#8032</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">improvement: Use mill scripts if available in the workspace
<a href="https://github.com/scalameta/metals/pull/8034" target="_blank" rel="noopener noreferrer" class="">#8034</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">build(deps): Update sbt-scalafix, scalafix-interfaces from 0.14.4 to 0.14.5
<a href="https://github.com/scalameta/metals/pull/8030" target="_blank" rel="noopener noreferrer" class="">#8030</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update cli_3, scala-cli-bsp from 1.10.1 to 1.11.0
<a href="https://github.com/scalameta/metals/pull/8031" target="_blank" rel="noopener noreferrer" class="">#8031</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">chore: Update Scala CLI to 1.10.1
<a href="https://github.com/scalameta/metals/pull/8028" target="_blank" rel="noopener noreferrer" class="">#8028</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">build(deps): Update flyway-core from 11.18.0 to 11.19.0
<a href="https://github.com/scalameta/metals/pull/8023" target="_blank" rel="noopener noreferrer" class="">#8023</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update scalafmt-core from 3.9.10 to 3.10.2
<a href="https://github.com/scalameta/metals/pull/8024" target="_blank" rel="noopener noreferrer" class="">#8024</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">Fix script definition URIs to point to original .sc files
<a href="https://github.com/scalameta/metals/pull/8020" target="_blank" rel="noopener noreferrer" class="">#8020</a>
(<a href="https://github.com/zielinsky" target="_blank" rel="noopener noreferrer" class="">zielinsky</a>)</li>
<li class="">chore: Add support for 2.12.21
<a href="https://github.com/scalameta/metals/pull/8019" target="_blank" rel="noopener noreferrer" class="">#8019</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">chore: Update mcp to newest version
<a href="https://github.com/scalameta/metals/pull/8016" target="_blank" rel="noopener noreferrer" class="">#8016</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">chore: Bump Scala to 3.3.7
<a href="https://github.com/scalameta/metals/pull/8000" target="_blank" rel="noopener noreferrer" class="">#8000</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">Add auto imports for Java
<a href="https://github.com/scalameta/metals/pull/7978" target="_blank" rel="noopener noreferrer" class="">#7978</a>
(<a href="https://github.com/zielinsky" target="_blank" rel="noopener noreferrer" class="">zielinsky</a>)</li>
<li class="">Completions for implicit classes
<a href="https://github.com/scalameta/metals/pull/7919" target="_blank" rel="noopener noreferrer" class="">#7919</a>
(<a href="https://github.com/pielas" target="_blank" rel="noopener noreferrer" class="">pielas</a>)</li>
<li class="">build(deps): Update protobuf-java from 4.33.1 to 4.33.2
<a href="https://github.com/scalameta/metals/pull/8010" target="_blank" rel="noopener noreferrer" class="">#8010</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update coursier, ... from 2.1.25-M20 to 2.1.25-M21
<a href="https://github.com/scalameta/metals/pull/8011" target="_blank" rel="noopener noreferrer" class="">#8011</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update scalafmt-core from 3.9.4 to 3.9.10
<a href="https://github.com/scalameta/metals/pull/8013" target="_blank" rel="noopener noreferrer" class="">#8013</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update mdoc-interfaces from 2.8.0 to 2.8.1
<a href="https://github.com/scalameta/metals/pull/8012" target="_blank" rel="noopener noreferrer" class="">#8012</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update scalafmt-dynamic from 3.10.0 to 3.10.2
<a href="https://github.com/scalameta/metals/pull/8014" target="_blank" rel="noopener noreferrer" class="">#8014</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">chore: Don't crash when database is corrupted
<a href="https://github.com/scalameta/metals/pull/8009" target="_blank" rel="noopener noreferrer" class="">#8009</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">chore: Clean workspace after Bazel tests to reduce disk usage
<a href="https://github.com/scalameta/metals/pull/8008" target="_blank" rel="noopener noreferrer" class="">#8008</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">Support <code>build.mill.yaml</code> build files
<a href="https://github.com/scalameta/metals/pull/7985" target="_blank" rel="noopener noreferrer" class="">#7985</a>
(<a href="https://github.com/lolgab" target="_blank" rel="noopener noreferrer" class="">lolgab</a>)</li>
<li class="">build(deps): Update mdoc-interfaces from 2.7.2 to 2.8.0
<a href="https://github.com/scalameta/metals/pull/8005" target="_blank" rel="noopener noreferrer" class="">#8005</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update metaconfig-core from 0.16.0 to 0.17.0
<a href="https://github.com/scalameta/metals/pull/8006" target="_blank" rel="noopener noreferrer" class="">#8006</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update flyway-core from 11.14.1 to 11.18.0
<a href="https://github.com/scalameta/metals/pull/8004" target="_blank" rel="noopener noreferrer" class="">#8004</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">fix: Bazel docs specify wrong extension for projectview.bazelproject
<a href="https://github.com/scalameta/metals/pull/8002" target="_blank" rel="noopener noreferrer" class="">#8002</a>
(<a href="https://github.com/jklukas" target="_blank" rel="noopener noreferrer" class="">jklukas</a>)</li>
<li class="">fix: correct autoImportBuilds config key name
<a href="https://github.com/scalameta/metals/pull/8001" target="_blank" rel="noopener noreferrer" class="">#8001</a>
(<a href="https://github.com/jklukas" target="_blank" rel="noopener noreferrer" class="">jklukas</a>)</li>
<li class="">bugfix: Filter out invalid multiline comment fold ranges
<a href="https://github.com/scalameta/metals/pull/7979" target="_blank" rel="noopener noreferrer" class="">#7979</a>
(<a href="https://github.com/discapes" target="_blank" rel="noopener noreferrer" class="">discapes</a>)</li>
<li class="">build(deps): bump express from 4.21.2 to 4.22.1 in /website in the
npm_and_yarn group across 1 directory
<a href="https://github.com/scalameta/metals/pull/7996" target="_blank" rel="noopener noreferrer" class="">#7996</a>
(<a href="https://github.com/dependabot%5Bbot%5D" target="_blank" rel="noopener noreferrer" class="">dependabot[bot]</a>)</li>
<li class="">build(deps): Update lz4-java from 1.8.0 to 1.8.1
<a href="https://github.com/scalameta/metals/pull/7989" target="_blank" rel="noopener noreferrer" class="">#7989</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): bump actions/checkout from 5 to 6
<a href="https://github.com/scalameta/metals/pull/7991" target="_blank" rel="noopener noreferrer" class="">#7991</a>
(<a href="https://github.com/dependabot%5Bbot%5D" target="_blank" rel="noopener noreferrer" class="">dependabot[bot]</a>)</li>
<li class="">build(deps): bump @easyops-cn/docusaurus-search-local from 0.49.2 to 0.52.2 in
/website <a href="https://github.com/scalameta/metals/pull/7992" target="_blank" rel="noopener noreferrer" class="">#7992</a>
(<a href="https://github.com/dependabot%5Bbot%5D" target="_blank" rel="noopener noreferrer" class="">dependabot[bot]</a>)</li>
<li class="">build(deps-dev): bump @types/node from 24.6.2 to 24.10.1 in /website
<a href="https://github.com/scalameta/metals/pull/7993" target="_blank" rel="noopener noreferrer" class="">#7993</a>
(<a href="https://github.com/dependabot%5Bbot%5D" target="_blank" rel="noopener noreferrer" class="">dependabot[bot]</a>)</li>
<li class="">build(deps): bump mdast-util-to-hast from 13.1.0 to 13.2.1 in /website in the
npm_and_yarn group across 1 directory
<a href="https://github.com/scalameta/metals/pull/7994" target="_blank" rel="noopener noreferrer" class="">#7994</a>
(<a href="https://github.com/dependabot%5Bbot%5D" target="_blank" rel="noopener noreferrer" class="">dependabot[bot]</a>)</li>
<li class="">build(deps): Update flyway-core from 11.14.0 to 11.14.1
<a href="https://github.com/scalameta/metals/pull/7988" target="_blank" rel="noopener noreferrer" class="">#7988</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): bump node-forge from 1.3.1 to 1.3.2 in /website in the
npm_and_yarn group across 1 directory
<a href="https://github.com/scalameta/metals/pull/7977" target="_blank" rel="noopener noreferrer" class="">#7977</a>
(<a href="https://github.com/dependabot%5Bbot%5D" target="_blank" rel="noopener noreferrer" class="">dependabot[bot]</a>)</li>
<li class="">build(deps): Update protobuf-java from 4.32.1 to 4.33.1
<a href="https://github.com/scalameta/metals/pull/7981" target="_blank" rel="noopener noreferrer" class="">#7981</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update ujson from 4.3.2 to 4.4.1
<a href="https://github.com/scalameta/metals/pull/7983" target="_blank" rel="noopener noreferrer" class="">#7983</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update coursier, ... from 2.1.25-M19 to 2.1.25-M20
<a href="https://github.com/scalameta/metals/pull/7984" target="_blank" rel="noopener noreferrer" class="">#7984</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update jackson-databind from 2.20.0 to 2.20.1
<a href="https://github.com/scalameta/metals/pull/7980" target="_blank" rel="noopener noreferrer" class="">#7980</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update os-lib from 0.11.5 to 0.11.6
<a href="https://github.com/scalameta/metals/pull/7982" target="_blank" rel="noopener noreferrer" class="">#7982</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">chore: Test Scala 3.8.0-RC2
<a href="https://github.com/scalameta/metals/pull/7976" target="_blank" rel="noopener noreferrer" class="">#7976</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">docs: Add release notes for Metals 1.6.4
<a href="https://github.com/scalameta/metals/pull/7971" target="_blank" rel="noopener noreferrer" class="">#7971</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
</ul>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Metals v1.6.4 - Osmium]]></title>
            <link>http://scalameta.org/metals/blog/2025/11/25/osmium</link>
            <guid>http://scalameta.org/metals/blog/2025/11/25/osmium</guid>
            <pubDate>Tue, 25 Nov 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[We're happy to announce the release of Metals v1.6.4, which brings in a number]]></description>
            <content:encoded><![CDATA[<p>We're happy to announce the release of Metals v1.6.4, which brings in a number
of improvements for Java support as well as some bugfixes and improvements for
other features.</p>
<table><tbody><tr><td>Commits since last release</td><td align="center">46</td></tr><tr><td>Merged PRs</td><td align="center">46</td></tr><tr><td>Contributors</td><td align="center">7</td></tr><tr><td>Closed issues</td><td align="center">23</td></tr><tr><td>New features</td><td align="center">8</td></tr></tbody></table>
<p>For full details:
<a href="https://github.com/scalameta/metals/milestone/83?closed=1" target="_blank" rel="noopener noreferrer" class="">https://github.com/scalameta/metals/milestone/83?closed=1</a></p>
<p>Metals is a language server for Scala that works with VS Code, Vim, Emacs, Zed,
Helix and Sublime Text. Metals is developed at the
<a href="https://scala.epfl.ch/" target="_blank" rel="noopener noreferrer" class="">Scala Center</a> and <a href="https://virtuslab.com/" target="_blank" rel="noopener noreferrer" class="">VirtusLab</a>
with the help from contributors from the community.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="tldr">TL;DR<a href="http://scalameta.org/metals/blog/2025/11/25/osmium#tldr" class="hash-link" aria-label="Direct link to TL;DR" title="Direct link to TL;DR" translate="no">​</a></h2>
<p>Check out <a href="https://scalameta.org/metals/" target="_blank" rel="noopener noreferrer" class="">https://scalameta.org/metals/</a>, and
give Metals a try!</p>
<ul>
<li class=""><a href="http://scalameta.org/metals/blog/2025/11/25/osmium#java-support-improvements" class="">Java support improvements</a></li>
<li class=""><a href="http://scalameta.org/metals/blog/2025/11/25/osmium#save-configuration-that-was-run-via-lenses-to-vs-code-launchjson" class="">Save configuration that was run via lenses to Vs Code launch.json</a></li>
<li class=""><a href="http://scalameta.org/metals/blog/2025/11/25/osmium#produce-diagnostics-for-errors-in-sbt-files" class="">Produce diagnostics for errors in sbt files</a></li>
<li class=""><a href="http://scalameta.org/metals/blog/2025/11/25/osmium#refactoring-automatically-add-imports-when-copying-between-files" class="">Refactoring: Automatically add imports when copying between files</a></li>
<li class=""><a href="http://scalameta.org/metals/blog/2025/11/25/osmium#add-fallback-for-showmessagerequest" class="">Add fallback for showMessageRequest</a></li>
<li class=""><a href="http://scalameta.org/metals/blog/2025/11/25/osmium#miscellaneous" class="">Miscellaneous</a></li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="java-support-improvements">Java support improvements<a href="http://scalameta.org/metals/blog/2025/11/25/osmium#java-support-improvements" class="hash-link" aria-label="Direct link to Java support improvements" title="Direct link to Java support improvements" translate="no">​</a></h2>
<p>Some basic Java support was already added in an earlier version of Metals, but
since then we haven't improved it too much. However, it came to our attention
that there is plenty of codebases that currently use Bazel and a mixture of
Scala and Java. For those codebases there is no way to use LSP properly aside
from Metals. We decided to improve some lower hanging fruits when it comes to
Java support.</p>
<p>These new features include:</p>
<ul>
<li class="">Navigating to definition will now be using the Java compiler directly first,
which will not require a full compilation of the file.</li>
<li class="">Signature help for methods and constructors in Java files will now show up
together with the documentation.</li>
<li class="">Document highlight for Java will now also be using the compiler instead of
semanticdb.</li>
<li class="">Rename and references using the Java compiler directly for variables and
methods that are not accessible from other files.</li>
</ul>
<p>All those improvements allow users to work with Java files without having to
compile them first to access most important features.</p>
<p>If there is a feature that you feel is missing, please let us know by opening an
issue on GitHub.</p>
<p>We still plan on working on auto import functionality and overall improvements
for Java support in the near future.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="save-configuration-that-was-run-via-lenses-to-vs-code-launchjson">Save configuration that was run via lenses to Vs Code launch.json<a href="http://scalameta.org/metals/blog/2025/11/25/osmium#save-configuration-that-was-run-via-lenses-to-vs-code-launchjson" class="hash-link" aria-label="Direct link to Save configuration that was run via lenses to Vs Code launch.json" title="Direct link to Save configuration that was run via lenses to Vs Code launch.json" translate="no">​</a></h2>
<p>Previously, when running a configuration that was run via code lenses, we would
not save that configuration anywhere and the user would have to manually save it
to the launch.json file. Now, when running main classes via lenses, we will save
that configuration for main classes to the launch.json file automatically if the
configuration is not already present.</p>
<p>This behaviour is already present in some other IDEs, so this should be a
welcome improvement for many users.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="produce-diagnostics-for-errors-in-sbt-files">Produce diagnostics for errors in sbt files<a href="http://scalameta.org/metals/blog/2025/11/25/osmium#produce-diagnostics-for-errors-in-sbt-files" class="hash-link" aria-label="Direct link to Produce diagnostics for errors in sbt files" title="Direct link to Produce diagnostics for errors in sbt files" translate="no">​</a></h2>
<p>When importing a sbt project with the default settings, Metals would not produce
any diagnostics for errors in sbt files even if the import failed. This would
cause confusion for users as they would not know why the import failed unless
they dug through the log files.</p>
<p>In this release, thanks to the work of <a href="https://github.com/afentev" target="_blank" rel="noopener noreferrer" class="">@afentev</a>,
Metals will show the errors in the problem tab alongside other diagnostics.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="refactoring-automatically-add-imports-when-copying-between-files">Refactoring: Automatically add imports when copying between files<a href="http://scalameta.org/metals/blog/2025/11/25/osmium#refactoring-automatically-add-imports-when-copying-between-files" class="hash-link" aria-label="Direct link to Refactoring: Automatically add imports when copying between files" title="Direct link to Refactoring: Automatically add imports when copying between files" translate="no">​</a></h2>
<p>This feature was add to the last version of metals, but unfortunately it turned
out to not be working correctly yet. In this release, we improved it to reuse
the existing auto import functionality when copying between files, which is much
more robust and reliable.</p>
<p>Additionally, the feature will now also work for Scala 3 files in the upcoming
3.8.0 and 3.3.8 versions of Scala. 3.8.0-RC1 is already available for testing.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="add-fallback-for-showmessagerequest">Add fallback for showMessageRequest<a href="http://scalameta.org/metals/blog/2025/11/25/osmium#add-fallback-for-showmessagerequest" class="hash-link" aria-label="Direct link to Add fallback for showMessageRequest" title="Direct link to Add fallback for showMessageRequest" translate="no">​</a></h2>
<p>Some editors, such as Helix, do not support the showMessageRequest method, which
is required for the Metals to work properly. To allow them to function
correctly, we added a fallback with a default option to choose in each show
message request.</p>
<p>This can be enabled by adding the following to the Metals server configuration
in the user settings:</p>
<div class="language-json codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#bfc7d5;--prism-background-color:#292d3e"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-json codeBlock_bY9V thin-scrollbar" style="color:#bfc7d5;background-color:#292d3e"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#bfc7d5"><span class="token plain">-Dmetals.disable-show-message-request=true</span><br></div></code></pre></div></div>
<p>or configuring the client to be Helix editor via:</p>
<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#bfc7d5;--prism-background-color:#292d3e"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#bfc7d5;background-color:#292d3e"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#bfc7d5"><span class="token plain">-Dmetals.client=helix</span><br></div></code></pre></div></div>
<p>Let us know if any functionality is missing or is still not working as expected.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="miscellaneous">Miscellaneous<a href="http://scalameta.org/metals/blog/2025/11/25/osmium#miscellaneous" class="hash-link" aria-label="Direct link to Miscellaneous" title="Direct link to Miscellaneous" translate="no">​</a></h2>
<ul>
<li class="">bugfix: Increase timeout for starting tests and make it configurable
<a href="https://github.com/zielinsky" target="_blank" rel="noopener noreferrer" class="">zielinsky</a></li>
<li class="">improvement: Also clear caches in case of 2.12 issues
<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a></li>
<li class="">bugfix: Don't show sbt warnings as errors after Bloop import
<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a></li>
<li class="">improvement: Include constructor params in document symbol
<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a></li>
<li class="">bugfix: Support standard Scala 3 library when capture checked
<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a></li>
<li class="">Cancel compilation before cleaning up the workspace
<a href="https://github.com/pielas" target="_blank" rel="noopener noreferrer" class="">pielas</a></li>
<li class="">bugfix<!-- -->:Fixed<!-- --> issues when using repositories with credentials
<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a></li>
<li class="">improvement: Offer to regenerate Scala CLI config when clicking on build tool
status <a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a></li>
<li class="">improvement: Allow first letter to be lower case even if the variable name
start with a capital letter <a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a></li>
<li class="">Allow configuring preferred build system in user config
<a href="https://github.com/jklukas" target="_blank" rel="noopener noreferrer" class="">jklukas</a></li>
<li class="">bugfix: Use existing auto import functionality instead of custom one when
copying between files <a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a></li>
<li class="">bugfix: Add repl module for Scala 3.8.0 in worksheets
<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a></li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="contributors">Contributors<a href="http://scalameta.org/metals/blog/2025/11/25/osmium#contributors" class="hash-link" aria-label="Direct link to Contributors" title="Direct link to Contributors" translate="no">​</a></h2>
<p>Big thanks to everybody who contributed to this release or reported an issue!</p>
<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#bfc7d5;--prism-background-color:#292d3e"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#bfc7d5;background-color:#292d3e"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#bfc7d5"><span class="token plain">$ git shortlog -sn --no-merges v1.6.3..v1.6.4</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">     38	Tomasz Godzik</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">     1	Jeff Klukas</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">     1	Kirill Afentev</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">     1	Mateusz Piękos</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">     1	Radek Busz</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">     1	Zieliński Patryk</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">     1	dependabot[bot]</span><br></div></code></pre></div></div>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="merged-prs">Merged PRs<a href="http://scalameta.org/metals/blog/2025/11/25/osmium#merged-prs" class="hash-link" aria-label="Direct link to Merged PRs" title="Direct link to Merged PRs" translate="no">​</a></h2>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="v164-2025-11-21"><a href="https://github.com/scalameta/metals/tree/v1.6.4" target="_blank" rel="noopener noreferrer" class="">v1.6.4</a> (2025-11-21)<a href="http://scalameta.org/metals/blog/2025/11/25/osmium#v164-2025-11-21" class="hash-link" aria-label="Direct link to v164-2025-11-21" title="Direct link to v164-2025-11-21" translate="no">​</a></h2>
<p><a href="https://github.com/scalameta/metals/compare/v1.6.3...v1.6.4" target="_blank" rel="noopener noreferrer" class="">Full Changelog</a></p>
<p><strong>Merged pull requests:</strong></p>
<ul>
<li class="">bugfix: Reload classloader when republishing rules
<a href="https://github.com/scalameta/metals/pull/7975" target="_blank" rel="noopener noreferrer" class="">#7972</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">chore: Don't throw if we can't find symbol
<a href="https://github.com/scalameta/metals/pull/7973" target="_blank" rel="noopener noreferrer" class="">#7972</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">bugfix: Feature proof support for Scala 3.8.0
<a href="https://github.com/scalameta/metals/pull/7972" target="_blank" rel="noopener noreferrer" class="">#7972</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">improvement: Add fallback if showMessageRequest is not supported
<a href="https://github.com/scalameta/metals/pull/7954" target="_blank" rel="noopener noreferrer" class="">#7954</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">improvement: Ignore flaky tests on MacOS
<a href="https://github.com/scalameta/metals/pull/7968" target="_blank" rel="noopener noreferrer" class="">#7968</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">add debuggeeGracePeriod as a configuration parameter
<a href="https://github.com/scalameta/metals/pull/7969" target="_blank" rel="noopener noreferrer" class="">#7969</a>
(<a href="https://github.com/zielinsky" target="_blank" rel="noopener noreferrer" class="">zielinsky</a>)</li>
<li class="">improvement: Also clear caches in case of 2.12 issues
<a href="https://github.com/scalameta/metals/pull/7967" target="_blank" rel="noopener noreferrer" class="">#7967</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">bugfix: Don't show sbt warnings as errors after import
<a href="https://github.com/scalameta/metals/pull/7966" target="_blank" rel="noopener noreferrer" class="">#7966</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">improvement: Include constructor params in document symbol
<a href="https://github.com/scalameta/metals/pull/7953" target="_blank" rel="noopener noreferrer" class="">#7953</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">bugfix: Fix test for the new version of Scala 2.13
<a href="https://github.com/scalameta/metals/pull/7965" target="_blank" rel="noopener noreferrer" class="">#7965</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">bugfix: Support standard library when capture checked
<a href="https://github.com/scalameta/metals/pull/7963" target="_blank" rel="noopener noreferrer" class="">#7963</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">chore: Add support for Scala 2.13.18
<a href="https://github.com/scalameta/metals/pull/7962" target="_blank" rel="noopener noreferrer" class="">#7962</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">chore: Update Bloop to 2.0.17
<a href="https://github.com/scalameta/metals/pull/7960" target="_blank" rel="noopener noreferrer" class="">#7960</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">Cancelling compilation before cleaning up the workspace
<a href="https://github.com/scalameta/metals/pull/7959" target="_blank" rel="noopener noreferrer" class="">#7959</a>
(<a href="https://github.com/pielas" target="_blank" rel="noopener noreferrer" class="">pielas</a>)</li>
<li class="">feature: Add rename for Java PC
<a href="https://github.com/scalameta/metals/pull/7957" target="_blank" rel="noopener noreferrer" class="">#7957</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">bugfix: Download fully cross version scalafix dependency
<a href="https://github.com/scalameta/metals/pull/7955" target="_blank" rel="noopener noreferrer" class="">#7955</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">chore: Remove unused class
<a href="https://github.com/scalameta/metals/pull/7952" target="_blank" rel="noopener noreferrer" class="">#7952</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">bugfix: Retry downloading scalafix with fallback
<a href="https://github.com/scalameta/metals/pull/7949" target="_blank" rel="noopener noreferrer" class="">#7949</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">chore: Update scala nightlies repo and remove old sonatype one
<a href="https://github.com/scalameta/metals/pull/7950" target="_blank" rel="noopener noreferrer" class="">#7950</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">bugfix: Use coursierapi to make sure credentials are used
<a href="https://github.com/scalameta/metals/pull/7947" target="_blank" rel="noopener noreferrer" class="">#7947</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">bugfix: Check for null in .tpe
<a href="https://github.com/scalameta/metals/pull/7948" target="_blank" rel="noopener noreferrer" class="">#7948</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">feature: Add support for references in Java PC
<a href="https://github.com/scalameta/metals/pull/7934" target="_blank" rel="noopener noreferrer" class="">#7934</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">improvement: Also allow using full target id when using discovery
<a href="https://github.com/scalameta/metals/pull/7945" target="_blank" rel="noopener noreferrer" class="">#7945</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">chore: Update all website dependencies
<a href="https://github.com/scalameta/metals/pull/7942" target="_blank" rel="noopener noreferrer" class="">#7942</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">build(deps): bump actions/upload-artifact from 4 to 5
<a href="https://github.com/scalameta/metals/pull/7935" target="_blank" rel="noopener noreferrer" class="">#7935</a>
(<a href="https://github.com/dependabot%5Bbot%5D" target="_blank" rel="noopener noreferrer" class="">dependabot[bot]</a>)</li>
<li class="">improvement: Offer to regenerate Scala CLI config when clicking on status
<a href="https://github.com/scalameta/metals/pull/7933" target="_blank" rel="noopener noreferrer" class="">#7933</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">bugfix: Do not throw from OnDemandDefinitionIndex
<a href="https://github.com/scalameta/metals/pull/7931" target="_blank" rel="noopener noreferrer" class="">#7931</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">chore: Add tests for #5923
<a href="https://github.com/scalameta/metals/pull/7929" target="_blank" rel="noopener noreferrer" class="">#7929</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">improvement: Allow first letter to be lower case
<a href="https://github.com/scalameta/metals/pull/7907" target="_blank" rel="noopener noreferrer" class="">#7907</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">bugfix: Don't modify name if incorrect position
<a href="https://github.com/scalameta/metals/pull/7928" target="_blank" rel="noopener noreferrer" class="">#7928</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">Allow configuring preferred build system in user config
<a href="https://github.com/scalameta/metals/pull/7924" target="_blank" rel="noopener noreferrer" class="">#7924</a>
(<a href="https://github.com/jklukas" target="_blank" rel="noopener noreferrer" class="">jklukas</a>)</li>
<li class="">feat: Produce diagnostics for errors in sbt files
<a href="https://github.com/scalameta/metals/pull/7464" target="_blank" rel="noopener noreferrer" class="">#7464</a>
(<a href="https://github.com/afentev" target="_blank" rel="noopener noreferrer" class="">afentev</a>)</li>
<li class="">feature: Add document highlight for Java using the compiler directly
<a href="https://github.com/scalameta/metals/pull/7927" target="_blank" rel="noopener noreferrer" class="">#7927</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">improvement: Add stack trace to toplevels fail message
<a href="https://github.com/scalameta/metals/pull/7926" target="_blank" rel="noopener noreferrer" class="">#7926</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">feature: Add signature help for Java files
<a href="https://github.com/scalameta/metals/pull/7922" target="_blank" rel="noopener noreferrer" class="">#7922</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">bugfix: Use existing auto import functionality instead
<a href="https://github.com/scalameta/metals/pull/7912" target="_blank" rel="noopener noreferrer" class="">#7912</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">feature: Add compiler go to definition for Java
<a href="https://github.com/scalameta/metals/pull/7920" target="_blank" rel="noopener noreferrer" class="">#7920</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">improvement: Do not use imgur for images
<a href="https://github.com/scalameta/metals/pull/7918" target="_blank" rel="noopener noreferrer" class="">#7918</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">bugfix: Drop suffix when working with scalafix
<a href="https://github.com/scalameta/metals/pull/7915" target="_blank" rel="noopener noreferrer" class="">#7915</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">bugfix: Fix navigation in mill projects for Java
<a href="https://github.com/scalameta/metals/pull/7914" target="_blank" rel="noopener noreferrer" class="">#7914</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">bugfix: Remove usage of listFiles, which can cause null pointer exception
<a href="https://github.com/scalameta/metals/pull/7910" target="_blank" rel="noopener noreferrer" class="">#7910</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">bugfix: Add missing type to array in MCP schema
<a href="https://github.com/scalameta/metals/pull/7905" target="_blank" rel="noopener noreferrer" class="">#7905</a>
(<a href="https://github.com/gitplaneta" target="_blank" rel="noopener noreferrer" class="">gitplaneta</a>)</li>
<li class="">chore: Update scalafmt to 3.10.0
<a href="https://github.com/scalameta/metals/pull/7906" target="_blank" rel="noopener noreferrer" class="">#7906</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">bugfix: Fix images in the last releases
<a href="https://github.com/scalameta/metals/pull/7902" target="_blank" rel="noopener noreferrer" class="">#7902</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">chore: Add release notes for Meals 1.6.3
<a href="https://github.com/scalameta/metals/pull/7899" target="_blank" rel="noopener noreferrer" class="">#7899</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">bugfix: Fix test issues after merging
<a href="https://github.com/scalameta/metals/pull/7900" target="_blank" rel="noopener noreferrer" class="">#7900</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
</ul>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Metals v1.6.3 - Osmium]]></title>
            <link>http://scalameta.org/metals/blog/2025/10/16/osmium</link>
            <guid>http://scalameta.org/metals/blog/2025/10/16/osmium</guid>
            <pubDate>Thu, 16 Oct 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[We're happy to announce the release of Metals v1.6.3, which brings a number of]]></description>
            <content:encoded><![CDATA[<p>We're happy to announce the release of Metals v1.6.3, which brings a number of
improvements as well as interesting new features. This release has seen a lot of
contributions from the community and we would like to thank everyone who helped
with this release!</p>
<table><tbody><tr><td>Commits since last release</td><td align="center">127</td></tr><tr><td>Merged PRs</td><td align="center">127</td></tr><tr><td>Contributors</td><td align="center">18</td></tr><tr><td>Closed issues</td><td align="center">33</td></tr><tr><td>New features</td><td align="center">8</td></tr></tbody></table>
<p>For full details:
<a href="https://github.com/scalameta/metals/milestone/82?closed=1" target="_blank" rel="noopener noreferrer" class="">https://github.com/scalameta/metals/milestone/82?closed=1</a></p>
<p>Metals is a language server for Scala that works with VS Code, Vim, Emacs, Zed,
Helix and Sublime Text. Metals is developed at the
<a href="https://scala.epfl.ch/" target="_blank" rel="noopener noreferrer" class="">Scala Center</a> and <a href="https://virtuslab.com/" target="_blank" rel="noopener noreferrer" class="">VirtusLab</a>
with the help from contributors from the community.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="tldr">TL;DR<a href="http://scalameta.org/metals/blog/2025/10/16/osmium#tldr" class="hash-link" aria-label="Direct link to TL;DR" title="Direct link to TL;DR" translate="no">​</a></h2>
<p>Check out <a href="https://scalameta.org/metals/" target="_blank" rel="noopener noreferrer" class="">https://scalameta.org/metals/</a>, and
give Metals a try!</p>
<ul>
<li class=""><a href="http://scalameta.org/metals/blog/2025/10/16/osmium#mcp-scalafix-rule-generation" class="">MCP: Scalafix rule generation</a></li>
<li class=""><a href="http://scalameta.org/metals/blog/2025/10/16/osmium#commands-add-a-copy-fqn-command" class="">Commands: Add a "copy fqn" command</a></li>
<li class=""><a href="http://scalameta.org/metals/blog/2025/10/16/osmium#inlay-hints-add-closing-labels" class="">Inlay hints: Add closing labels</a></li>
<li class=""><a href="http://scalameta.org/metals/blog/2025/10/16/osmium#refactoring-automatically-add-imports-when-copying-between-files" class="">Refactoring: Automatically add imports when copying between files</a></li>
<li class=""><a href="http://scalameta.org/metals/blog/2025/10/16/osmium#testing-add-cursor-based-target-discovery-for-running-closest-main-or-test" class="">Testing: Add cursor-based target discovery for running closest main or test</a></li>
<li class=""><a href="http://scalameta.org/metals/blog/2025/10/16/osmium#testing-test-discovery-for-bazel" class="">Testing: Implemented test discovery for Bazel</a></li>
<li class=""><a href="http://scalameta.org/metals/blog/2025/10/16/osmium#code-actions-convert-infix-to-normal-apply" class="">Code actions: Convert infix to normal apply</a></li>
<li class=""><a href="http://scalameta.org/metals/blog/2025/10/16/osmium#code-actions-implement-convert-to-collect-code-action" class="">Code Actions: Implement <code>Convert to collect</code> code action</a></li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="mcp-scalafix-rule-generation">MCP: Scalafix rule generation<a href="http://scalameta.org/metals/blog/2025/10/16/osmium#mcp-scalafix-rule-generation" class="hash-link" aria-label="Direct link to MCP: Scalafix rule generation" title="Direct link to MCP: Scalafix rule generation" translate="no">​</a></h2>
<p>Metals now provides a new Model Context Protocol tool for generating Scalafix
rules within the MCP server. This can be used to run refactorings generated by
LLMs on your codebase.</p>
<p>Most of the work around publishing and running Scalafix rules is done by Metals
itself, while the LLM is only responsible for generating the rule implementation
and description.</p>
<p>This works best on smaller codebases, but can later be published and used in
larger ones.</p>
<p>Each rule generated by the MCP server will be saved in the <code>.metals/rules</code>
directory and is a self-contained Scala CLI project.</p>
<p>An example query that can be used and has been tested with is:</p>
<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#bfc7d5;--prism-background-color:#292d3e"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#bfc7d5;background-color:#292d3e"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#bfc7d5"><span class="token plain">Using MCP, generate a scalafix rule that will change expressions with filter and map</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">such as `.filter(x =&gt; x &gt; 1).map(x =&gt; x * 2)` into collect statements like `.collect{case x if x &gt; 1 =&gt; x * 2}`</span><br></div></code></pre></div></div>
<p>When used with Claude Code or Cursor (or your MCP-supporting LLM tool of
choice), this will generate a finished rule in a few tries at a maximum.</p>
<p>The new tool is still experimental and there might be some rough edges, but
we're happy to hear your feedback and suggestions! Some possible errors might
involve not validating the inputs from the LLM properly or not returning an
actionable enough error message.</p>
<p>Once generated, the rule can be run also using the <code>metals.scalafix-run-only</code>
command in the same workspace or published from the rule directory if not
already published when generating the rule.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="commands-add-a-copy-fqn-command">Commands: Add a "copy fqn" command<a href="http://scalameta.org/metals/blog/2025/10/16/osmium#commands-add-a-copy-fqn-command" class="hash-link" aria-label="Direct link to Commands: Add a &quot;copy fqn&quot; command" title="Direct link to Commands: Add a &quot;copy fqn&quot; command" translate="no">​</a></h2>
<p>Thanks to <a href="https://github.com/KacperFKorban" target="_blank" rel="noopener noreferrer" class="">KacperFKorban</a> we now have a new
command that allows to copy the fully qualified name of a symbol to be used in
places such as Scaladoc comments.</p>
<p>For example, if you have the following code:</p>
<div class="language-scala codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#bfc7d5;--prism-background-color:#292d3e"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-scala codeBlock_bY9V thin-scrollbar" style="color:#bfc7d5;background-color:#292d3e"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#bfc7d5"><span class="token plain">package com.example</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">object Main {</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">  def main(args: Array[String]): Unit = {</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">    println("Hello, world!")</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">  }</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">}</span><br></div></code></pre></div></div>
<p>You can copy the fully qualified name of the <code>main</code> method to obtain
<code>com.example.Main#main</code>.</p>
<p>This command should be available in all editors that support
'workspace/executeCommand' LSP endpoint.</p>
<p>In Visual Studio Code, you can bind this command to a shortcut or invoke it from
the dropdown menu with your cursor on the symbol and select <code>Copy reference</code>.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="inlay-hints-add-closing-labels">Inlay hints: Add closing labels<a href="http://scalameta.org/metals/blog/2025/10/16/osmium#inlay-hints-add-closing-labels" class="hash-link" aria-label="Direct link to Inlay hints: Add closing labels" title="Direct link to Inlay hints: Add closing labels" translate="no">​</a></h2>
<p>Another great feature added by <a href="https://github.com/KacperFKorban" target="_blank" rel="noopener noreferrer" class="">KacperFKorban</a>
is the support for showing closing labels in inlay hints.</p>
<p>When this setting is enabled, each method/class/object definition that uses
braces syntax will get a closing label hint next to the closing brace with the
name of the definition.</p>
<p>For example:</p>
<div class="language-scala codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#bfc7d5;--prism-background-color:#292d3e"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-scala codeBlock_bY9V thin-scrollbar" style="color:#bfc7d5;background-color:#292d3e"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#bfc7d5"><span class="token plain">object Main {</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">  def main(args: Array[String]): Unit = {</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">    println("Hello, world!")</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">  } /*main*/</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">} /*Main*/</span><br></div></code></pre></div></div>
<p>Where <code>/*main*/</code> and <code>/*Main*/</code> are the closing labels.</p>
<p>This can be enabled by setting the <code>metals.inlayHints.closingLabels.enable</code>
setting.</p>
<p>The feature is currently available only for Scala 2, we are planning to add
support for Scala 3 in the near future.</p>
<p>Let us know what you think!</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="refactoring-automatically-add-imports-when-copying-between-files">Refactoring: Automatically add imports when copying between files<a href="http://scalameta.org/metals/blog/2025/10/16/osmium#refactoring-automatically-add-imports-when-copying-between-files" class="hash-link" aria-label="Direct link to Refactoring: Automatically add imports when copying between files" title="Direct link to Refactoring: Automatically add imports when copying between files" translate="no">​</a></h2>
<p>In this release, thanks to <a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a> there is
a new paste command that allows to automatically add imports when copying
between files. This command is enabled by default in Scala files within VS Code
and requires the origin to be filed when adding in other editors.</p>
<p><img decoding="async" loading="lazy" src="https://raw.githubusercontent.com/scalameta/gh-pages-images/main/metals/2025-10-16-osmium/on-paste.gif" alt="paste-import" class="img_ev3q"></p>
<p>The change will currently only work for Scala 2, some further work is needed to
add support for Scala 3.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="testing-add-cursor-based-target-discovery-for-running-closest-main-or-test">Testing: Add cursor-based target discovery for running closest main or test<a href="http://scalameta.org/metals/blog/2025/10/16/osmium#testing-add-cursor-based-target-discovery-for-running-closest-main-or-test" class="hash-link" aria-label="Direct link to Testing: Add cursor-based target discovery for running closest main or test" title="Direct link to Testing: Add cursor-based target discovery for running closest main or test" translate="no">​</a></h2>
<p>Another new code action, added by
<a href="https://github.com/warcholjakub" target="_blank" rel="noopener noreferrer" class="">warcholjakub</a>, is one that allows to run the
closest main or test to the cursor.</p>
<p>This new command is available in Visual Studio Code via <code>metals.run-closest</code> in
the command palette and can be assigned to a new shortcut.</p>
<p><img decoding="async" loading="lazy" src="https://raw.githubusercontent.com/scalameta/gh-pages-images/main/metals/2025-10-16-osmium/run-closest.gif" alt="run-closest" class="img_ev3q"></p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="testing-test-discovery-for-bazel">Testing: Test discovery for Bazel<a href="http://scalameta.org/metals/blog/2025/10/16/osmium#testing-test-discovery-for-bazel" class="hash-link" aria-label="Direct link to Testing: Test discovery for Bazel" title="Direct link to Testing: Test discovery for Bazel" translate="no">​</a></h2>
<p>Up until this release, discovering tests in your Bazel workspace was not
supported. This was because Bazel BSP server itself doesn't provide any
information about test suites as other build tools and servers are able to.</p>
<p>Metals will now use semanticdb to discover test suites and test cases for Bazel
only. This means you need to have semanticdb enabled in your Bazel workspace for
this to work.</p>
<p>Thanks to <a href="https://github.com/pielas" target="_blank" rel="noopener noreferrer" class="">pielas</a> for his great work!</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="code-actions-convert-infix-to-normal-apply">Code actions: Convert infix to normal apply<a href="http://scalameta.org/metals/blog/2025/10/16/osmium#code-actions-convert-infix-to-normal-apply" class="hash-link" aria-label="Direct link to Code actions: Convert infix to normal apply" title="Direct link to Code actions: Convert infix to normal apply" translate="no">​</a></h2>
<p>Thanks to <a href="https://github.com/yoosefi12" target="_blank" rel="noopener noreferrer" class="">yoosefi12</a> we now have a new code
action that allows to convert infix apply to normal apply.</p>
<p>This means that whenever you see an infix apply such as:</p>
<div class="language-scala codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#bfc7d5;--prism-background-color:#292d3e"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-scala codeBlock_bY9V thin-scrollbar" style="color:#bfc7d5;background-color:#292d3e"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#bfc7d5"><span class="token plain">mystring startsWith "hello"</span><br></div></code></pre></div></div>
<p>you can convert it to a normal apply by choosing the correct code action.</p>
<div class="language-scala codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#bfc7d5;--prism-background-color:#292d3e"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-scala codeBlock_bY9V thin-scrollbar" style="color:#bfc7d5;background-color:#292d3e"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#bfc7d5"><span class="token plain">mystring.startsWith("hello")</span><br></div></code></pre></div></div>
<p>This doesn't apply to infix apply that are symbolic operators, such as '+',
'*', etc. which are expected to be infix.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="code-actions-implement-convert-to-collect-code-action">Code actions: Implement <code>Convert to collect</code> code action<a href="http://scalameta.org/metals/blog/2025/10/16/osmium#code-actions-implement-convert-to-collect-code-action" class="hash-link" aria-label="Direct link to code-actions-implement-convert-to-collect-code-action" title="Direct link to code-actions-implement-convert-to-collect-code-action" translate="no">​</a></h2>
<p>Another new code action added is one that allows to convert filter and map
chains into collect statements.</p>
<p>For example with the following code:</p>
<div class="language-scala codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#bfc7d5;--prism-background-color:#292d3e"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-scala codeBlock_bY9V thin-scrollbar" style="color:#bfc7d5;background-color:#292d3e"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#bfc7d5"><span class="token plain">List(1, 2, 3, 4).filter(x =&gt; x &gt; 2).map(x =&gt; x * 2)</span><br></div></code></pre></div></div>
<p>you can convert it to a collect statement by invoking the code action.</p>
<div class="language-scala codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#bfc7d5;--prism-background-color:#292d3e"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-scala codeBlock_bY9V thin-scrollbar" style="color:#bfc7d5;background-color:#292d3e"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#bfc7d5"><span class="token plain">List(1, 2, 3, 4).collect {</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">  case x if x &gt; 2 =&gt; x * 2</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">}</span><br></div></code></pre></div></div>
<p>Thanks to <a href="https://github.com/scarf005" target="_blank" rel="noopener noreferrer" class="">scarf005</a> for working on this!</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="contributors">Contributors<a href="http://scalameta.org/metals/blog/2025/10/16/osmium#contributors" class="hash-link" aria-label="Direct link to Contributors" title="Direct link to Contributors" translate="no">​</a></h2>
<p>Big thanks to everybody who contributed to this release or reported an issue!</p>
<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#bfc7d5;--prism-background-color:#292d3e"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#bfc7d5;background-color:#292d3e"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#bfc7d5"><span class="token plain">$ git shortlog -sn --no-merges v1.6.2..v1.6.3</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">    54	Tomasz Godzik</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">    43	scalameta-bot</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">     6	Jakub Warchoł</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">     5	Mateusz Piękos</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">     2	Alec Theriault</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">     2	Kacper Korban</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">     2	Zieliński Patryk</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">     2	dependabot[bot]</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">     2	ormaniec</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">     1	Alexandre Archambault</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">     1	Ali Yoosefi</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">     1	Connor Taffe</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">     1	Jędrzej Rochala</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">     1	Konrad Gądek</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">     1	Matt Bovel</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">     1	Panov Ivan</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">     1	eugene yokota</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">     1	scarf</span><br></div></code></pre></div></div>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="merged-prs">Merged PRs<a href="http://scalameta.org/metals/blog/2025/10/16/osmium#merged-prs" class="hash-link" aria-label="Direct link to Merged PRs" title="Direct link to Merged PRs" translate="no">​</a></h2>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="v163-2025-10-16"><a href="https://github.com/scalameta/metals/tree/v1.6.3" target="_blank" rel="noopener noreferrer" class="">v1.6.3</a> (2025-10-16)<a href="http://scalameta.org/metals/blog/2025/10/16/osmium#v163-2025-10-16" class="hash-link" aria-label="Direct link to v163-2025-10-16" title="Direct link to v163-2025-10-16" translate="no">​</a></h2>
<p><a href="https://github.com/scalameta/metals/compare/v1.6.2...v1.6.3" target="_blank" rel="noopener noreferrer" class="">Full Changelog</a></p>
<p><strong>Merged pull requests:</strong></p>
<ul>
<li class="">improvement: Improve generating scalafix rules
<a href="https://github.com/scalameta/metals/pull/7898" target="_blank" rel="noopener noreferrer" class="">#7898</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">bugfix: Readd build tool when missing
<a href="https://github.com/scalameta/metals/pull/7897" target="_blank" rel="noopener noreferrer" class="">#7897</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">chore: Fix flakiness with ServerLivenessMonitorLspSuite
<a href="https://github.com/scalameta/metals/pull/7896" target="_blank" rel="noopener noreferrer" class="">#7896</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">improvement: Allow to run generated rules
<a href="https://github.com/scalameta/metals/pull/7894" target="_blank" rel="noopener noreferrer" class="">#7894</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">7824 convert infix apply
<a href="https://github.com/scalameta/metals/pull/7890" target="_blank" rel="noopener noreferrer" class="">#7890</a>
(<a href="https://github.com/yoosefi12" target="_blank" rel="noopener noreferrer" class="">yoosefi12</a>)</li>
<li class="">build(deps): Update flyway-core from 11.13.3 to 11.14.0
<a href="https://github.com/scalameta/metals/pull/7895" target="_blank" rel="noopener noreferrer" class="">#7895</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">bugfix: Fix docs cross suite on the next Scala 2.13
<a href="https://github.com/scalameta/metals/pull/7893" target="_blank" rel="noopener noreferrer" class="">#7893</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">improvement: Reset workspace should properly clean and restart build server
<a href="https://github.com/scalameta/metals/pull/7892" target="_blank" rel="noopener noreferrer" class="">#7892</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">Fixed MainClassNotFound or SemanticDbNotFound in case of executing "Run
without debugger" on clean build
<a href="https://github.com/scalameta/metals/pull/7889" target="_blank" rel="noopener noreferrer" class="">#7889</a>
(<a href="https://github.com/pielas" target="_blank" rel="noopener noreferrer" class="">pielas</a>)</li>
<li class="">Implemented test discovery for Bazel
<a href="https://github.com/scalameta/metals/pull/7769" target="_blank" rel="noopener noreferrer" class="">#7769</a>
(<a href="https://github.com/pielas" target="_blank" rel="noopener noreferrer" class="">pielas</a>)</li>
<li class="">build(deps): Update sbt-scalafix, scalafix-interfaces from 0.14.3 to 0.14.4
<a href="https://github.com/scalameta/metals/pull/7886" target="_blank" rel="noopener noreferrer" class="">#7886</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update flyway-core from 11.13.2 to 11.13.3
<a href="https://github.com/scalameta/metals/pull/7888" target="_blank" rel="noopener noreferrer" class="">#7888</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">improvement: Don't require a name when generating a scalafix rule
<a href="https://github.com/scalameta/metals/pull/7883" target="_blank" rel="noopener noreferrer" class="">#7883</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">docs: Remove gitpod as it's no longer available
<a href="https://github.com/scalameta/metals/pull/7884" target="_blank" rel="noopener noreferrer" class="">#7884</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">bugfix: Fix issue with not adding | in the last line
<a href="https://github.com/scalameta/metals/pull/7880" target="_blank" rel="noopener noreferrer" class="">#7880</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">bugfix: Fix issues with tests using sql.Date
<a href="https://github.com/scalameta/metals/pull/7879" target="_blank" rel="noopener noreferrer" class="">#7879</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">Fix: Wait for compilation before run/debug
<a href="https://github.com/scalameta/metals/pull/7877" target="_blank" rel="noopener noreferrer" class="">#7877</a>
(<a href="https://github.com/pielas" target="_blank" rel="noopener noreferrer" class="">pielas</a>)</li>
<li class="">Update Bloop and docs <a href="https://github.com/scalameta/metals/pull/7870" target="_blank" rel="noopener noreferrer" class="">#7870</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">bugfix: Fix issues with didPaste functionality
<a href="https://github.com/scalameta/metals/pull/7871" target="_blank" rel="noopener noreferrer" class="">#7871</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">build(deps): Update sbt-jmh from 0.4.7 to 0.4.8
<a href="https://github.com/scalameta/metals/pull/7876" target="_blank" rel="noopener noreferrer" class="">#7876</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update sbt, scripted-plugin from 1.11.6 to 1.11.7
<a href="https://github.com/scalameta/metals/pull/7875" target="_blank" rel="noopener noreferrer" class="">#7875</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update bloop-rifle from 2.0.15 to 2.0.16
<a href="https://github.com/scalameta/metals/pull/7874" target="_blank" rel="noopener noreferrer" class="">#7874</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">bugfix: Don't use bsp version as Bazel fallback version
<a href="https://github.com/scalameta/metals/pull/7817" target="_blank" rel="noopener noreferrer" class="">#7817</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">Closing labels <a href="https://github.com/scalameta/metals/pull/7815" target="_blank" rel="noopener noreferrer" class="">#7815</a>
(<a href="https://github.com/KacperFKorban" target="_blank" rel="noopener noreferrer" class="">KacperFKorban</a>)</li>
<li class="">Add RawPresentationCompiler interface
<a href="https://github.com/scalameta/metals/pull/7841" target="_blank" rel="noopener noreferrer" class="">#7841</a>
(<a href="https://github.com/rochala" target="_blank" rel="noopener noreferrer" class="">rochala</a>)</li>
<li class="">improvement: Add an ability to force resetting metals
<a href="https://github.com/scalameta/metals/pull/7838" target="_blank" rel="noopener noreferrer" class="">#7838</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">build(deps): Update coursier, ... from 2.1.25-M18 to 2.1.25-M19
<a href="https://github.com/scalameta/metals/pull/7868" target="_blank" rel="noopener noreferrer" class="">#7868</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update bloop-config from 2.3.2 to 2.3.3
<a href="https://github.com/scalameta/metals/pull/7865" target="_blank" rel="noopener noreferrer" class="">#7865</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">Improve file move refactoring: preserve import structure and use full package
names <a href="https://github.com/scalameta/metals/pull/7862" target="_blank" rel="noopener noreferrer" class="">#7862</a>
(<a href="https://github.com/pielas" target="_blank" rel="noopener noreferrer" class="">pielas</a>)</li>
<li class="">build(deps): Update bloop-rifle from 2.0.14 to 2.0.15
<a href="https://github.com/scalameta/metals/pull/7866" target="_blank" rel="noopener noreferrer" class="">#7866</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update mill-contrib-testng from 1.0.5 to 1.0.6
<a href="https://github.com/scalameta/metals/pull/7867" target="_blank" rel="noopener noreferrer" class="">#7867</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">bugfix: Fix mill tests <a href="https://github.com/scalameta/metals/pull/7863" target="_blank" rel="noopener noreferrer" class="">#7863</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">bugfix: Fix issues with Bloop being started instead of sbt server
<a href="https://github.com/scalameta/metals/pull/7864" target="_blank" rel="noopener noreferrer" class="">#7864</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">build(deps): bump actions/checkout from 4 to 5
<a href="https://github.com/scalameta/metals/pull/7849" target="_blank" rel="noopener noreferrer" class="">#7849</a>
(<a href="https://github.com/dependabot%5Bbot%5D" target="_blank" rel="noopener noreferrer" class="">dependabot[bot]</a>)</li>
<li class="">build(deps-dev): bump @types/node from 24.1.0 to 24.6.1 in /website
<a href="https://github.com/scalameta/metals/pull/7852" target="_blank" rel="noopener noreferrer" class="">#7852</a>
(<a href="https://github.com/dependabot%5Bbot%5D" target="_blank" rel="noopener noreferrer" class="">dependabot[bot]</a>)</li>
<li class="">chore: Gather all dependabot updates
<a href="https://github.com/scalameta/metals/pull/7861" target="_blank" rel="noopener noreferrer" class="">#7861</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">chore: Add support for Scala 2.13.17
<a href="https://github.com/scalameta/metals/pull/7846" target="_blank" rel="noopener noreferrer" class="">#7846</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">bugfix: Add missing ++ to changing Scala version
<a href="https://github.com/scalameta/metals/pull/7860" target="_blank" rel="noopener noreferrer" class="">#7860</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">bugfix: Force Scala version for mtags in a different place
<a href="https://github.com/scalameta/metals/pull/7859" target="_blank" rel="noopener noreferrer" class="">#7859</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">bugfix: Force Scala version when releasing mtags
<a href="https://github.com/scalameta/metals/pull/7858" target="_blank" rel="noopener noreferrer" class="">#7858</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">chore: Remove old mtags workflow and fix new
<a href="https://github.com/scalameta/metals/pull/7857" target="_blank" rel="noopener noreferrer" class="">#7857</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">chore: Update Java version in the mtags-release workflow
<a href="https://github.com/scalameta/metals/pull/7856" target="_blank" rel="noopener noreferrer" class="">#7856</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">chore: Add custom workflow for releasing Mtags
<a href="https://github.com/scalameta/metals/pull/7855" target="_blank" rel="noopener noreferrer" class="">#7855</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">deps: Update to sbt 2.0.0-RC6
<a href="https://github.com/scalameta/metals/pull/7843" target="_blank" rel="noopener noreferrer" class="">#7843</a>
(<a href="https://github.com/eed3si9n" target="_blank" rel="noopener noreferrer" class="">eed3si9n</a>)</li>
<li class="">bugfix: Don't remove diagnotics if a file is duplicated across targets
<a href="https://github.com/scalameta/metals/pull/7840" target="_blank" rel="noopener noreferrer" class="">#7840</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">improvement: Do not return the full formatting
<a href="https://github.com/scalameta/metals/pull/7760" target="_blank" rel="noopener noreferrer" class="">#7760</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">build(deps): Update flyway-core from 11.13.1 to 11.13.2
<a href="https://github.com/scalameta/metals/pull/7842" target="_blank" rel="noopener noreferrer" class="">#7842</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">fix: Move dead test to correct suite to correctly detect degradation
<a href="https://github.com/scalameta/metals/pull/7834" target="_blank" rel="noopener noreferrer" class="">#7834</a>
(<a href="https://github.com/ormaniec" target="_blank" rel="noopener noreferrer" class="">ormaniec</a>)</li>
<li class="">bugfix: Run javap properly when in source dependencies
<a href="https://github.com/scalameta/metals/pull/7829" target="_blank" rel="noopener noreferrer" class="">#7829</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">build(deps): Update h2 from 2.3.232 to 2.4.240
<a href="https://github.com/scalameta/metals/pull/7835" target="_blank" rel="noopener noreferrer" class="">#7835</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update giter8 from 0.17.0 to 0.18.0
<a href="https://github.com/scalameta/metals/pull/7837" target="_blank" rel="noopener noreferrer" class="">#7837</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">chore: Make sure that mtagsShared compile with JDK 8
<a href="https://github.com/scalameta/metals/pull/7833" target="_blank" rel="noopener noreferrer" class="">#7833</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">chore: Bump bloop gradle plugin to 1.6.4
<a href="https://github.com/scalameta/metals/pull/7832" target="_blank" rel="noopener noreferrer" class="">#7832</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">bugfix: Revert timeout, the default is 1 hour.
<a href="https://github.com/scalameta/metals/pull/7830" target="_blank" rel="noopener noreferrer" class="">#7830</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">bugfix: Add omitted tests to test groups
<a href="https://github.com/scalameta/metals/pull/7831" target="_blank" rel="noopener noreferrer" class="">#7831</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">chore: Update sbt 2 to 2.0.0-RC5
<a href="https://github.com/scalameta/metals/pull/7826" target="_blank" rel="noopener noreferrer" class="">#7826</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">docs: Remove no longer relevant mention
<a href="https://github.com/scalameta/metals/pull/7827" target="_blank" rel="noopener noreferrer" class="">#7827</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">chore: Update Bloop to 2.0.14
<a href="https://github.com/scalameta/metals/pull/7822" target="_blank" rel="noopener noreferrer" class="">#7822</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">improvement: Test and release using 2.0.0-RC4
<a href="https://github.com/scalameta/metals/pull/7716" target="_blank" rel="noopener noreferrer" class="">#7716</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">build(deps): Update scalameta, semanticdb-metap, ... from 4.13.9 to 4.13.10
<a href="https://github.com/scalameta/metals/pull/7820" target="_blank" rel="noopener noreferrer" class="">#7820</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update cli_3, scala-cli-bsp from 1.9.0 to 1.9.1
<a href="https://github.com/scalameta/metals/pull/7821" target="_blank" rel="noopener noreferrer" class="">#7821</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">fix: go to definition inside of SAM lambda
<a href="https://github.com/scalameta/metals/pull/7819" target="_blank" rel="noopener noreferrer" class="">#7819</a>
(<a href="https://github.com/harpocrates" target="_blank" rel="noopener noreferrer" class="">harpocrates</a>)</li>
<li class="">build(deps): Update munit from 1.1.1 to 1.2.0
<a href="https://github.com/scalameta/metals/pull/7814" target="_blank" rel="noopener noreferrer" class="">#7814</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">Revert "bugfix: Run close when stopping the presentation compiler"
<a href="https://github.com/scalameta/metals/pull/7818" target="_blank" rel="noopener noreferrer" class="">#7818</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">fix: filter out invalid <code>&lt;empty&gt;</code> package imports from quickfix actions
<a href="https://github.com/scalameta/metals/pull/7795" target="_blank" rel="noopener noreferrer" class="">#7795</a>
(<a href="https://github.com/warcholjakub" target="_blank" rel="noopener noreferrer" class="">warcholjakub</a>)</li>
<li class="">bugfix: Don't show InvalidSymbolException
<a href="https://github.com/scalameta/metals/pull/7809" target="_blank" rel="noopener noreferrer" class="">#7809</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">improvement: Retry self-type-in-lib test
<a href="https://github.com/scalameta/metals/pull/7808" target="_blank" rel="noopener noreferrer" class="">#7808</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">feat: add cursor-based target discovery for running closest main or test
<a href="https://github.com/scalameta/metals/pull/7718" target="_blank" rel="noopener noreferrer" class="">#7718</a>
(<a href="https://github.com/warcholjakub" target="_blank" rel="noopener noreferrer" class="">warcholjakub</a>)</li>
<li class="">build(deps): Update guava from 33.4.8-jre to 33.5.0-jre
<a href="https://github.com/scalameta/metals/pull/7810" target="_blank" rel="noopener noreferrer" class="">#7810</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update flyway-core from 11.12.0 to 11.13.1
<a href="https://github.com/scalameta/metals/pull/7813" target="_blank" rel="noopener noreferrer" class="">#7813</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update mill-contrib-testng from 1.0.4 to 1.0.5
<a href="https://github.com/scalameta/metals/pull/7811" target="_blank" rel="noopener noreferrer" class="">#7811</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">fix: Add correct indexing of external libraries
<a href="https://github.com/scalameta/metals/pull/7782" target="_blank" rel="noopener noreferrer" class="">#7782</a>
(<a href="https://github.com/ormaniec" target="_blank" rel="noopener noreferrer" class="">ormaniec</a>)</li>
<li class="">Add a "copy fqn" command
<a href="https://github.com/scalameta/metals/pull/7424" target="_blank" rel="noopener noreferrer" class="">#7424</a>
(<a href="https://github.com/KacperFKorban" target="_blank" rel="noopener noreferrer" class="">KacperFKorban</a>)</li>
<li class="">bugfix: Don't use timeout on MacOS, where it doesn't exist
<a href="https://github.com/scalameta/metals/pull/7807" target="_blank" rel="noopener noreferrer" class="">#7807</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">fix: override mtags-interfaces snapshot dependency for problematic Scala 3.x
versions <a href="https://github.com/scalameta/metals/pull/7794" target="_blank" rel="noopener noreferrer" class="">#7794</a>
(<a href="https://github.com/warcholjakub" target="_blank" rel="noopener noreferrer" class="">warcholjakub</a>)</li>
<li class="">fix: change workspace symbol search to include extension methods
<a href="https://github.com/scalameta/metals/pull/7792" target="_blank" rel="noopener noreferrer" class="">#7792</a>
(<a href="https://github.com/warcholjakub" target="_blank" rel="noopener noreferrer" class="">warcholjakub</a>)</li>
<li class="">build(deps): Update protobuf-java from 4.32.0 to 4.32.1
<a href="https://github.com/scalameta/metals/pull/7786" target="_blank" rel="noopener noreferrer" class="">#7786</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update ujson from 4.3.0 to 4.3.2
<a href="https://github.com/scalameta/metals/pull/7787" target="_blank" rel="noopener noreferrer" class="">#7787</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update mcp from 0.12.0 to 0.12.1
<a href="https://github.com/scalameta/metals/pull/7788" target="_blank" rel="noopener noreferrer" class="">#7788</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update scala3-library from 3.7.2 to 3.7.3
<a href="https://github.com/scalameta/metals/pull/7789" target="_blank" rel="noopener noreferrer" class="">#7789</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">feat: show organize imports failure as status bar notification
<a href="https://github.com/scalameta/metals/pull/7771" target="_blank" rel="noopener noreferrer" class="">#7771</a>
(<a href="https://github.com/warcholjakub" target="_blank" rel="noopener noreferrer" class="">warcholjakub</a>)</li>
<li class="">build(deps): Update sbt, scripted-plugin from 1.11.5 to 1.11.6
<a href="https://github.com/scalameta/metals/pull/7779" target="_blank" rel="noopener noreferrer" class="">#7779</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update xnio-nio from 3.8.16.Final to 3.8.17.Final
<a href="https://github.com/scalameta/metals/pull/7778" target="_blank" rel="noopener noreferrer" class="">#7778</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update mcp from 0.11.3 to 0.12.0
<a href="https://github.com/scalameta/metals/pull/7773" target="_blank" rel="noopener noreferrer" class="">#7773</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update flyway-core from 11.11.2 to 11.12.0
<a href="https://github.com/scalameta/metals/pull/7774" target="_blank" rel="noopener noreferrer" class="">#7774</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update github-api from 1.329 to 1.330
<a href="https://github.com/scalameta/metals/pull/7775" target="_blank" rel="noopener noreferrer" class="">#7775</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update cli_3, scala-cli-bsp from 1.8.5 to 1.9.0
<a href="https://github.com/scalameta/metals/pull/7776" target="_blank" rel="noopener noreferrer" class="">#7776</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update ujson from 4.2.1 to 4.3.0
<a href="https://github.com/scalameta/metals/pull/7772" target="_blank" rel="noopener noreferrer" class="">#7772</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">Add "Show Logs" button for partial import failure
<a href="https://github.com/scalameta/metals/pull/7755" target="_blank" rel="noopener noreferrer" class="">#7755</a>
(<a href="https://github.com/mbovel" target="_blank" rel="noopener noreferrer" class="">mbovel</a>)</li>
<li class="">improvement: Retry downloading with fallbacks for scalafmt
<a href="https://github.com/scalameta/metals/pull/7762" target="_blank" rel="noopener noreferrer" class="">#7762</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">feat: implement <code>Convert to collect</code> code action
<a href="https://github.com/scalameta/metals/pull/6969" target="_blank" rel="noopener noreferrer" class="">#6969</a>
(<a href="https://github.com/scarf005" target="_blank" rel="noopener noreferrer" class="">scarf005</a>)</li>
<li class="">build(deps): Update mill-contrib-testng from 1.0.3 to 1.0.4
<a href="https://github.com/scalameta/metals/pull/7757" target="_blank" rel="noopener noreferrer" class="">#7757</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">improvement: Fix issues with Bazel 8
<a href="https://github.com/scalameta/metals/pull/7753" target="_blank" rel="noopener noreferrer" class="">#7753</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">bugfix: Support experimental imports
<a href="https://github.com/scalameta/metals/pull/7734" target="_blank" rel="noopener noreferrer" class="">#7734</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">build(deps): Update jackson-databind from 2.19.2 to 2.20.0
<a href="https://github.com/scalameta/metals/pull/7756" target="_blank" rel="noopener noreferrer" class="">#7756</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update mcp from 0.11.2 to 0.11.3
<a href="https://github.com/scalameta/metals/pull/7758" target="_blank" rel="noopener noreferrer" class="">#7758</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update coursier, ... from 2.1.25-M17 to 2.1.25-M18
<a href="https://github.com/scalameta/metals/pull/7740" target="_blank" rel="noopener noreferrer" class="">#7740</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">improvement: Test metals on latest stable java version
<a href="https://github.com/scalameta/metals/pull/7748" target="_blank" rel="noopener noreferrer" class="">#7748</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">Fix typed-glob-search to handle JSON string symbolType parameter with fallback
<a href="https://github.com/scalameta/metals/pull/7738" target="_blank" rel="noopener noreferrer" class="">#7738</a>
(<a href="https://github.com/zielinsky" target="_blank" rel="noopener noreferrer" class="">zielinsky</a>)</li>
<li class="">bugfix(Scala-2): add arg name to pattern match type hint
<a href="https://github.com/scalameta/metals/pull/7652" target="_blank" rel="noopener noreferrer" class="">#7652</a>
(<a href="https://github.com/kgadek" target="_blank" rel="noopener noreferrer" class="">kgadek</a>)</li>
<li class="">fix(hover): allow hover on whitespace inside backtick identifiers
<a href="https://github.com/scalameta/metals/pull/7739" target="_blank" rel="noopener noreferrer" class="">#7739</a>
(<a href="https://github.com/warcholjakub" target="_blank" rel="noopener noreferrer" class="">warcholjakub</a>)</li>
<li class="">Java PC: hide non‑static members in class context (Fixes #6356)
<a href="https://github.com/scalameta/metals/pull/7743" target="_blank" rel="noopener noreferrer" class="">#7743</a>
(<a href="https://github.com/VankaTaganai" target="_blank" rel="noopener noreferrer" class="">VankaTaganai</a>)</li>
<li class="">build(deps): Update semanticdb-java from 0.11.0 to 0.11.1
<a href="https://github.com/scalameta/metals/pull/7744" target="_blank" rel="noopener noreferrer" class="">#7744</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">Fixed sbt reload by excluding conflicting unroll-annotation dependencies
<a href="https://github.com/scalameta/metals/pull/7747" target="_blank" rel="noopener noreferrer" class="">#7747</a>
(<a href="https://github.com/pielas" target="_blank" rel="noopener noreferrer" class="">pielas</a>)</li>
<li class="">build(deps): Update sbt, scripted-plugin from 1.11.4 to 1.11.5
<a href="https://github.com/scalameta/metals/pull/7746" target="_blank" rel="noopener noreferrer" class="">#7746</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update flyway-core from 11.11.1 to 11.11.2
<a href="https://github.com/scalameta/metals/pull/7741" target="_blank" rel="noopener noreferrer" class="">#7741</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update jsoup from 1.21.1 to 1.21.2
<a href="https://github.com/scalameta/metals/pull/7745" target="_blank" rel="noopener noreferrer" class="">#7745</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">Update coursier to 2.1.25-M17 and coursier-interface to 1.0.29-M2
<a href="https://github.com/scalameta/metals/pull/7736" target="_blank" rel="noopener noreferrer" class="">#7736</a>
(<a href="https://github.com/alexarchambault" target="_blank" rel="noopener noreferrer" class="">alexarchambault</a>)</li>
<li class="">bugfix: Don't show success as error when running the rule
<a href="https://github.com/scalameta/metals/pull/7731" target="_blank" rel="noopener noreferrer" class="">#7731</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">feature: Add MCP tool to generate and run scalafix rules
<a href="https://github.com/scalameta/metals/pull/7664" target="_blank" rel="noopener noreferrer" class="">#7664</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">build(deps): Update sbt-ci-release from 1.11.1 to 1.11.2
<a href="https://github.com/scalameta/metals/pull/7729" target="_blank" rel="noopener noreferrer" class="">#7729</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">feat: fetch <code>test-agent</code> in <code>DownloadDependencies</code>
<a href="https://github.com/scalameta/metals/pull/7728" target="_blank" rel="noopener noreferrer" class="">#7728</a>
(<a href="https://github.com/harpocrates" target="_blank" rel="noopener noreferrer" class="">harpocrates</a>)</li>
<li class="">bugfix: Make list recursive skip failing files
<a href="https://github.com/scalameta/metals/pull/7701" target="_blank" rel="noopener noreferrer" class="">#7701</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">improvement: Improve descriptions for discoverability.
<a href="https://github.com/scalameta/metals/pull/7727" target="_blank" rel="noopener noreferrer" class="">#7727</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">bugfix: Set Bloop plugin version to 2.0.10 for pre 1.9.0
<a href="https://github.com/scalameta/metals/pull/7725" target="_blank" rel="noopener noreferrer" class="">#7725</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">improvement: Retry flaky implementation suite
<a href="https://github.com/scalameta/metals/pull/7719" target="_blank" rel="noopener noreferrer" class="">#7719</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">build(deps): Update protobuf-java from 4.31.1 to 4.32.0
<a href="https://github.com/scalameta/metals/pull/7722" target="_blank" rel="noopener noreferrer" class="">#7722</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update flyway-core from 11.11.0 to 11.11.1
<a href="https://github.com/scalameta/metals/pull/7724" target="_blank" rel="noopener noreferrer" class="">#7724</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update mcp from 0.11.1 to 0.11.2
<a href="https://github.com/scalameta/metals/pull/7723" target="_blank" rel="noopener noreferrer" class="">#7723</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">Fix manual signature help triggering for superclass constructors
<a href="https://github.com/scalameta/metals/pull/7714" target="_blank" rel="noopener noreferrer" class="">#7714</a>
(<a href="https://github.com/zielinsky" target="_blank" rel="noopener noreferrer" class="">zielinsky</a>)</li>
<li class="">improvement: Index toplevel members from dependencies
<a href="https://github.com/scalameta/metals/pull/7710" target="_blank" rel="noopener noreferrer" class="">#7710</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">bugfix: Fix issue with flaky CI tests again
<a href="https://github.com/scalameta/metals/pull/7717" target="_blank" rel="noopener noreferrer" class="">#7717</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">improvement: Also show warnings when using mcp compile tools
<a href="https://github.com/scalameta/metals/pull/7709" target="_blank" rel="noopener noreferrer" class="">#7709</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">build(deps): Update flyway-core from 11.10.5 to 11.11.0
<a href="https://github.com/scalameta/metals/pull/7715" target="_blank" rel="noopener noreferrer" class="">#7715</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">improvement: Fix issues with races on CI
<a href="https://github.com/scalameta/metals/pull/7713" target="_blank" rel="noopener noreferrer" class="">#7713</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">Add <code>resolve-stacktrace-location</code> LSP command
<a href="https://github.com/scalameta/metals/pull/7711" target="_blank" rel="noopener noreferrer" class="">#7711</a>
(<a href="https://github.com/cptaffe" target="_blank" rel="noopener noreferrer" class="">cptaffe</a>)</li>
<li class="">docs: Add release notes for 1.6.2
<a href="https://github.com/scalameta/metals/pull/7712" target="_blank" rel="noopener noreferrer" class="">#7712</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
</ul>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Metals v1.6.2 - Osmium]]></title>
            <link>http://scalameta.org/metals/blog/2025/08/09/osmium</link>
            <guid>http://scalameta.org/metals/blog/2025/08/09/osmium</guid>
            <pubDate>Sat, 09 Aug 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[We're happy to announce the release of Metals v1.6.2, which is mainly a bugfix release.]]></description>
            <content:encoded><![CDATA[<p>We're happy to announce the release of Metals v1.6.2, which is mainly a bugfix release.</p>
<table><tbody><tr><td>Commits since last release</td><td align="center">28</td></tr><tr><td>Merged PRs</td><td align="center">28</td></tr><tr><td>Contributors</td><td align="center">5</td></tr><tr><td>Closed issues</td><td align="center">1</td></tr><tr><td>New features</td><td align="center">0</td></tr></tbody></table>
<p>For full details: <a href="https://github.com/scalameta/metals/milestone/81?closed=1" target="_blank" rel="noopener noreferrer" class="">https://github.com/scalameta/metals/milestone/81?closed=1</a></p>
<p>Metals is a language server for Scala that works with VS Code, Vim, Emacs, Zed,
Helix and Sublime Text. Metals is developed at the
<a href="https://scala.epfl.ch/" target="_blank" rel="noopener noreferrer" class="">Scala Center</a> and <a href="https://virtuslab.com/" target="_blank" rel="noopener noreferrer" class="">VirtusLab</a>
with the help from contributors from the community.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="tldr">TL;DR<a href="http://scalameta.org/metals/blog/2025/08/09/osmium#tldr" class="hash-link" aria-label="Direct link to TL;DR" title="Direct link to TL;DR" translate="no">​</a></h2>
<p>Check out <a href="https://scalameta.org/metals/" target="_blank" rel="noopener noreferrer" class="">https://scalameta.org/metals/</a>, and
give Metals a try!</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="miscellaneous">Miscellaneous<a href="http://scalameta.org/metals/blog/2025/08/09/osmium#miscellaneous" class="hash-link" aria-label="Direct link to Miscellaneous" title="Direct link to Miscellaneous" translate="no">​</a></h2>
<ul>
<li class="">improvement: Also include SQL interpolation <a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a></li>
<li class="">bugfix: Remove jrtClassPathCAches to try fix -release issues <a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a></li>
<li class="">improvement: Enable Scala3Future dialect support (capture checking, better modularity) <a href="https://github.com/Odomontois" target="_blank" rel="noopener noreferrer" class="">Odomontois</a></li>
<li class="">bugfix: Don't show error message when scalafix was invoked from quickfix <a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a></li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="contributors">Contributors<a href="http://scalameta.org/metals/blog/2025/08/09/osmium#contributors" class="hash-link" aria-label="Direct link to Contributors" title="Direct link to Contributors" translate="no">​</a></h2>
<p>Big thanks to everybody who contributed to this release or reported an issue!</p>
<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#bfc7d5;--prism-background-color:#292d3e"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#bfc7d5;background-color:#292d3e"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#bfc7d5"><span class="token plain">$ git shortlog -sn --no-merges v1.6.1..v1.6.2</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">    12	Tomasz Godzik</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">    11	scalameta-bot</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">     3	dependabot[bot]</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">     1	Odomontois</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">     1	Zieliński Patryk</span><br></div></code></pre></div></div>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="merged-prs">Merged PRs<a href="http://scalameta.org/metals/blog/2025/08/09/osmium#merged-prs" class="hash-link" aria-label="Direct link to Merged PRs" title="Direct link to Merged PRs" translate="no">​</a></h2>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="v162-2025-08-09"><a href="https://github.com/scalameta/metals/tree/v1.6.2" target="_blank" rel="noopener noreferrer" class="">v1.6.2</a> (2025-08-09)<a href="http://scalameta.org/metals/blog/2025/08/09/osmium#v162-2025-08-09" class="hash-link" aria-label="Direct link to v162-2025-08-09" title="Direct link to v162-2025-08-09" translate="no">​</a></h2>
<p><a href="https://github.com/scalameta/metals/compare/v1.6.1...v1.6.2" target="_blank" rel="noopener noreferrer" class="">Full Changelog</a></p>
<p><strong>Merged pull requests:</strong></p>
<ul>
<li class="">bugfix: Don't show error message when scalafix was invoked from quickfix
<a href="https://github.com/scalameta/metals/pull/7708" target="_blank" rel="noopener noreferrer" class="">#7708</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">build(deps): Update sbt, scripted-plugin from 1.11.3 to 1.11.4
<a href="https://github.com/scalameta/metals/pull/7705" target="_blank" rel="noopener noreferrer" class="">#7705</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update cli_3, scala-cli-bsp from 1.8.4 to 1.8.5
<a href="https://github.com/scalameta/metals/pull/7706" target="_blank" rel="noopener noreferrer" class="">#7706</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update scala-debug-adapter from 4.2.7 to 4.2.8
<a href="https://github.com/scalameta/metals/pull/7702" target="_blank" rel="noopener noreferrer" class="">#7702</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update mill-contrib-testng from 1.0.2 to 1.0.3
<a href="https://github.com/scalameta/metals/pull/7703" target="_blank" rel="noopener noreferrer" class="">#7703</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update mcp from 0.11.0 to 0.11.1
<a href="https://github.com/scalameta/metals/pull/7704" target="_blank" rel="noopener noreferrer" class="">#7704</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">Enable Scala3Future dialect support (capture checking, better modularity)
<a href="https://github.com/scalameta/metals/pull/7692" target="_blank" rel="noopener noreferrer" class="">#7692</a>
(<a href="https://github.com/Odomontois" target="_blank" rel="noopener noreferrer" class="">Odomontois</a>)</li>
<li class="">bugfix: Add snasphot repository for Scala 3.4.x
<a href="https://github.com/scalameta/metals/pull/7695" target="_blank" rel="noopener noreferrer" class="">#7695</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">update: Bump Bazel BSP to 4.0.1
<a href="https://github.com/scalameta/metals/pull/7698" target="_blank" rel="noopener noreferrer" class="">#7698</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">bugfix: Remove jrtClassPathCAches to try fix -release issues
<a href="https://github.com/scalameta/metals/pull/7697" target="_blank" rel="noopener noreferrer" class="">#7697</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">bugfix: Update Bloop to 2.0.13
<a href="https://github.com/scalameta/metals/pull/7696" target="_blank" rel="noopener noreferrer" class="">#7696</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">build(deps): Update mcp from 0.10.0 to 0.11.0
<a href="https://github.com/scalameta/metals/pull/7679" target="_blank" rel="noopener noreferrer" class="">#7679</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">chore: Fix issues if Bloop start timeouts
<a href="https://github.com/scalameta/metals/pull/7694" target="_blank" rel="noopener noreferrer" class="">#7694</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">build(deps): Update flyway-core from 11.10.4 to 11.10.5
<a href="https://github.com/scalameta/metals/pull/7680" target="_blank" rel="noopener noreferrer" class="">#7680</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">bugfix: Fix currently failing tests for querying versions supported by a snapshot
<a href="https://github.com/scalameta/metals/pull/7693" target="_blank" rel="noopener noreferrer" class="">#7693</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">build(deps): bump react from 19.1.0 to 19.1.1 in /website
<a href="https://github.com/scalameta/metals/pull/7682" target="_blank" rel="noopener noreferrer" class="">#7682</a>
(<a href="https://github.com/dependabot%5Bbot%5D" target="_blank" rel="noopener noreferrer" class="">dependabot[bot]</a>)</li>
<li class="">build(deps): bump @docusaurus/plugin-client-redirects from 3.8.0 to 3.8.1 in /website
<a href="https://github.com/scalameta/metals/pull/7683" target="_blank" rel="noopener noreferrer" class="">#7683</a>
(<a href="https://github.com/dependabot%5Bbot%5D" target="_blank" rel="noopener noreferrer" class="">dependabot[bot]</a>)</li>
<li class="">improvement: Also include SQL interpolation
<a href="https://github.com/scalameta/metals/pull/7690" target="_blank" rel="noopener noreferrer" class="">#7690</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">build(deps-dev): bump @types/node from 24.0.8 to 24.1.0 in /website
<a href="https://github.com/scalameta/metals/pull/7684" target="_blank" rel="noopener noreferrer" class="">#7684</a>
(<a href="https://github.com/dependabot%5Bbot%5D" target="_blank" rel="noopener noreferrer" class="">dependabot[bot]</a>)</li>
<li class="">build(deps): Update os-lib from 0.11.4 to 0.11.5
<a href="https://github.com/scalameta/metals/pull/7678" target="_blank" rel="noopener noreferrer" class="">#7678</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update scalameta, semanticdb-metap, ... from 4.13.8 to 4.13.9
<a href="https://github.com/scalameta/metals/pull/7689" target="_blank" rel="noopener noreferrer" class="">#7689</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">fix: change workspace information format when using 'metals.open-new-github-issue' (#7669)
<a href="https://github.com/scalameta/metals/pull/7688" target="_blank" rel="noopener noreferrer" class="">#7688</a>
(<a href="https://github.com/zielinsky" target="_blank" rel="noopener noreferrer" class="">zielinsky</a>)</li>
<li class="">chore: Remove no longer used snapshots to avoid timeouts
<a href="https://github.com/scalameta/metals/pull/7686" target="_blank" rel="noopener noreferrer" class="">#7686</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">docs: Add note about x-ray mode
<a href="https://github.com/scalameta/metals/pull/7687" target="_blank" rel="noopener noreferrer" class="">#7687</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">build(deps): Update mill-contrib-testng from 1.0.1 to 1.0.2
<a href="https://github.com/scalameta/metals/pull/7677" target="_blank" rel="noopener noreferrer" class="">#7677</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update github-api from 1.327 to 1.329
<a href="https://github.com/scalameta/metals/pull/7681" target="_blank" rel="noopener noreferrer" class="">#7681</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">chore: Remove no longer needed workaround
<a href="https://github.com/scalameta/metals/pull/7676" target="_blank" rel="noopener noreferrer" class="">#7676</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">chore: [skip-ci] Add release notes for Metals 1.6.1
<a href="https://github.com/scalameta/metals/pull/7670" target="_blank" rel="noopener noreferrer" class="">#7670</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
</ul>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Metals v1.6.1 - Osmium]]></title>
            <link>http://scalameta.org/metals/blog/2025/07/31/osmium</link>
            <guid>http://scalameta.org/metals/blog/2025/07/31/osmium</guid>
            <pubDate>Thu, 31 Jul 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[We're happy to announce the release of Metals v1.6.1, which further improves MCP support as well as continues to improve the overall stability of using Metals.]]></description>
            <content:encoded><![CDATA[<p>We're happy to announce the release of Metals v1.6.1, which further improves MCP support as well as continues to improve the overall stability of using Metals.</p>
<table><tbody><tr><td>Commits since last release</td><td align="center">91</td></tr><tr><td>Merged PRs</td><td align="center">87</td></tr><tr><td>Contributors</td><td align="center">17</td></tr><tr><td>Closed issues</td><td align="center">27</td></tr><tr><td>New features</td><td align="center">5</td></tr></tbody></table>
<p>For full details: <a href="https://github.com/scalameta/metals/milestone/80?closed=1" target="_blank" rel="noopener noreferrer" class="">https://github.com/scalameta/metals/milestone/80?closed=1</a></p>
<p>Metals is a language server for Scala that works with VS Code, Vim, Emacs, Zed,
Helix and Sublime Text. Metals is developed at the
<a href="https://scala.epfl.ch/" target="_blank" rel="noopener noreferrer" class="">Scala Center</a> and <a href="https://virtuslab.com/" target="_blank" rel="noopener noreferrer" class="">VirtusLab</a>
with the help from contributors from the community.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="tldr">TL;DR<a href="http://scalameta.org/metals/blog/2025/07/31/osmium#tldr" class="hash-link" aria-label="Direct link to TL;DR" title="Direct link to TL;DR" translate="no">​</a></h2>
<p>Check out <a href="https://scalameta.org/metals/" target="_blank" rel="noopener noreferrer" class="">https://scalameta.org/metals/</a>, and
give Metals a try!</p>
<ul>
<li class=""><a href="http://scalameta.org/metals/blog/2025/07/31/osmium#sql-highlighting" class="">SQL highlighting</a></li>
<li class=""><a href="http://scalameta.org/metals/blog/2025/07/31/osmium#model-context-protocol-improvements" class="">Model Context Protocol Improvements</a></li>
<li class=""><a href="http://scalameta.org/metals/blog/2025/07/31/osmium#updates-to-fuzzy-matcher-logic" class="">Updates to fuzzy matcher logic</a></li>
<li class=""><a href="http://scalameta.org/metals/blog/2025/07/31/osmium#new-x-ray-inlay-hints" class="">New X-ray inlay hints</a></li>
<li class=""><a href="http://scalameta.org/metals/blog/2025/07/31/osmium#miscellaneous" class="">Miscellaneous</a></li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="sql-highlighting">SQL highlighting<a href="http://scalameta.org/metals/blog/2025/07/31/osmium#sql-highlighting" class="hash-link" aria-label="Direct link to SQL highlighting" title="Direct link to SQL highlighting" translate="no">​</a></h2>
<p>Thanks to <a href="https://github.com/Mensh1kov" target="_blank" rel="noopener noreferrer" class="">Mensh1kov</a> Metals now supports highlighting SQL queries in the editor when <code>sql</code> or <code>fr</code> interpolated strings are used.</p>
<p><img decoding="async" loading="lazy" src="https://raw.githubusercontent.com/scalameta/gh-pages-images/main/metals/2025-07-31-osmium/sql-highlighting.gif" alt="sql-highlighting" class="img_ev3q"></p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="model-context-protocol-improvements">Model Context Protocol Improvements<a href="http://scalameta.org/metals/blog/2025/07/31/osmium#model-context-protocol-improvements" class="hash-link" aria-label="Direct link to Model Context Protocol Improvements" title="Direct link to Model Context Protocol Improvements" translate="no">​</a></h2>
<p>The biggest number of improvements in this release are related to MCP support. This includes both new features and overall quality of life improvements.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="new-features">New features<a href="http://scalameta.org/metals/blog/2025/07/31/osmium#new-features" class="hash-link" aria-label="Direct link to New features" title="Direct link to New features" translate="no">​</a></h3>
<p>This release includes two new tools. The first one is a tool to list currently available modules, which helps agents to discover what modules are available to use (<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a>). The second one is a tool to format files, which helps agents to format files in a way that is consistent with the project's style (<a href="https://github.com/ckipp01" target="_blank" rel="noopener noreferrer" class="">ckipp01</a>).</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="quality-of-life-improvements">Quality of life improvements<a href="http://scalameta.org/metals/blog/2025/07/31/osmium#quality-of-life-improvements" class="hash-link" aria-label="Direct link to Quality of life improvements" title="Direct link to Quality of life improvements" translate="no">​</a></h3>
<p>Based on feedback from the community, a few quality of life improvements have been added to the MCP tools.</p>
<p>First of all, support for ZIO to the MCP test tool has been added by <a href="https://github.com/avshRepo" target="_blank" rel="noopener noreferrer" class="">avshRepo</a>. This allows LLM Agents to run specific tests in ZIO test support. Another improvement in this area is the ability to run specific tests cases added by <a href="https://github.com/ckipp01" target="_blank" rel="noopener noreferrer" class="">ckipp01</a>.</p>
<p>Another improvement is related to configuring the MCP server. We now save the MCP server configuration in the workspace settings, so that it's available to all tools that use MCP. This might be useful when connecting to MCP for example multiple LLM tools to use the same port without having to manually configure it.</p>
<p>Moreover, there have been some race conditions when starting Metals in Cursor when the MCP server was not yet ready. We now recreate the MCP server configuration after we are sure that the server is started.</p>
<p>Lastly, this release added support for claude by default again thanks to <a href="https://github.com/ckipp01" target="_blank" rel="noopener noreferrer" class="">ckipp01</a>.</p>
<p>For all of you asking to use Metals MCP standalone, there has been some community contributions to make it easier to use Metals MCP standalone. Checkout <a href="https://github.com/jpablo/metals-standalone-client" target="_blank" rel="noopener noreferrer" class="">metals-standalone-client</a> by <a href="https://github.com/jpablo" target="_blank" rel="noopener noreferrer" class="">jpablo</a> for more details.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="updates-to-fuzzy-matcher-logic">Updates to fuzzy matcher logic<a href="http://scalameta.org/metals/blog/2025/07/31/osmium#updates-to-fuzzy-matcher-logic" class="hash-link" aria-label="Direct link to Updates to fuzzy matcher logic" title="Direct link to Updates to fuzzy matcher logic" translate="no">​</a></h2>
<p>There has been a number of reports by users that the previous behaviour of fuzzy matching is too strict and caused some completions to be hidden when the case of the first letter is wrong. This has been fixed by <a href="https://github.com/ltrojanowski" target="_blank" rel="noopener noreferrer" class="">ltrojanowski</a> and the new behaviour is now more forgiving.</p>
<p>You can take a look at the <a href="https://github.com/scalameta/metals/pull/7570" target="_blank" rel="noopener noreferrer" class="">details</a> for more information as well as provide us some further feedback.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="new-x-ray-inlay-hints">New X-ray inlay hints<a href="http://scalameta.org/metals/blog/2025/07/31/osmium#new-x-ray-inlay-hints" class="hash-link" aria-label="Direct link to New X-ray inlay hints" title="Direct link to New X-ray inlay hints" translate="no">​</a></h2>
<p>Thanks to <a href="https://github.com/henryxparker" target="_blank" rel="noopener noreferrer" class="">henryxparker</a> Metals now supports so called X-ray inlay hints that you might know from IntelliJ. When those inlay hints are enabled you will see the type next to a longer chain of expressions. This is particularly useful when you are working with complex expressions and you want to understand exactly what transformations are taking place.</p>
<div class="language-scala codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#bfc7d5;--prism-background-color:#292d3e"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-scala codeBlock_bY9V thin-scrollbar" style="color:#bfc7d5;background-color:#292d3e"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#bfc7d5"><span class="token plain">val transformedList =</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">   List(1, 2, 3)</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">     .map(x =&gt; x * 2)/*     : List[Int]*/</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">     .map(x =&gt; x.toString)/*: List[String]*/</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">     .map(x =&gt; x.length)/*  : List[Int]*/</span><br></div></code></pre></div></div>
<p>Try it out by enabling the <code>metals.inlayHints.hintsXRayMode</code> setting. Let us know what you think!</p>
<p>The feature is currently available only for Scala 2, we will add support for Scala 3 in the near future, but it requires a new version of the Scala 3 compiler.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="miscellaneous">Miscellaneous<a href="http://scalameta.org/metals/blog/2025/07/31/osmium#miscellaneous" class="hash-link" aria-label="Direct link to Miscellaneous" title="Direct link to Miscellaneous" translate="no">​</a></h2>
<ul>
<li class="">bugfix: Run close when stopping the presentation compiler to avoid breaking interactive features in 2.13.x <a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a></li>
<li class="">improvement: Don't suggest object import in type position <a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a></li>
<li class="">bugfix: Import object when .type is used <a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a></li>
<li class="">improvement: Don't ask to restart bloop on Bloop version update <a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a></li>
<li class="">improvement: Auto detect build target in attach if not specified based on currently focused file <a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a></li>
<li class="">bugfix: Ignore implicit apply for signature help <a href="https://github.com/harpocrates" target="_blank" rel="noopener noreferrer" class="">harpocrates</a></li>
<li class="">bugfix: Fix completions at the start of the file <a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a></li>
<li class="">bugfix: Show signature help inside annotation trees <a href="https://github.com/harpocrates" target="_blank" rel="noopener noreferrer" class="">harpocrates</a></li>
<li class="">bugfix: Don't try to find definition for invalid symbols <a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a></li>
<li class="">improvement: Add an ability to trace mcp requests by creating <code>.metals/mcp.trace.json</code> file
<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a></li>
<li class="">feature: discover main classes in dependencies when running without debug
<a href="https://github.com/harpocrates" target="_blank" rel="noopener noreferrer" class="">harpocrates</a></li>
<li class="">bugfix: pass the environment variables from the BSP server when running tests <a href="https://github.com/arturaz" target="_blank" rel="noopener noreferrer" class="">arturaz</a></li>
<li class="">improvement: delete old compilation units from pc to reduce memory usage over long sessions <a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a></li>
<li class="">Add support for <code>scala-attach-remote</code> for build servers without in-built DAP support <a href="https://github.com/adrien-piquerez-da" target="_blank" rel="noopener noreferrer" class="">adrien-piquerez-da</a></li>
<li class="">bugfix: Fix completion before string literal <a href="https://github.com/ajafri2001" target="_blank" rel="noopener noreferrer" class="">ajafri2001</a></li>
<li class="">bugfix: Escape $ in shell command <a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a></li>
<li class="">feature: Use the new fork of Bazel BSP under org.virtuslab.bazel-bsp organization <a href="https://github.com/kc-vl" target="_blank" rel="noopener noreferrer" class="">kc-vl</a></li>
<li class="">feature: Allow users of ZIO test support to run specific suite or suiteAll <a href="https://github.com/avshRepo" target="_blank" rel="noopener noreferrer" class="">avshRepo</a></li>
<li class="">improvement: Add support for running specific tests in scalatest feature specs <a href="https://github.com/tmilner" target="_blank" rel="noopener noreferrer" class="">tmilner</a></li>
<li class="">bugfix: detect bzl workspace for both WORKSPACE and MODULE.bazel files <a href="https://github.com/kc-vl" target="_blank" rel="noopener noreferrer" class="">kc-vl</a></li>
<li class="">bugfix: Remove stale top level symbols from current run to avoid non existing intermediate symbols with multiple open files <a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a></li>
<li class="">chore: Don't restart Bloop when properties are uninitialized <a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a></li>
<li class="">bugfix: Fix missing signature help in superclass constructor <a href="https://github.com/zielinsky" target="_blank" rel="noopener noreferrer" class="">zielinsky</a></li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="contributors">Contributors<a href="http://scalameta.org/metals/blog/2025/07/31/osmium#contributors" class="hash-link" aria-label="Direct link to Contributors" title="Direct link to Contributors" translate="no">​</a></h2>
<p>Big thanks to everybody who contributed to this release or reported an issue!</p>
<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#bfc7d5;--prism-background-color:#292d3e"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#bfc7d5;background-color:#292d3e"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#bfc7d5"><span class="token plain">$ git shortlog -sn --no-merges v1.6.0..v1.6.1</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">    30	Tomasz Godzik</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">    23	scalameta-bot</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">    11	Katarzyna Marek</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">     4	Chris Kipp</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">     4	ajafri2001</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">     4	dependabot[bot]</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">     3	Alec Theriault</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">     2	Avshalom Orenstein</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">     2	kc-vl</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">     1	Adrien Piquerez</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">     1	Artūras Šlajus</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">     1	Henry Parker</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">     1	Lukasz Trojanowski</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">     1	Mensh1kov</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">     1	Tom Milner</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">     1	Zieliński Patryk</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">     1	scarf</span><br></div></code></pre></div></div>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="merged-prs">Merged PRs<a href="http://scalameta.org/metals/blog/2025/07/31/osmium#merged-prs" class="hash-link" aria-label="Direct link to Merged PRs" title="Direct link to Merged PRs" translate="no">​</a></h2>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="v161-2025-07-31"><a href="https://github.com/scalameta/metals/tree/v1.6.1" target="_blank" rel="noopener noreferrer" class="">v1.6.1</a> (2025-07-31)<a href="http://scalameta.org/metals/blog/2025/07/31/osmium#v161-2025-07-31" class="hash-link" aria-label="Direct link to v161-2025-07-31" title="Direct link to v161-2025-07-31" translate="no">​</a></h2>
<p><a href="https://github.com/scalameta/metals/compare/v1.6.0...v1.6.1" target="_blank" rel="noopener noreferrer" class="">Full Changelog</a></p>
<p><strong>Merged pull requests:</strong></p>
<ul>
<li class="">chore: Update bloop and scala-debug adapter
<a href="https://github.com/scalameta/metals/pull/7671" target="_blank" rel="noopener noreferrer" class="">#7671</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">bugfix: Fix worksheets when best effort flag is present
<a href="https://github.com/scalameta/metals/pull/7675" target="_blank" rel="noopener noreferrer" class="">#7675</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">This is a WAY better attempt at X-ray mode.
<a href="https://github.com/scalameta/metals/pull/7639" target="_blank" rel="noopener noreferrer" class="">#7639</a>
(<a href="https://github.com/henryxparker" target="_blank" rel="noopener noreferrer" class="">henryxparker</a>)</li>
<li class="">feat: add in <code>testName</code> to the test tool
<a href="https://github.com/scalameta/metals/pull/7665" target="_blank" rel="noopener noreferrer" class="">#7665</a>
(<a href="https://github.com/ckipp01" target="_blank" rel="noopener noreferrer" class="">ckipp01</a>)</li>
<li class="">feat: introduce a format-file MCP tool
<a href="https://github.com/scalameta/metals/pull/7659" target="_blank" rel="noopener noreferrer" class="">#7659</a>
(<a href="https://github.com/ckipp01" target="_blank" rel="noopener noreferrer" class="">ckipp01</a>)</li>
<li class="">Fix missing signature help in superclass constructor
<a href="https://github.com/scalameta/metals/pull/7655" target="_blank" rel="noopener noreferrer" class="">#7655</a>
(<a href="https://github.com/zielinsky" target="_blank" rel="noopener noreferrer" class="">zielinsky</a>)</li>
<li class="">chore: Don't restart Bloop when properties are uninitialized
<a href="https://github.com/scalameta/metals/pull/7661" target="_blank" rel="noopener noreferrer" class="">#7661</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">chore: [skip-ci] Remove outdated entires
<a href="https://github.com/scalameta/metals/pull/7663" target="_blank" rel="noopener noreferrer" class="">#7663</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">build(deps): Update flyway-core from 11.10.3 to 11.10.4
<a href="https://github.com/scalameta/metals/pull/7657" target="_blank" rel="noopener noreferrer" class="">#7657</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update mill-contrib-testng from 0.12.14 to 1.0.0
<a href="https://github.com/scalameta/metals/pull/7635" target="_blank" rel="noopener noreferrer" class="">#7635</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">bugfix: Use toAbsolutePathSafe in symbol search
<a href="https://github.com/scalameta/metals/pull/7654" target="_blank" rel="noopener noreferrer" class="">#7654</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">bugfix: Remove stale top level symbols from current run
<a href="https://github.com/scalameta/metals/pull/7631" target="_blank" rel="noopener noreferrer" class="">#7631</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">bugfix: Make sure ReportContext is initialized before indexes
<a href="https://github.com/scalameta/metals/pull/7651" target="_blank" rel="noopener noreferrer" class="">#7651</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">bugfix: Only run Mill Bloop tests in pre 1.0.0 Mill
<a href="https://github.com/scalameta/metals/pull/7650" target="_blank" rel="noopener noreferrer" class="">#7650</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">fix: detect bzl workspace for both WORKSPACE and MODULE.bazel files
<a href="https://github.com/scalameta/metals/pull/7640" target="_blank" rel="noopener noreferrer" class="">#7640</a>
(<a href="https://github.com/kc-vl" target="_blank" rel="noopener noreferrer" class="">kc-vl</a>)</li>
<li class="">build(deps): Update scribe, scribe-file, scribe-slf4j2 from 3.16.1 to 3.17.0
<a href="https://github.com/scalameta/metals/pull/7649" target="_blank" rel="noopener noreferrer" class="">#7649</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update jackson-databind from 2.19.1 to 2.19.2
<a href="https://github.com/scalameta/metals/pull/7648" target="_blank" rel="noopener noreferrer" class="">#7648</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update flyway-core from 11.10.2 to 11.10.3
<a href="https://github.com/scalameta/metals/pull/7646" target="_blank" rel="noopener noreferrer" class="">#7646</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update cli_3, scala-cli-bsp from 1.8.3 to 1.8.4
<a href="https://github.com/scalameta/metals/pull/7647" target="_blank" rel="noopener noreferrer" class="">#7647</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">fix(mcp): ensure you use serverEntry if it exists to read the port
<a href="https://github.com/scalameta/metals/pull/7645" target="_blank" rel="noopener noreferrer" class="">#7645</a>
(<a href="https://github.com/ckipp01" target="_blank" rel="noopener noreferrer" class="">ckipp01</a>)</li>
<li class="">build(deps): Update semanticdb-java from 0.10.4 to 0.11.0
<a href="https://github.com/scalameta/metals/pull/7636" target="_blank" rel="noopener noreferrer" class="">#7636</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update flyway-core from 11.10.1 to 11.10.2
<a href="https://github.com/scalameta/metals/pull/7637" target="_blank" rel="noopener noreferrer" class="">#7637</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update mdoc-interfaces from 2.7.1 to 2.7.2
<a href="https://github.com/scalameta/metals/pull/7638" target="_blank" rel="noopener noreferrer" class="">#7638</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">Add ZIO Support to MCP test tool
<a href="https://github.com/scalameta/metals/pull/7632" target="_blank" rel="noopener noreferrer" class="">#7632</a>
(<a href="https://github.com/avshRepo" target="_blank" rel="noopener noreferrer" class="">avshRepo</a>)</li>
<li class="">bugfix: Use the current version when publishing docs
<a href="https://github.com/scalameta/metals/pull/7633" target="_blank" rel="noopener noreferrer" class="">#7633</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">Improvement: Support for scalatest feature specs
<a href="https://github.com/scalameta/metals/pull/7512" target="_blank" rel="noopener noreferrer" class="">#7512</a>
(<a href="https://github.com/tmilner" target="_blank" rel="noopener noreferrer" class="">tmilner</a>)</li>
<li class="">Fix ZIO test support bug
<a href="https://github.com/scalameta/metals/pull/7624" target="_blank" rel="noopener noreferrer" class="">#7624</a>
(<a href="https://github.com/avshRepo" target="_blank" rel="noopener noreferrer" class="">avshRepo</a>)</li>
<li class="">bugfix: Only recreate mcp entry for cursor
<a href="https://github.com/scalameta/metals/pull/7628" target="_blank" rel="noopener noreferrer" class="">#7628</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">build(deps): Update sbt, scripted-plugin from 1.11.2 to 1.11.3
<a href="https://github.com/scalameta/metals/pull/7626" target="_blank" rel="noopener noreferrer" class="">#7626</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update directories, directories-jni from 0.1.3 to 0.1.4
<a href="https://github.com/scalameta/metals/pull/7625" target="_blank" rel="noopener noreferrer" class="">#7625</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">bugfix: Recreate mcp json configuration after restart
<a href="https://github.com/scalameta/metals/pull/7595" target="_blank" rel="noopener noreferrer" class="">#7595</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">feat: use org.virtuslab.bazel-bsp 4.0.0-M3
<a href="https://github.com/scalameta/metals/pull/7617" target="_blank" rel="noopener noreferrer" class="">#7617</a>
(<a href="https://github.com/kc-vl" target="_blank" rel="noopener noreferrer" class="">kc-vl</a>)</li>
<li class="">bugfix: Escape $ in shell command
<a href="https://github.com/scalameta/metals/pull/7619" target="_blank" rel="noopener noreferrer" class="">#7619</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">feat: add imports on Metals paste
<a href="https://github.com/scalameta/metals/pull/7542" target="_blank" rel="noopener noreferrer" class="">#7542</a>
(<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a>)</li>
<li class="">build(deps): Update flyway-core from 11.10.0 to 11.10.1
<a href="https://github.com/scalameta/metals/pull/7620" target="_blank" rel="noopener noreferrer" class="">#7620</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">bugfix: check if pos is within range
<a href="https://github.com/scalameta/metals/pull/7596" target="_blank" rel="noopener noreferrer" class="">#7596</a>
(<a href="https://github.com/ajafri2001" target="_blank" rel="noopener noreferrer" class="">ajafri2001</a>)</li>
<li class="">improvement: Don't throw when unable to get docstrings, just show empty
<a href="https://github.com/scalameta/metals/pull/7618" target="_blank" rel="noopener noreferrer" class="">#7618</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">refactor: add support for claude
<a href="https://github.com/scalameta/metals/pull/7602" target="_blank" rel="noopener noreferrer" class="">#7602</a>
(<a href="https://github.com/ckipp01" target="_blank" rel="noopener noreferrer" class="">ckipp01</a>)</li>
<li class="">build(deps): Update scalameta, semanticdb-metap, ... from 4.13.7 to 4.13.8
<a href="https://github.com/scalameta/metals/pull/7603" target="_blank" rel="noopener noreferrer" class="">#7603</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">bugfix: Try and fix flakiness for Mill tests
<a href="https://github.com/scalameta/metals/pull/7615" target="_blank" rel="noopener noreferrer" class="">#7615</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">bugfix: Fix signature help issue if .tpe is null
<a href="https://github.com/scalameta/metals/pull/7614" target="_blank" rel="noopener noreferrer" class="">#7614</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">improvement: Upload any reports directories found
<a href="https://github.com/scalameta/metals/pull/7592" target="_blank" rel="noopener noreferrer" class="">#7592</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">build(deps): bump @docusaurus/core from 3.8.0 to 3.8.1 in /website
<a href="https://github.com/scalameta/metals/pull/7612" target="_blank" rel="noopener noreferrer" class="">#7612</a>
(<a href="https://github.com/dependabot%5Bbot%5D" target="_blank" rel="noopener noreferrer" class="">dependabot[bot]</a>)</li>
<li class="">build(deps): bump react and react-dom in /website
<a href="https://github.com/scalameta/metals/pull/7613" target="_blank" rel="noopener noreferrer" class="">#7613</a>
(<a href="https://github.com/dependabot%5Bbot%5D" target="_blank" rel="noopener noreferrer" class="">dependabot[bot]</a>)</li>
<li class="">Add support for <code>scala-attach-remote</code> in <code>DebugProvider</code>
<a href="https://github.com/scalameta/metals/pull/7576" target="_blank" rel="noopener noreferrer" class="">#7576</a>
(<a href="https://github.com/adrien-piquerez-da" target="_blank" rel="noopener noreferrer" class="">adrien-piquerez-da</a>)</li>
<li class="">build(deps-dev): bump @types/node from 22.15.29 to 24.0.8 in /website
<a href="https://github.com/scalameta/metals/pull/7610" target="_blank" rel="noopener noreferrer" class="">#7610</a>
(<a href="https://github.com/dependabot%5Bbot%5D" target="_blank" rel="noopener noreferrer" class="">dependabot[bot]</a>)</li>
<li class="">fix: <code>require</code> in MCP schemas
<a href="https://github.com/scalameta/metals/pull/7604" target="_blank" rel="noopener noreferrer" class="">#7604</a>
(<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a>)</li>
<li class="">docs: update Metals contributing docs [skip ci]
<a href="https://github.com/scalameta/metals/pull/7297" target="_blank" rel="noopener noreferrer" class="">#7297</a>
(<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a>)</li>
<li class="">bugfix: Make sure we don't throw when reading workspace files
<a href="https://github.com/scalameta/metals/pull/7600" target="_blank" rel="noopener noreferrer" class="">#7600</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">improvement: delete old compilation units from pc
<a href="https://github.com/scalameta/metals/pull/7506" target="_blank" rel="noopener noreferrer" class="">#7506</a>
(<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a>)</li>
<li class="">build(deps): Update flyway-core from 11.9.2 to 11.10.0
<a href="https://github.com/scalameta/metals/pull/7597" target="_blank" rel="noopener noreferrer" class="">#7597</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update jsoup from 1.20.1 to 1.21.1
<a href="https://github.com/scalameta/metals/pull/7598" target="_blank" rel="noopener noreferrer" class="">#7598</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update cli_3, scala-cli-bsp from 1.8.1 to 1.8.3
<a href="https://github.com/scalameta/metals/pull/7599" target="_blank" rel="noopener noreferrer" class="">#7599</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">Update fuzzy matcher logic to allow for slightly more forgiving matching
<a href="https://github.com/scalameta/metals/pull/7570" target="_blank" rel="noopener noreferrer" class="">#7570</a>
(<a href="https://github.com/ltrojanowski" target="_blank" rel="noopener noreferrer" class="">ltrojanowski</a>)</li>
<li class="">fix: pass the environment variables from the BSP server when running tests
<a href="https://github.com/scalameta/metals/pull/7544" target="_blank" rel="noopener noreferrer" class="">#7544</a>
(<a href="https://github.com/arturaz" target="_blank" rel="noopener noreferrer" class="">arturaz</a>)</li>
<li class="">fix: correctly remove from previously compiled map
<a href="https://github.com/scalameta/metals/pull/7593" target="_blank" rel="noopener noreferrer" class="">#7593</a>
(<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a>)</li>
<li class="">bugfix: Don't connect to Bloop even if bsp json file is missing
<a href="https://github.com/scalameta/metals/pull/7566" target="_blank" rel="noopener noreferrer" class="">#7566</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">feat: mcp list modules
<a href="https://github.com/scalameta/metals/pull/7549" target="_blank" rel="noopener noreferrer" class="">#7549</a>
(<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a>)</li>
<li class="">feat: discover main classes in dependencies
<a href="https://github.com/scalameta/metals/pull/7590" target="_blank" rel="noopener noreferrer" class="">#7590</a>
(<a href="https://github.com/harpocrates" target="_blank" rel="noopener noreferrer" class="">harpocrates</a>)</li>
<li class="">improvement: Add an ability to trace mcp requests
<a href="https://github.com/scalameta/metals/pull/7584" target="_blank" rel="noopener noreferrer" class="">#7584</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">build(deps): Update flyway-core from 11.9.1 to 11.9.2
<a href="https://github.com/scalameta/metals/pull/7586" target="_blank" rel="noopener noreferrer" class="">#7586</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">bugfix: Don't try to find definition for invalid symbols
<a href="https://github.com/scalameta/metals/pull/7585" target="_blank" rel="noopener noreferrer" class="">#7585</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">chore: Add Scala version field to GitHub template
<a href="https://github.com/scalameta/metals/pull/7548" target="_blank" rel="noopener noreferrer" class="">#7548</a>
(<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a>)</li>
<li class="">fix: signature help inside annotation trees
<a href="https://github.com/scalameta/metals/pull/7579" target="_blank" rel="noopener noreferrer" class="">#7579</a>
(<a href="https://github.com/harpocrates" target="_blank" rel="noopener noreferrer" class="">harpocrates</a>)</li>
<li class="">bugfix: Fix completions at the start of the file
<a href="https://github.com/scalameta/metals/pull/7577" target="_blank" rel="noopener noreferrer" class="">#7577</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">fix: ignore implicit apply for signature help
<a href="https://github.com/scalameta/metals/pull/7578" target="_blank" rel="noopener noreferrer" class="">#7578</a>
(<a href="https://github.com/harpocrates" target="_blank" rel="noopener noreferrer" class="">harpocrates</a>)</li>
<li class="">improvement: Auto detect build target in attach if not specified
<a href="https://github.com/scalameta/metals/pull/7277" target="_blank" rel="noopener noreferrer" class="">#7277</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">bugfix: Don't create report if we aren't at a resolvable symbol
<a href="https://github.com/scalameta/metals/pull/7574" target="_blank" rel="noopener noreferrer" class="">#7574</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">build(deps): Update scalameta, semanticdb-metap, ... from 4.13.6 to 4.13.7
<a href="https://github.com/scalameta/metals/pull/7569" target="_blank" rel="noopener noreferrer" class="">#7569</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">bugfix: Run verbose compilation correctly
<a href="https://github.com/scalameta/metals/pull/7571" target="_blank" rel="noopener noreferrer" class="">#7571</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">build(deps): Update jackson-databind from 2.19.0 to 2.19.1
<a href="https://github.com/scalameta/metals/pull/7568" target="_blank" rel="noopener noreferrer" class="">#7568</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): bump brace-expansion from 1.1.11 to 1.1.12 in /website in the npm_and_yarn group
<a href="https://github.com/scalameta/metals/pull/7565" target="_blank" rel="noopener noreferrer" class="">#7565</a>
(<a href="https://github.com/dependabot%5Bbot%5D" target="_blank" rel="noopener noreferrer" class="">dependabot[bot]</a>)</li>
<li class="">improvement: Don't ask to restart bloop on update
<a href="https://github.com/scalameta/metals/pull/7552" target="_blank" rel="noopener noreferrer" class="">#7552</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">bugfix: Import object when .type is used
<a href="https://github.com/scalameta/metals/pull/7563" target="_blank" rel="noopener noreferrer" class="">#7563</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">improvement: Don't suggest object import in type position
<a href="https://github.com/scalameta/metals/pull/7561" target="_blank" rel="noopener noreferrer" class="">#7561</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">Add debug to fix flaky test
<a href="https://github.com/scalameta/metals/pull/7517" target="_blank" rel="noopener noreferrer" class="">#7517</a>
(<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a>)</li>
<li class="">bugfix: Fix issues on Windows
<a href="https://github.com/scalameta/metals/pull/7558" target="_blank" rel="noopener noreferrer" class="">#7558</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">build(deps): Update sbt, scripted-plugin from 1.11.1 to 1.11.2
<a href="https://github.com/scalameta/metals/pull/7557" target="_blank" rel="noopener noreferrer" class="">#7557</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">feat: sql highlighting
<a href="https://github.com/scalameta/metals/pull/7467" target="_blank" rel="noopener noreferrer" class="">#7467</a>
(<a href="https://github.com/Mensh1kov" target="_blank" rel="noopener noreferrer" class="">Mensh1kov</a>)</li>
<li class="">chore: Remove workaround that removed -release flag for 2.13
<a href="https://github.com/scalameta/metals/pull/7551" target="_blank" rel="noopener noreferrer" class="">#7551</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">chore: gitignore <code>.cursor</code>
<a href="https://github.com/scalameta/metals/pull/7553" target="_blank" rel="noopener noreferrer" class="">#7553</a>
(<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a>)</li>
<li class="">chore: fix typo
<a href="https://github.com/scalameta/metals/pull/7555" target="_blank" rel="noopener noreferrer" class="">#7555</a>
(<a href="https://github.com/scarf005" target="_blank" rel="noopener noreferrer" class="">scarf005</a>)</li>
<li class="">build(deps): Update flyway-core from 11.8.2 to 11.9.1
<a href="https://github.com/scalameta/metals/pull/7545" target="_blank" rel="noopener noreferrer" class="">#7545</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update cli_3, scala-cli-bsp from 1.8.0 to 1.8.1
<a href="https://github.com/scalameta/metals/pull/7547" target="_blank" rel="noopener noreferrer" class="">#7547</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update sbt, scripted-plugin from 1.11.0 to 1.11.1
<a href="https://github.com/scalameta/metals/pull/7546" target="_blank" rel="noopener noreferrer" class="">#7546</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">bugfix: Run close when stopping the presentation compiler
<a href="https://github.com/scalameta/metals/pull/7543" target="_blank" rel="noopener noreferrer" class="">#7543</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">docs: release notes for Metals 1.6.0
<a href="https://github.com/scalameta/metals/pull/7539" target="_blank" rel="noopener noreferrer" class="">#7539</a>
(<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a>)</li>
</ul>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Metals v1.6.0 - Osmium]]></title>
            <link>http://scalameta.org/metals/blog/2025/06/05/osmium</link>
            <guid>http://scalameta.org/metals/blog/2025/06/05/osmium</guid>
            <pubDate>Thu, 05 Jun 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[We're happy to announce the release of Metals v1.6.0, which, among other things, fixes a regression from the previous release and adds fixes and improvements to the recently added MCP support.]]></description>
            <content:encoded><![CDATA[<p>We're happy to announce the release of Metals v1.6.0, which, among other things, fixes a regression from the previous release and adds fixes and improvements to the recently added MCP support.</p>
<table><tbody><tr><td>Commits since last release</td><td align="center">51</td></tr><tr><td>Merged PRs</td><td align="center">50</td></tr><tr><td>Contributors</td><td align="center">8</td></tr><tr><td>Closed issues</td><td align="center">8</td></tr><tr><td>New features</td><td align="center">2</td></tr></tbody></table>
<p>For full details: <a href="https://github.com/scalameta/metals/milestone/79?closed=1" target="_blank" rel="noopener noreferrer" class="">https://github.com/scalameta/metals/milestone/79?closed=1</a></p>
<p>Metals is a language server for Scala that works with VS Code, Vim, Emacs, Zed,
Helix and Sublime Text. Metals is developed at the
<a href="https://scala.epfl.ch/" target="_blank" rel="noopener noreferrer" class="">Scala Center</a> and <a href="https://virtuslab.com/" target="_blank" rel="noopener noreferrer" class="">VirtusLab</a>
with the help from contributors from the community.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="tldr">TL;DR<a href="http://scalameta.org/metals/blog/2025/06/05/osmium#tldr" class="hash-link" aria-label="Direct link to TL;DR" title="Direct link to TL;DR" translate="no">​</a></h2>
<p>Check out <a href="https://scalameta.org/metals/" target="_blank" rel="noopener noreferrer" class="">https://scalameta.org/metals/</a>, and
give Metals a try!</p>
<ul>
<li class=""><a href="http://scalameta.org/metals/blog/2025/06/05/osmium#mcp-improvements-and-fixes" class="">MCP improvements and fixes</a></li>
<li class=""><a href="http://scalameta.org/metals/blog/2025/06/05/osmium#module-status-bar" class="">Module status bar</a></li>
<li class=""><a class="" href="http://scalameta.org/metals/blog/2025/06/05/fixed-blocking-user-requests">Fixed blocking user requests</a></li>
<li class=""><a class="" href="http://scalameta.org/metals/blog/2025/06/05/fixes-for-backticked-identifiers">Fixes for backticked identifiers</a></li>
<li class=""><a class="" href="http://scalameta.org/metals/blog/2025/06/05/changes-for-plugin-authors">Changes for plugin authors</a></li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="mcp-improvements-and-fixes">MCP improvements and fixes<a href="http://scalameta.org/metals/blog/2025/06/05/osmium#mcp-improvements-and-fixes" class="hash-link" aria-label="Direct link to MCP improvements and fixes" title="Direct link to MCP improvements and fixes" translate="no">​</a></h2>
<p>Based on user feedback since the previous release, we have fixed some issues related to MCP and added some new tools to further facilitate better agent interaction.</p>
<p>New tools:</p>
<ul>
<li class=""><code>compile-module</code> - compile a chosen build target, input is the module name, the same as visible in the Metals Doctor.</li>
<li class=""><code>find-dep</code> - completion tool for finding dependencies using Coursier added by <a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>.</li>
</ul>
<p>Improvements:</p>
<ul>
<li class="">MCP port is now saved and reused for the workspace, so it doesn't have to be repeatedly adjusted in other configurations.</li>
<li class="">Better responses in compile tool. Previously it would only return information about issues and an empty result otherwise; now we explicitly mark a successful compilation. Also for file compilation, if no error is found in the file, Metals will return errors from the whole module to provide possibly useful context.</li>
</ul>
<p>Fixes:</p>
<ul>
<li class=""><code>inspect</code> for Scala 3 would previously fail and return only the symbol name.</li>
<li class=""><code>verbose</code> flag marked as optional was previously required. Thanks, <a href="https://github.com/rtar" target="_blank" rel="noopener noreferrer" class="">rtar</a> for the fix.</li>
<li class="">Correctly handle package objects.</li>
<li class="">Fix generating MCP configuration for VSCode alternative distributions (VSCodium and insider versions).</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="module-status-bar">Module status bar<a href="http://scalameta.org/metals/blog/2025/06/05/osmium#module-status-bar" class="hash-link" aria-label="Direct link to Module status bar" title="Direct link to Module status bar" translate="no">​</a></h2>
<p>This release includes a new status bar, which should make some information about the module state more visible.</p>
<p>By default, the status shows the name of the module (build target) that the file in focus belongs to. If the file doesn't belong to any build target or due to an error the build target cannot be resolved, the status will show <code>no build target</code> error message. If the build target is found but there is a compile error in an upstream module, the status will show an error with the name of the upstream module. Finally, if the build target is found and there are no upstream errors, but there are new error reports created for the build target, the status will show a warning with the number of error reports.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="fixed-blocking-user-requests">Fixed blocking user requests<a href="http://scalameta.org/metals/blog/2025/06/05/osmium#fixed-blocking-user-requests" class="hash-link" aria-label="Direct link to Fixed blocking user requests" title="Direct link to Fixed blocking user requests" translate="no">​</a></h2>
<p>In the previous release, a bug was introduced where Metals would sometimes block waiting for the response for user notification. As a result, <code>Import build</code>, <code>Switch build server</code> and similar requests would fail to work. This issue was fixed in this release with an added timeout.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="fixes-for-backticked-identifiers">Fixes for backticked identifiers<a href="http://scalameta.org/metals/blog/2025/06/05/osmium#fixes-for-backticked-identifiers" class="hash-link" aria-label="Direct link to Fixes for backticked identifiers" title="Direct link to Fixes for backticked identifiers" translate="no">​</a></h2>
<p>This release brings a few fixes around handling backticked identifiers: selection range, location of insert-types code action, and symbol search. Thanks go to <a href="https://github.com/harpocrates" target="_blank" rel="noopener noreferrer" class="">harpocrates</a>, who added the needed special handling where it was missed.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="changes-for-plugin-authors">Changes for plugin authors<a href="http://scalameta.org/metals/blog/2025/06/05/osmium#changes-for-plugin-authors" class="hash-link" aria-label="Direct link to Changes for plugin authors" title="Direct link to Changes for plugin authors" translate="no">​</a></h2>
<p>This release adds a <code>module</code> <code>statusType</code> to <code>metals/status</code> request. Further, it modifies the <code>MetalsStatusParams</code> by adding a new <code>metalsCommand</code> field with the following scheme</p>
<div class="language-json codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#bfc7d5;--prism-background-color:#292d3e"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-json codeBlock_bY9V thin-scrollbar" style="color:#bfc7d5;background-color:#292d3e"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#bfc7d5"><span class="token plain">{</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">  "title": "string",</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">  "command": "string",</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">  "tooltip": "string | undefined",</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">  "arguments": "any[] | undefined"</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">}</span><br></div></code></pre></div></div>
<p><code>metalsCommand</code> field should take precedence over the previously existing <code>command</code> field.</p>
<p>Depending on if the client supports the <code>metals/status</code> extension, the field <code>moduleStatusBarProvider</code> in initialization options should be populated; it can contain one of the following values:</p>
<ul>
<li class=""><code>on</code> - if client supports <code>metals/status</code></li>
<li class=""><code>off</code> - if the client doesn't support <code>metals/status</code></li>
<li class=""><code>show-message</code> - if the client doesn't support <code>metals/status</code>, but would like the module status to be sent via show message request.</li>
<li class=""><code>log-message</code> - if the client doesn't support <code>metals/status</code>, but would like the module status logged.
If the field is empty, it defaults to <code>off</code>.</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="contributors">Contributors<a href="http://scalameta.org/metals/blog/2025/06/05/osmium#contributors" class="hash-link" aria-label="Direct link to Contributors" title="Direct link to Contributors" translate="no">​</a></h2>
<p>Big thanks to everybody who contributed to this release or reported an issue!</p>
<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#bfc7d5;--prism-background-color:#292d3e"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#bfc7d5;background-color:#292d3e"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#bfc7d5"><span class="token plain">$ git shortlog -sn --no-merges v1.5.3..v1.6.0</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">    18	Tomasz Godzik</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">    11	scalameta-bot</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">    14	Katarzyna Marek</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">     4	Alec Theriault</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">     2	dependabot[bot]</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">     1	Adam Warski</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">     1	Ruslans Tarasovs</span><br></div></code></pre></div></div>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="miscellaneous">Miscellaneous<a href="http://scalameta.org/metals/blog/2025/06/05/osmium#miscellaneous" class="hash-link" aria-label="Direct link to Miscellaneous" title="Direct link to Miscellaneous" translate="no">​</a></h2>
<ul>
<li class="">fix: indexer bug around type members <a href="https://github.com/harpocrates" target="_blank" rel="noopener noreferrer" class="">harpocrates</a></li>
<li class="">chore: added support for mill <code>0.12.14</code> and <code>1.0.0</code> <a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>.</li>
<li class="">fix: encode build target names to include in report file name <a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a></li>
<li class="">fix: use dependency modules for Bazel <a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a></li>
<li class="">improvement: Cache tokenization results when possible <a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a></li>
<li class="">feat: symbol search for backticked identifiers <a href="https://github.com/harpocrates" target="_blank" rel="noopener noreferrer" class="">harpocrates</a></li>
<li class="">bugfix: Calculate completion items eagerly for Scala 2 <a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a></li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="merged-prs">Merged PRs<a href="http://scalameta.org/metals/blog/2025/06/05/osmium#merged-prs" class="hash-link" aria-label="Direct link to Merged PRs" title="Direct link to Merged PRs" translate="no">​</a></h2>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="v160-2025-06-05"><a href="https://github.com/scalameta/metals/tree/v1.6.0" target="_blank" rel="noopener noreferrer" class="">v1.6.0</a> (2025-06-05)<a href="http://scalameta.org/metals/blog/2025/06/05/osmium#v160-2025-06-05" class="hash-link" aria-label="Direct link to v160-2025-06-05" title="Direct link to v160-2025-06-05" translate="no">​</a></h2>
<p><a href="https://github.com/scalameta/metals/compare/v1.5.3...v1.6.0" target="_blank" rel="noopener noreferrer" class="">Full Changelog</a></p>
<p><strong>Merged pull requests:</strong></p>
<ul>
<li class="">bugfix: Fix on type formatting getting wrong tokens
<a href="https://github.com/scalameta/metals/pull/7540" target="_blank" rel="noopener noreferrer" class="">#7540</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">bugfix: Fix functionality dependent on snapshots
<a href="https://github.com/scalameta/metals/pull/7524" target="_blank" rel="noopener noreferrer" class="">#7524</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">improvement: better compile mcp tool responses
<a href="https://github.com/scalameta/metals/pull/7484" target="_blank" rel="noopener noreferrer" class="">#7484</a>
(<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a>)</li>
<li class="">improvement: Return a better LLM compatible result from find-dep
<a href="https://github.com/scalameta/metals/pull/7518" target="_blank" rel="noopener noreferrer" class="">#7518</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">Update MetalsMcpServer.scala - correct typo
<a href="https://github.com/scalameta/metals/pull/7536" target="_blank" rel="noopener noreferrer" class="">#7536</a>
(<a href="https://github.com/adamw" target="_blank" rel="noopener noreferrer" class="">adamw</a>)</li>
<li class="">fix: blocking user requests in connect
<a href="https://github.com/scalameta/metals/pull/7515" target="_blank" rel="noopener noreferrer" class="">#7515</a>
(<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a>)</li>
<li class="">chore: Bump docusaurus to 3.8.0
<a href="https://github.com/scalameta/metals/pull/7534" target="_blank" rel="noopener noreferrer" class="">#7534</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">bugfix: Fix worksheet tests for Scala 3.7.1
<a href="https://github.com/scalameta/metals/pull/7535" target="_blank" rel="noopener noreferrer" class="">#7535</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">build(deps-dev): bump @types/node from 22.15.3 to 22.15.29 in /website
<a href="https://github.com/scalameta/metals/pull/7530" target="_blank" rel="noopener noreferrer" class="">#7530</a>
(<a href="https://github.com/dependabot%5Bbot%5D" target="_blank" rel="noopener noreferrer" class="">dependabot[bot]</a>)</li>
<li class="">chore: Bump sbt-ci-release
<a href="https://github.com/scalameta/metals/pull/7533" target="_blank" rel="noopener noreferrer" class="">#7533</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">improvement: save mcp port
<a href="https://github.com/scalameta/metals/pull/7485" target="_blank" rel="noopener noreferrer" class="">#7485</a>
(<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a>)</li>
<li class="">fix: encode build target names to include in report file name
<a href="https://github.com/scalameta/metals/pull/7510" target="_blank" rel="noopener noreferrer" class="">#7510</a>
(<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a>)</li>
<li class="">improvement: Support Mill 1.0.0
<a href="https://github.com/scalameta/metals/pull/7514" target="_blank" rel="noopener noreferrer" class="">#7514</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">build(deps): Update scala-xml from 2.3.0 to 2.4.0
<a href="https://github.com/scalameta/metals/pull/7520" target="_blank" rel="noopener noreferrer" class="">#7520</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update protobuf-java from 4.31.0 to 4.31.1
<a href="https://github.com/scalameta/metals/pull/7519" target="_blank" rel="noopener noreferrer" class="">#7519</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">improvement: Cache tokenization results when possible
<a href="https://github.com/scalameta/metals/pull/7499" target="_blank" rel="noopener noreferrer" class="">#7499</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">bugfix: Publish correctly to snapshots
<a href="https://github.com/scalameta/metals/pull/7523" target="_blank" rel="noopener noreferrer" class="">#7523</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">improvement: Update sbt-ci-release to fix releases
<a href="https://github.com/scalameta/metals/pull/7521" target="_blank" rel="noopener noreferrer" class="">#7521</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">improvement: Fix null pointer exception in inlay hints
<a href="https://github.com/scalameta/metals/pull/7516" target="_blank" rel="noopener noreferrer" class="">#7516</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">test: request timeout doesn't block on waiting for user response
<a href="https://github.com/scalameta/metals/pull/7513" target="_blank" rel="noopener noreferrer" class="">#7513</a>
(<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a>)</li>
<li class="">bugfix: Don't trim error stack trace
<a href="https://github.com/scalameta/metals/pull/7498" target="_blank" rel="noopener noreferrer" class="">#7498</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">fix: use dependency modules for Bazel
<a href="https://github.com/scalameta/metals/pull/7508" target="_blank" rel="noopener noreferrer" class="">#7508</a>
(<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a>)</li>
<li class="">feat: symbol search for backticked identifiers
<a href="https://github.com/scalameta/metals/pull/7502" target="_blank" rel="noopener noreferrer" class="">#7502</a>
(<a href="https://github.com/harpocrates" target="_blank" rel="noopener noreferrer" class="">harpocrates</a>)</li>
<li class="">revert: Revert update of sbt-ci-release
<a href="https://github.com/scalameta/metals/pull/7511" target="_blank" rel="noopener noreferrer" class="">#7511</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">build(deps): Update sbt-ci-release from 1.9.3 to 1.11.0
<a href="https://github.com/scalameta/metals/pull/7504" target="_blank" rel="noopener noreferrer" class="">#7504</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update sbt, scripted-plugin from 1.10.11 to 1.11.0
<a href="https://github.com/scalameta/metals/pull/7505" target="_blank" rel="noopener noreferrer" class="">#7505</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">chore: Update mill to 0.12.14
<a href="https://github.com/scalameta/metals/pull/7495" target="_blank" rel="noopener noreferrer" class="">#7495</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">feature: Add MCP tool to query for dependencies
<a href="https://github.com/scalameta/metals/pull/7494" target="_blank" rel="noopener noreferrer" class="">#7494</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">fix: indexer bug around type members
<a href="https://github.com/scalameta/metals/pull/7489" target="_blank" rel="noopener noreferrer" class="">#7489</a>
(<a href="https://github.com/harpocrates" target="_blank" rel="noopener noreferrer" class="">harpocrates</a>)</li>
<li class="">feat: Show issues within current module
<a href="https://github.com/scalameta/metals/pull/7440" target="_blank" rel="noopener noreferrer" class="">#7440</a>
(<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a>)</li>
<li class="">fix: support package objects in MCP correctly
<a href="https://github.com/scalameta/metals/pull/7481" target="_blank" rel="noopener noreferrer" class="">#7481</a>
(<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a>)</li>
<li class="">build(deps): Update ujson from 4.1.0 to 4.2.1
<a href="https://github.com/scalameta/metals/pull/7493" target="_blank" rel="noopener noreferrer" class="">#7493</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">bugfix: Calculate completion items eagerly
<a href="https://github.com/scalameta/metals/pull/7487" target="_blank" rel="noopener noreferrer" class="">#7487</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">build(deps): Update jackson-databind from 2.15.4 to 2.19.0
<a href="https://github.com/scalameta/metals/pull/7477" target="_blank" rel="noopener noreferrer" class="">#7477</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">fix: location of insert-types code action
<a href="https://github.com/scalameta/metals/pull/7483" target="_blank" rel="noopener noreferrer" class="">#7483</a>
(<a href="https://github.com/harpocrates" target="_blank" rel="noopener noreferrer" class="">harpocrates</a>)</li>
<li class="">bugfix: Fix versions to not include Right
<a href="https://github.com/scalameta/metals/pull/7482" target="_blank" rel="noopener noreferrer" class="">#7482</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">feat: selection range around name in select
<a href="https://github.com/scalameta/metals/pull/7473" target="_blank" rel="noopener noreferrer" class="">#7473</a>
(<a href="https://github.com/harpocrates" target="_blank" rel="noopener noreferrer" class="">harpocrates</a>)</li>
<li class="">build(deps): bump undici from 6.21.1 to 6.21.3 in /website
<a href="https://github.com/scalameta/metals/pull/7474" target="_blank" rel="noopener noreferrer" class="">#7474</a>
(<a href="https://github.com/dependabot%5Bbot%5D" target="_blank" rel="noopener noreferrer" class="">dependabot[bot]</a>)</li>
<li class="">build(deps): Update protobuf-java from 4.30.2 to 4.31.0
<a href="https://github.com/scalameta/metals/pull/7478" target="_blank" rel="noopener noreferrer" class="">#7478</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update mcp from 0.9.0 to 0.10.0
<a href="https://github.com/scalameta/metals/pull/7479" target="_blank" rel="noopener noreferrer" class="">#7479</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update scalameta, semanticdb-metap, ... from 4.13.5 to 4.13.6
<a href="https://github.com/scalameta/metals/pull/7480" target="_blank" rel="noopener noreferrer" class="">#7480</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">fix: uri in mcp <code>inspect</code> for Scala 3
<a href="https://github.com/scalameta/metals/pull/7466" target="_blank" rel="noopener noreferrer" class="">#7466</a>
(<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a>)</li>
<li class="">fix: add alternative vscode editor names
<a href="https://github.com/scalameta/metals/pull/7468" target="_blank" rel="noopener noreferrer" class="">#7468</a>
(<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a>)</li>
<li class="">fix: MCP test tool runs properly if <code>verbose</code> argument is not provided
<a href="https://github.com/scalameta/metals/pull/7472" target="_blank" rel="noopener noreferrer" class="">#7472</a>
(<a href="https://github.com/rtar" target="_blank" rel="noopener noreferrer" class="">rtar</a>)</li>
<li class="">docs: fix setting <code>enableBestEffort</code> name in docs
<a href="https://github.com/scalameta/metals/pull/7471" target="_blank" rel="noopener noreferrer" class="">#7471</a>
(<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a>)</li>
<li class="">build(deps): Update flyway-core from 11.8.0 to 11.8.1
<a href="https://github.com/scalameta/metals/pull/7450" target="_blank" rel="noopener noreferrer" class="">#7450</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">docs: fix links to gifs in last release notes
<a href="https://github.com/scalameta/metals/pull/7461" target="_blank" rel="noopener noreferrer" class="">#7461</a>
(<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a>)</li>
<li class="">build(deps): Update mcp from 0.8.1 to 0.9.0
<a href="https://github.com/scalameta/metals/pull/7456" target="_blank" rel="noopener noreferrer" class="">#7456</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">bugfix: Don't use unsafe alternatives method which can throw
<a href="https://github.com/scalameta/metals/pull/7458" target="_blank" rel="noopener noreferrer" class="">#7458</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">docs: Add release notes for Metals 1.5.3
<a href="https://github.com/scalameta/metals/pull/7459" target="_blank" rel="noopener noreferrer" class="">#7459</a>
(<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a>)</li>
</ul>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Metals v1.5.3 - Strontium]]></title>
            <link>http://scalameta.org/metals/blog/2025/05/13/strontium</link>
            <guid>http://scalameta.org/metals/blog/2025/05/13/strontium</guid>
            <pubDate>Tue, 13 May 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[We're happy to announce the release of Metals v1.5.3, which besides many bugfixes and improvements brings an MCP server implementation to Metals, allowing your AI agent to also use the information that Metals can provide.]]></description>
            <content:encoded><![CDATA[<p>We're happy to announce the release of Metals v1.5.3, which besides many bugfixes and improvements brings an MCP server implementation to Metals, allowing your AI agent to also use the information that Metals can provide.</p>
<table><tbody><tr><td>Commits since last release</td><td align="center">135</td></tr><tr><td>Merged PRs</td><td align="center">89</td></tr><tr><td>Contributors</td><td align="center">24</td></tr><tr><td>Closed issues</td><td align="center">32</td></tr><tr><td>New features</td><td align="center">9</td></tr></tbody></table>
<p>For full details: <a href="https://github.com/scalameta/metals/milestone/78?closed=1" target="_blank" rel="noopener noreferrer" class="">https://github.com/scalameta/metals/milestone/78?closed=1</a></p>
<p>Metals is a language server for Scala that works with VS Code, Vim, Emacs, Zed,
Helix and Sublime Text. Metals is developed at the
<a href="https://scala.epfl.ch/" target="_blank" rel="noopener noreferrer" class="">Scala Center</a> and <a href="https://virtuslab.com/" target="_blank" rel="noopener noreferrer" class="">VirtusLab</a>
with the help from contributors from the community.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="tldr">TL;DR<a href="http://scalameta.org/metals/blog/2025/05/13/strontium#tldr" class="hash-link" aria-label="Direct link to TL;DR" title="Direct link to TL;DR" translate="no">​</a></h2>
<p>Check out <a href="https://scalameta.org/metals/" target="_blank" rel="noopener noreferrer" class="">https://scalameta.org/metals/</a>, and
give Metals a try!</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="menu">Menu<a href="http://scalameta.org/metals/blog/2025/05/13/strontium#menu" class="hash-link" aria-label="Direct link to Menu" title="Direct link to Menu" translate="no">​</a></h2>
<ul>
<li class=""><a href="http://scalameta.org/metals/blog/2025/05/13/strontium#mcp-support" class="">MCP support</a></li>
<li class=""><a href="http://scalameta.org/metals/blog/2025/05/13/strontium#best-effort-compilation" class="">Best effort compilation</a></li>
<li class=""><a href="http://scalameta.org/metals/blog/2025/05/13/strontium#new-inlay-hints" class="">New inlay hints</a>
<ul>
<li class=""><a href="http://scalameta.org/metals/blog/2025/05/13/strontium#named-parameters" class="">Named parameters</a></li>
<li class=""><a href="http://scalameta.org/metals/blog/2025/05/13/strontium#by-name-parameters" class="">By-name parameters</a></li>
</ul>
</li>
<li class=""><a href="http://scalameta.org/metals/blog/2025/05/13/strontium#remove-invalid-imports-code-action" class="">Remove invalid imports code action</a></li>
<li class=""><a href="http://scalameta.org/metals/blog/2025/05/13/strontium#convert-to-named-lambda-parameters-code-action" class="">Convert to named lambda parameters code action</a></li>
<li class=""><a href="http://scalameta.org/metals/blog/2025/05/13/strontium#support-using-directives-in-worksheets" class="">Support using directives in worksheets</a></li>
<li class=""><a href="http://scalameta.org/metals/blog/2025/05/13/strontium#improve-auto-fill-arguments" class="">Improve auto-fill arguments</a></li>
<li class=""><a href="http://scalameta.org/metals/blog/2025/05/13/strontium#discover-tests-for-zio-test-framework" class="">Discover tests for ZIO test framework</a></li>
<li class=""><a href="http://scalameta.org/metals/blog/2025/05/13/strontium#miscellaneous" class="">Miscellaneous</a></li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="mcp-support">MCP support<a href="http://scalameta.org/metals/blog/2025/05/13/strontium#mcp-support" class="hash-link" aria-label="Direct link to MCP support" title="Direct link to MCP support" translate="no">​</a></h2>
<p>Starting with this release, Metals can serve an SSE, MCP server.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="why">Why?<a href="http://scalameta.org/metals/blog/2025/05/13/strontium#why" class="hash-link" aria-label="Direct link to Why?" title="Direct link to Why?" translate="no">​</a></h3>
<p>AI agents have the tendency to make up the existence of some functions, classes, arguments, and so on. If we allow them to use the information that Metals already has and provide them with such capabilities as searching for symbols, discovering class members, signature help, and getting symbol documentation, we expect AI agents to yield much more relevant suggestions.</p>
<p>Furthermore, giving the AI agent the capability to compile files, run tests, and import builds can further help automate your workflow.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="how-to-use-metals-mcp">How to use Metals MCP?<a href="http://scalameta.org/metals/blog/2025/05/13/strontium#how-to-use-metals-mcp" class="hash-link" aria-label="Direct link to How to use Metals MCP?" title="Direct link to How to use Metals MCP?" translate="no">​</a></h3>
<p>To enable Metals MCP support, set <code>metals.startMcpServer</code> to <code>true</code>. For common editors like Cursor or VSCode (GitHub Copilot), MCP configuration will be automatically added to your workspace. However, you should still check in your AI agent settings that the connection was made successfully. For other AI, Metals will show a message upon MCP server startup with the port on which it was started locally. If you miss it, <code>Metals MCP server started on port: ${port}</code> message is also printed in the Metals log (<code>.metals/metals.log</code>).</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="current-list-of-mcp-tools">Current list of MCP tools:<a href="http://scalameta.org/metals/blog/2025/05/13/strontium#current-list-of-mcp-tools" class="hash-link" aria-label="Direct link to Current list of MCP tools:" title="Direct link to Current list of MCP tools:" translate="no">​</a></h3>
<ul>
<li class=""><code>compile-file</code> -- Compile a chosen Scala file.</li>
<li class=""><code>compile-full</code> -- Compile the whole Scala project.</li>
<li class=""><code>test</code> -- Run Scala test suite.</li>
<li class=""><code>glob-search</code> -- Search for symbols containing substring</li>
<li class=""><code>typed-glob-search</code> -- Search for symbols containing a substring that match the allowed symbol kinds (e.g., class, method).</li>
<li class=""><code>inspect</code> -- Inspect a chosen Scala symbol. For packages, objects, and traits, it returns a list of members; for classes, it returns a list of members and constructors; and for methods, it returns signatures of all overloaded methods.</li>
<li class=""><code>get-docs</code> -- Get documentation for a chosen Scala symbol</li>
<li class=""><code>get-usages</code> -- Get usages for a chosen Scala symbol.</li>
<li class=""><code>import-build</code> -- Import the build to IDE. Should be performed after any build changes, e.g., adding dependencies or any changes in build.sbt.</li>
</ul>
<p>This feature is still experimental, and we'd love to get your feedback and improvement suggestions.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="best-effort-compilation">Best effort compilation<a href="http://scalameta.org/metals/blog/2025/05/13/strontium#best-effort-compilation" class="hash-link" aria-label="Direct link to Best effort compilation" title="Direct link to Best effort compilation" translate="no">​</a></h2>
<p>Best effort compilation was first introduced to Metals <code>v1.3.4</code> (see <a href="https://scalameta.org/metals/blog/2024/07/24/thallium#scala-3-best-effort-compilation" target="_blank" rel="noopener noreferrer" class="">here</a>); however, due to multiple issues with it, it was disabled. Since then, a lot was fixed and improved in the area, so this release reintroduces best effort compilation behind a setting; simply set <code>metals.enableBestEffort</code> to <code>true</code> and give it a try.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="new-inlay-hints">New inlay hints<a href="http://scalameta.org/metals/blog/2025/05/13/strontium#new-inlay-hints" class="hash-link" aria-label="Direct link to New inlay hints" title="Direct link to New inlay hints" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="named-parameters">Named parameters<a href="http://scalameta.org/metals/blog/2025/05/13/strontium#named-parameters" class="hash-link" aria-label="Direct link to Named parameters" title="Direct link to Named parameters" translate="no">​</a></h3>
<p><a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a> added inlay hints for showing parameters' names on call site. The new inlay hint is available under <code>inlay-hints.named-parameters.enable</code> Metals setting, for now available only for Scala 2.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="by-name-parameters">By-name parameters<a href="http://scalameta.org/metals/blog/2025/05/13/strontium#by-name-parameters" class="hash-link" aria-label="Direct link to By-name parameters" title="Direct link to By-name parameters" translate="no">​</a></h3>
<p>We also have new inlay hints marking by-name parameters with <code>=&gt;</code> on the call site. Thanks go to <a href="https://github.com/harpocrates" target="_blank" rel="noopener noreferrer" class="">harpocrates</a>.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="remove-invalid-imports-code-action">Remove invalid imports code action<a href="http://scalameta.org/metals/blog/2025/05/13/strontium#remove-invalid-imports-code-action" class="hash-link" aria-label="Direct link to Remove invalid imports code action" title="Direct link to Remove invalid imports code action" translate="no">​</a></h2>
<p>This release also has a new code action for removing invalid imports, saving you the trouble of deleting them manually. It is yet another improvement added by <a href="https://github.com/harpocrates" target="_blank" rel="noopener noreferrer" class="">harpocrates</a>. Code action works both for Scala 2 and Scala 3, though older Scala 2 versions might get only partial support.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="convert-to-named-lambda-parameters-code-action">Convert to named lambda parameters code action<a href="http://scalameta.org/metals/blog/2025/05/13/strontium#convert-to-named-lambda-parameters-code-action" class="hash-link" aria-label="Direct link to Convert to named lambda parameters code action" title="Direct link to Convert to named lambda parameters code action" translate="no">​</a></h2>
<p>Thanks to <a href="https://github.com/KacperFKorban" target="_blank" rel="noopener noreferrer" class="">KacperFKorban</a> we have a new code action that converts a wildcard lambda into a lambda with parameters. This was only implemented for Scala 3 and will work from versions <code>3.7.2</code> and LTS <code>3.3.7</code>.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="support-using-directives-in-worksheets">Support using directives in worksheets<a href="http://scalameta.org/metals/blog/2025/05/13/strontium#support-using-directives-in-worksheets" class="hash-link" aria-label="Direct link to Support using directives in worksheets" title="Direct link to Support using directives in worksheets" translate="no">​</a></h2>
<p>Since Metals has been supporting Scala-CLI for a while, and it is Metals's recommended tool for scripts, we are further embracing Scala-CLI style, and <code>using</code> directives are now supported also in the worksheets. Thanks go to <a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a> for adding this improvement.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="improve-auto-fill-arguments">Improve auto-fill arguments<a href="http://scalameta.org/metals/blog/2025/05/13/strontium#improve-auto-fill-arguments" class="hash-link" aria-label="Direct link to Improve auto-fill arguments" title="Direct link to Improve auto-fill arguments" translate="no">​</a></h2>
<p>For a while now, Metals had a special completion for auto-filling argument names, however it was somewhat hidden. Now, the discoveribility of that feature was improved, and it naturally appear in the completion suggestion list. Thanks, <a href="https://github.com/LiathHelvetica" target="_blank" rel="noopener noreferrer" class="">LiathHelvetica</a> and <a href="https://github.com/natsukagami" target="_blank" rel="noopener noreferrer" class="">natsukagami</a>, for making the change.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="discover-tests-for-zio-test-framework">Discover tests for ZIO test framework<a href="http://scalameta.org/metals/blog/2025/05/13/strontium#discover-tests-for-zio-test-framework" class="hash-link" aria-label="Direct link to Discover tests for ZIO test framework" title="Direct link to Discover tests for ZIO test framework" translate="no">​</a></h2>
<p>With this release also comes support for discovering and running single test cases from Metals when using the ZIO test framework. Thanks go to <a href="https://github.com/kaplan-shaked" target="_blank" rel="noopener noreferrer" class="">kaplan-shaked</a>, making this their first contribution!</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="miscellaneous">Miscellaneous<a href="http://scalameta.org/metals/blog/2025/05/13/strontium#miscellaneous" class="hash-link" aria-label="Direct link to Miscellaneous" title="Direct link to Miscellaneous" translate="no">​</a></h2>
<ul>
<li class="">improvement : Able to get environment variables from shell <a href="https://github.com/ajafri2001" target="_blank" rel="noopener noreferrer" class="">ajafri2001</a></li>
<li class="">improvement: prefer <code>.bazelproject</code> as the Bazel BSP root <a href="https://github.com/harpocrates" target="_blank" rel="noopener noreferrer" class="">harpocrates</a></li>
<li class="">improvement: add additional ScalaTest WordSpec types <a href="https://github.com/tmilner" target="_blank" rel="noopener noreferrer" class="">tmilner</a></li>
<li class="">fix: add backticks in hover output when needed <a href="https://github.com/harpocrates" target="_blank" rel="noopener noreferrer" class="">harpocrates</a></li>
<li class="">fix: show more precise signature help types <a href="https://github.com/harpocrates" target="_blank" rel="noopener noreferrer" class="">harpocrates</a></li>
<li class="">fix: consider build.mill and build.mill.scala when calculating Mill digest <a href="https://github.com/sake92" target="_blank" rel="noopener noreferrer" class="">sake92</a></li>
<li class="">fix: completions respect backticks at defn site <a href="https://github.com/harpocrates" target="_blank" rel="noopener noreferrer" class="">harpocrates</a></li>
<li class="">fix: don't rename if old and new packages are the same for package object <a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a></li>
<li class="">fix: add fallback presentation compiler for Java <a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a></li>
<li class="">fix: Add type param inlay hint for constuctor calls <a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a></li>
<li class="">improvement: add selection ranges for name <a href="https://github.com/harpocrates" target="_blank" rel="noopener noreferrer" class="">harpocrates</a></li>
<li class="">improvement: add folding range for function call <a href="https://github.com/harpocrates" target="_blank" rel="noopener noreferrer" class="">harpocrates</a></li>
<li class="">feat: respect LSP build target no-ide tag <a href="https://github.com/ysedira" target="_blank" rel="noopener noreferrer" class="">ysedira</a></li>
<li class="">improvement: queue or cancel previous connect request <a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a></li>
<li class="">fix &amp; improvement: improvements in selection ranges <a href="https://github.com/harpocrates" target="_blank" rel="noopener noreferrer" class="">harpocrates</a></li>
<li class="">feat: convert string to interpolation on <code>${</code> <a href="https://github.com/harpocrates" target="_blank" rel="noopener noreferrer" class="">harpocrates</a></li>
<li class="">fix: don't remove non-existent entries from classpath <a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a></li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="contributors">Contributors<a href="http://scalameta.org/metals/blog/2025/05/13/strontium#contributors" class="hash-link" aria-label="Direct link to Contributors" title="Direct link to Contributors" translate="no">​</a></h2>
<p>Big thanks to everybody who contributed to this release or reported an issue!</p>
<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#bfc7d5;--prism-background-color:#292d3e"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#bfc7d5;background-color:#292d3e"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#bfc7d5"><span class="token plain">$ git shortlog -sn --no-merges v1.5.2..v1.5.3</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">  19	Tomasz Godzik</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">  16	amit.miran</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">  14	Scalameta Bot</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">  13	Alec Theriault</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">  11	scalameta-bot</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">   8	ajafri2001</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">   6	Brice Jaglin</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">   6	dependabot[bot]</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">   6	kasiaMarek</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">   5	Kacper Korban</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">   5	Katarzyna Marek</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">   5	Tobias Roeser</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">   5	scarf</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">   3	Przemyslaw Wierzbicki</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">   3	Sakib Hadziavdic</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">   2	Myungbae Son</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">   1	Amit Miran</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">   1	Christopher Vogt</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">   1	Jens Kouros</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">   1	Maciej Dragun</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">   1	Michal Pawlik</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">   1	Shaked Kaplan</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">   1	Tom Milner</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">   1	ysedira</span><br></div></code></pre></div></div>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="merged-prs">Merged PRs<a href="http://scalameta.org/metals/blog/2025/05/13/strontium#merged-prs" class="hash-link" aria-label="Direct link to Merged PRs" title="Direct link to Merged PRs" translate="no">​</a></h2>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="v153-2025-05-13"><a href="https://github.com/scalameta/metals/tree/v1.5.3" target="_blank" rel="noopener noreferrer" class="">v1.5.3</a> (2025-05-13)<a href="http://scalameta.org/metals/blog/2025/05/13/strontium#v153-2025-05-13" class="hash-link" aria-label="Direct link to v153-2025-05-13" title="Direct link to v153-2025-05-13" translate="no">​</a></h2>
<p><a href="https://github.com/scalameta/metals/compare/v1.5.2...v1.5.3" target="_blank" rel="noopener noreferrer" class="">Full Changelog</a></p>
<p><strong>Merged pull requests:</strong></p>
<ul>
<li class="">fix: don't remove non-existent entries from classpath
<a href="https://github.com/scalameta/metals/pull/7445" target="_blank" rel="noopener noreferrer" class="">#7445</a>
(<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a>)</li>
<li class="">build(deps): Update cli_3, scala-cli-bsp from 1.7.1 to 1.8.0
<a href="https://github.com/scalameta/metals/pull/7457" target="_blank" rel="noopener noreferrer" class="">#7457</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update mill-contrib-testng from 0.12.10 to 0.12.11
<a href="https://github.com/scalameta/metals/pull/7455" target="_blank" rel="noopener noreferrer" class="">#7455</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update jackson-databind from 2.15.0 to 2.15.4
<a href="https://github.com/scalameta/metals/pull/7454" target="_blank" rel="noopener noreferrer" class="">#7454</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">MCP support
<a href="https://github.com/scalameta/metals/pull/7390" target="_blank" rel="noopener noreferrer" class="">#7390</a>
(<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a>)</li>
<li class="">feat: folding ranges for function calls
<a href="https://github.com/scalameta/metals/pull/7452" target="_blank" rel="noopener noreferrer" class="">#7452</a>
(<a href="https://github.com/harpocrates" target="_blank" rel="noopener noreferrer" class="">harpocrates</a>)</li>
<li class="">feat: selection ranges for more names
<a href="https://github.com/scalameta/metals/pull/7446" target="_blank" rel="noopener noreferrer" class="">#7446</a>
(<a href="https://github.com/harpocrates" target="_blank" rel="noopener noreferrer" class="">harpocrates</a>)</li>
<li class="">build(deps): Update scala3-library from 3.3.5 to 3.3.6
<a href="https://github.com/scalameta/metals/pull/7451" target="_blank" rel="noopener noreferrer" class="">#7451</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update bloop-rifle from 2.0.9 to 2.0.10
<a href="https://github.com/scalameta/metals/pull/7447" target="_blank" rel="noopener noreferrer" class="">#7447</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update sbt-scalafix, scalafix-interfaces from 0.14.2 to 0.14.3
<a href="https://github.com/scalameta/metals/pull/7448" target="_blank" rel="noopener noreferrer" class="">#7448</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update directories, directories-jni from 0.1.2 to 0.1.3
<a href="https://github.com/scalameta/metals/pull/7449" target="_blank" rel="noopener noreferrer" class="">#7449</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">chore: Switch to coursier ProjectDirectories
<a href="https://github.com/scalameta/metals/pull/7442" target="_blank" rel="noopener noreferrer" class="">#7442</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">improvement : Able to get environment variables from shell
<a href="https://github.com/scalameta/metals/pull/7301" target="_blank" rel="noopener noreferrer" class="">#7301</a>
(<a href="https://github.com/ajafri2001" target="_blank" rel="noopener noreferrer" class="">ajafri2001</a>)</li>
<li class="">refactor: pass report context to the presentation compiler
<a href="https://github.com/scalameta/metals/pull/7428" target="_blank" rel="noopener noreferrer" class="">#7428</a>
(<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a>)</li>
<li class="">improvement: queue or cancel previous connect request
<a href="https://github.com/scalameta/metals/pull/6691" target="_blank" rel="noopener noreferrer" class="">#6691</a>
(<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a>)</li>
<li class="">feat: implement 'convert to named lambda parameters' code action
<a href="https://github.com/scalameta/metals/pull/6669" target="_blank" rel="noopener noreferrer" class="">#6669</a>
(<a href="https://github.com/KacperFKorban" target="_blank" rel="noopener noreferrer" class="">KacperFKorban</a>)</li>
<li class="">build(deps): Update scalameta, semanticdb-metap, ... from 4.13.4 to 4.13.5
<a href="https://github.com/scalameta/metals/pull/7439" target="_blank" rel="noopener noreferrer" class="">#7439</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update scala-debug-adapter from 4.2.4 to 4.2.5
<a href="https://github.com/scalameta/metals/pull/7434" target="_blank" rel="noopener noreferrer" class="">#7434</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update metaconfig-core from 0.15.0 to 0.16.0
<a href="https://github.com/scalameta/metals/pull/7437" target="_blank" rel="noopener noreferrer" class="">#7437</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update flyway-core from 11.7.2 to 11.8.0
<a href="https://github.com/scalameta/metals/pull/7435" target="_blank" rel="noopener noreferrer" class="">#7435</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update jsoup from 1.19.1 to 1.20.1
<a href="https://github.com/scalameta/metals/pull/7436" target="_blank" rel="noopener noreferrer" class="">#7436</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update munit from 1.1.0 to 1.1.1
<a href="https://github.com/scalameta/metals/pull/7438" target="_blank" rel="noopener noreferrer" class="">#7438</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps-dev): bump @types/node from 22.13.15 to 22.15.3 in /website
<a href="https://github.com/scalameta/metals/pull/7432" target="_blank" rel="noopener noreferrer" class="">#7432</a>
(<a href="https://github.com/dependabot%5Bbot%5D" target="_blank" rel="noopener noreferrer" class="">dependabot[bot]</a>)</li>
<li class="">feat: code action to remove invalid imports
<a href="https://github.com/scalameta/metals/pull/7416" target="_blank" rel="noopener noreferrer" class="">#7416</a>
(<a href="https://github.com/harpocrates" target="_blank" rel="noopener noreferrer" class="">harpocrates</a>)</li>
<li class="">improvement: use specific jsonrpc code for compile errors
<a href="https://github.com/scalameta/metals/pull/7423" target="_blank" rel="noopener noreferrer" class="">#7423</a>
(<a href="https://github.com/cvogt" target="_blank" rel="noopener noreferrer" class="">cvogt</a>)</li>
<li class="">chore: update the mill scripts to version <code>0.13.0-M2-3-ba7090</code>
<a href="https://github.com/scalameta/metals/pull/7431" target="_blank" rel="noopener noreferrer" class="">#7431</a>
(<a href="https://github.com/lefou" target="_blank" rel="noopener noreferrer" class="">lefou</a>)</li>
<li class="">feat: read the Mill version from YAML frontmatter of the buildfile
<a href="https://github.com/scalameta/metals/pull/7429" target="_blank" rel="noopener noreferrer" class="">#7429</a>
(<a href="https://github.com/lefou" target="_blank" rel="noopener noreferrer" class="">lefou</a>)</li>
<li class="">fix: Add type param inlay hint for constuctor calls
<a href="https://github.com/scalameta/metals/pull/7425" target="_blank" rel="noopener noreferrer" class="">#7425</a>
(<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a>)</li>
<li class="">Prepare for Scala 2.13.17
<a href="https://github.com/scalameta/metals/pull/7421" target="_blank" rel="noopener noreferrer" class="">#7421</a>
(<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a>)</li>
<li class="">tests: make HoverPlaintextSuite independent of stdlib Scaladoc
<a href="https://github.com/scalameta/metals/pull/7426" target="_blank" rel="noopener noreferrer" class="">#7426</a>
(<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a>)</li>
<li class="">feature: Add inlay hints for named parameters
<a href="https://github.com/scalameta/metals/pull/7400" target="_blank" rel="noopener noreferrer" class="">#7400</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">Use fallback mtags and presentation compiler implementations in 2.12
<a href="https://github.com/scalameta/metals/pull/7422" target="_blank" rel="noopener noreferrer" class="">#7422</a>
(<a href="https://github.com/majk-p" target="_blank" rel="noopener noreferrer" class="">majk-p</a>)</li>
<li class="">AddMissingImports for the entire file using codeActionKind.source
<a href="https://github.com/scalameta/metals/pull/7391" target="_blank" rel="noopener noreferrer" class="">#7391</a>
(<a href="https://github.com/amitmiran137" target="_blank" rel="noopener noreferrer" class="">amitmiran137</a>)</li>
<li class="">improvement: Add best effort user configuration option
<a href="https://github.com/scalameta/metals/pull/7396" target="_blank" rel="noopener noreferrer" class="">#7396</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">bugfix: Make sure cs is an actual executable file
<a href="https://github.com/scalameta/metals/pull/7420" target="_blank" rel="noopener noreferrer" class="">#7420</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">chore: Add tooling spree mention
<a href="https://github.com/scalameta/metals/pull/7418" target="_blank" rel="noopener noreferrer" class="">#7418</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">fix: don't show byname hints for defaulted args
<a href="https://github.com/scalameta/metals/pull/7417" target="_blank" rel="noopener noreferrer" class="">#7417</a>
(<a href="https://github.com/harpocrates" target="_blank" rel="noopener noreferrer" class="">harpocrates</a>)</li>
<li class="">fix(<code>DotEnvFileParser</code>): empty values or nonquoted values with comment
<a href="https://github.com/scalameta/metals/pull/7414" target="_blank" rel="noopener noreferrer" class="">#7414</a>
(<a href="https://github.com/nedsociety" target="_blank" rel="noopener noreferrer" class="">nedsociety</a>)</li>
<li class="">build(deps): Update guava from 33.4.7-jre to 33.4.8-jre
<a href="https://github.com/scalameta/metals/pull/7411" target="_blank" rel="noopener noreferrer" class="">#7411</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update gradle-bloop from 1.6.2 to 1.6.3
<a href="https://github.com/scalameta/metals/pull/7410" target="_blank" rel="noopener noreferrer" class="">#7410</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update mdoc-interfaces from 2.7.0 to 2.7.1
<a href="https://github.com/scalameta/metals/pull/7413" target="_blank" rel="noopener noreferrer" class="">#7413</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update flyway-core from 11.7.0 to 11.7.2
<a href="https://github.com/scalameta/metals/pull/7412" target="_blank" rel="noopener noreferrer" class="">#7412</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): bump http-proxy-middleware from 2.0.7 to 2.0.9 in /website
<a href="https://github.com/scalameta/metals/pull/7409" target="_blank" rel="noopener noreferrer" class="">#7409</a>
(<a href="https://github.com/dependabot%5Bbot%5D" target="_blank" rel="noopener noreferrer" class="">dependabot[bot]</a>)</li>
<li class="">feat: add inlay hints for byname parameters
<a href="https://github.com/scalameta/metals/pull/7404" target="_blank" rel="noopener noreferrer" class="">#7404</a>
(<a href="https://github.com/harpocrates" target="_blank" rel="noopener noreferrer" class="">harpocrates</a>)</li>
<li class="">feat: add missing scala-cli deps identifiers
<a href="https://github.com/scalameta/metals/pull/7407" target="_blank" rel="noopener noreferrer" class="">#7407</a>
(<a href="https://github.com/scarf005" target="_blank" rel="noopener noreferrer" class="">scarf005</a>)</li>
<li class="">feat: handle <code>% "provided"</code> on pasting sbt-style deps
<a href="https://github.com/scalameta/metals/pull/7408" target="_blank" rel="noopener noreferrer" class="">#7408</a>
(<a href="https://github.com/scarf005" target="_blank" rel="noopener noreferrer" class="">scarf005</a>)</li>
<li class="">fix: add fallback presentation compiler for Java
<a href="https://github.com/scalameta/metals/pull/7405" target="_blank" rel="noopener noreferrer" class="">#7405</a>
(<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a>)</li>
<li class="">feat: handle <code>% Test</code> on pasting sbt-style deps
<a href="https://github.com/scalameta/metals/pull/7402" target="_blank" rel="noopener noreferrer" class="">#7402</a>
(<a href="https://github.com/scarf005" target="_blank" rel="noopener noreferrer" class="">scarf005</a>)</li>
<li class="">fix &amp; feat: improvements in selection ranges
<a href="https://github.com/scalameta/metals/pull/7399" target="_blank" rel="noopener noreferrer" class="">#7399</a>
(<a href="https://github.com/harpocrates" target="_blank" rel="noopener noreferrer" class="">harpocrates</a>)</li>
<li class="">improvement: Support using directives in worksheets
<a href="https://github.com/scalameta/metals/pull/7387" target="_blank" rel="noopener noreferrer" class="">#7387</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">fix: don't rename if old and new packages are the same for package object
<a href="https://github.com/scalameta/metals/pull/7395" target="_blank" rel="noopener noreferrer" class="">#7395</a>
(<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a>)</li>
<li class="">build(deps): Update flyway-core from 11.6.0 to 11.7.0
<a href="https://github.com/scalameta/metals/pull/7393" target="_blank" rel="noopener noreferrer" class="">#7393</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update guava from 33.4.6-jre to 33.4.7-jre
<a href="https://github.com/scalameta/metals/pull/7392" target="_blank" rel="noopener noreferrer" class="">#7392</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">add support for ZIO test framework
<a href="https://github.com/scalameta/metals/pull/7388" target="_blank" rel="noopener noreferrer" class="">#7388</a>
(<a href="https://github.com/kaplan-shaked" target="_blank" rel="noopener noreferrer" class="">kaplan-shaked</a>)</li>
<li class="">improvement: make diagnostics and debugging not supported for sbt message more clear
<a href="https://github.com/scalameta/metals/pull/7389" target="_blank" rel="noopener noreferrer" class="">#7389</a>
(<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a>)</li>
<li class="">bugfix: Fix issues with EOF during tokenization
<a href="https://github.com/scalameta/metals/pull/7376" target="_blank" rel="noopener noreferrer" class="">#7376</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">improvement: Forward all data from LSP
<a href="https://github.com/scalameta/metals/pull/7385" target="_blank" rel="noopener noreferrer" class="">#7385</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">feat: completions respect backticks at defn site
<a href="https://github.com/scalameta/metals/pull/7379" target="_blank" rel="noopener noreferrer" class="">#7379</a>
(<a href="https://github.com/harpocrates" target="_blank" rel="noopener noreferrer" class="">harpocrates</a>)</li>
<li class="">bugfix: Fixed changed deps in lsp4j
<a href="https://github.com/scalameta/metals/pull/7382" target="_blank" rel="noopener noreferrer" class="">#7382</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">build(deps): bump estree-util-value-to-estree from 3.1.1 to 3.3.3 in /website
<a href="https://github.com/scalameta/metals/pull/7380" target="_blank" rel="noopener noreferrer" class="">#7380</a>
(<a href="https://github.com/dependabot%5Bbot%5D" target="_blank" rel="noopener noreferrer" class="">dependabot[bot]</a>)</li>
<li class="">feat: convert string to interpolation on <code>${</code>
<a href="https://github.com/scalameta/metals/pull/7375" target="_blank" rel="noopener noreferrer" class="">#7375</a>
(<a href="https://github.com/harpocrates" target="_blank" rel="noopener noreferrer" class="">harpocrates</a>)</li>
<li class="">build(deps): Update scribe, scribe-file, scribe-slf4j2 from 3.16.0 to 3.16.1
<a href="https://github.com/scalameta/metals/pull/7374" target="_blank" rel="noopener noreferrer" class="">#7374</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">Respect LSP build target no-ide tag
<a href="https://github.com/scalameta/metals/pull/7368" target="_blank" rel="noopener noreferrer" class="">#7368</a>
(<a href="https://github.com/ysedira" target="_blank" rel="noopener noreferrer" class="">ysedira</a>)</li>
<li class="">docs: Add information about worksheet extension
<a href="https://github.com/scalameta/metals/pull/7373" target="_blank" rel="noopener noreferrer" class="">#7373</a>
(<a href="https://github.com/tomatitito" target="_blank" rel="noopener noreferrer" class="">tomatitito</a>)</li>
<li class="">feat: infer dependency identifier on pasting sbt-style dependencies
<a href="https://github.com/scalameta/metals/pull/7366" target="_blank" rel="noopener noreferrer" class="">#7366</a>
(<a href="https://github.com/scarf005" target="_blank" rel="noopener noreferrer" class="">scarf005</a>)</li>
<li class="">feat: <code>DownloadDependencies</code> gets debug tools
<a href="https://github.com/scalameta/metals/pull/7369" target="_blank" rel="noopener noreferrer" class="">#7369</a>
(<a href="https://github.com/harpocrates" target="_blank" rel="noopener noreferrer" class="">harpocrates</a>)</li>
<li class="">improvement: improve arguments autofill
<a href="https://github.com/scalameta/metals/pull/7367" target="_blank" rel="noopener noreferrer" class="">#7367</a>
(<a href="https://github.com/LiathHelvetica" target="_blank" rel="noopener noreferrer" class="">LiathHelvetica</a>)</li>
<li class="">build(deps): Update flyway-core from 11.5.0 to 11.6.0
<a href="https://github.com/scalameta/metals/pull/7371" target="_blank" rel="noopener noreferrer" class="">#7371</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update mill-contrib-testng from 0.12.9 to 0.12.10
<a href="https://github.com/scalameta/metals/pull/7370" target="_blank" rel="noopener noreferrer" class="">#7370</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">Consider build.mill and build.mill.scala when calculating Mill digest
<a href="https://github.com/scalameta/metals/pull/7363" target="_blank" rel="noopener noreferrer" class="">#7363</a>
(<a href="https://github.com/sake92" target="_blank" rel="noopener noreferrer" class="">sake92</a>)</li>
<li class="">build(deps): bump image-size from 1.1.1 to 1.2.1 in /website
<a href="https://github.com/scalameta/metals/pull/7362" target="_blank" rel="noopener noreferrer" class="">#7362</a>
(<a href="https://github.com/dependabot%5Bbot%5D" target="_blank" rel="noopener noreferrer" class="">dependabot[bot]</a>)</li>
<li class="">#7320 fix package rename
<a href="https://github.com/scalameta/metals/pull/7339" target="_blank" rel="noopener noreferrer" class="">#7339</a>
(<a href="https://github.com/pshemass" target="_blank" rel="noopener noreferrer" class="">pshemass</a>)</li>
<li class="">fix: show more precise signature help types
<a href="https://github.com/scalameta/metals/pull/7357" target="_blank" rel="noopener noreferrer" class="">#7357</a>
(<a href="https://github.com/harpocrates" target="_blank" rel="noopener noreferrer" class="">harpocrates</a>)</li>
<li class="">feat: add CFR dep to <code>DownloadDependencies</code>
<a href="https://github.com/scalameta/metals/pull/7358" target="_blank" rel="noopener noreferrer" class="">#7358</a>
(<a href="https://github.com/harpocrates" target="_blank" rel="noopener noreferrer" class="">harpocrates</a>)</li>
<li class="">build(deps): bump @easyops-cn/docusaurus-search-local from 0.48.5 to 0.49.2 in /website
<a href="https://github.com/scalameta/metals/pull/7356" target="_blank" rel="noopener noreferrer" class="">#7356</a>
(<a href="https://github.com/dependabot%5Bbot%5D" target="_blank" rel="noopener noreferrer" class="">dependabot[bot]</a>)</li>
<li class="">build(deps-dev): bump @types/node from 22.13.8 to 22.13.15 in /website
<a href="https://github.com/scalameta/metals/pull/7355" target="_blank" rel="noopener noreferrer" class="">#7355</a>
(<a href="https://github.com/dependabot%5Bbot%5D" target="_blank" rel="noopener noreferrer" class="">dependabot[bot]</a>)</li>
<li class="">fix: add backticks in hover output when needed
<a href="https://github.com/scalameta/metals/pull/7354" target="_blank" rel="noopener noreferrer" class="">#7354</a>
(<a href="https://github.com/harpocrates" target="_blank" rel="noopener noreferrer" class="">harpocrates</a>)</li>
<li class="">chore: Add worksheet infinite loop test as flaky on windows
<a href="https://github.com/scalameta/metals/pull/7353" target="_blank" rel="noopener noreferrer" class="">#7353</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">docs: Update backporting docs
<a href="https://github.com/scalameta/metals/pull/7351" target="_blank" rel="noopener noreferrer" class="">#7351</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">improvement: add additional ScalaTest WordSpec types
<a href="https://github.com/scalameta/metals/pull/7341" target="_blank" rel="noopener noreferrer" class="">#7341</a>
(<a href="https://github.com/tmilner" target="_blank" rel="noopener noreferrer" class="">tmilner</a>)</li>
<li class="">prefer <code>.bazelproject</code> as the Bazel BSP root
<a href="https://github.com/scalameta/metals/pull/7349" target="_blank" rel="noopener noreferrer" class="">#7349</a>
(<a href="https://github.com/harpocrates" target="_blank" rel="noopener noreferrer" class="">harpocrates</a>)</li>
<li class="">build(deps): Update protobuf-java from 4.30.1 to 4.30.2
<a href="https://github.com/scalameta/metals/pull/7345" target="_blank" rel="noopener noreferrer" class="">#7345</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">remove mtags backpublishing adhoc code
<a href="https://github.com/scalameta/metals/pull/7343" target="_blank" rel="noopener noreferrer" class="">#7343</a>
(<a href="https://github.com/bjaglin" target="_blank" rel="noopener noreferrer" class="">bjaglin</a>)</li>
<li class="">build(deps): Update flyway-core from 11.4.1 to 11.5.0
<a href="https://github.com/scalameta/metals/pull/7346" target="_blank" rel="noopener noreferrer" class="">#7346</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update guava from 33.4.5-jre to 33.4.6-jre
<a href="https://github.com/scalameta/metals/pull/7344" target="_blank" rel="noopener noreferrer" class="">#7344</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">allow backpublishing with sbt-ci-release
<a href="https://github.com/scalameta/metals/pull/7342" target="_blank" rel="noopener noreferrer" class="">#7342</a>
(<a href="https://github.com/bjaglin" target="_blank" rel="noopener noreferrer" class="">bjaglin</a>)</li>
<li class="">improvement: deduplicate file indexing in classfile symbol search
<a href="https://github.com/scalameta/metals/pull/7337" target="_blank" rel="noopener noreferrer" class="">#7337</a>
(<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a>)</li>
<li class="">docs: Add release notes for Metals 1.5.2
<a href="https://github.com/scalameta/metals/pull/7319" target="_blank" rel="noopener noreferrer" class="">#7319</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">sbt-metals: publish for &amp; test against 2.0.0-M4
<a href="https://github.com/scalameta/metals/pull/7340" target="_blank" rel="noopener noreferrer" class="">#7340</a>
(<a href="https://github.com/bjaglin" target="_blank" rel="noopener noreferrer" class="">bjaglin</a>)</li>
</ul>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Metals v1.5.2 - Strontium]]></title>
            <link>http://scalameta.org/metals/blog/2025/03/26/strontium</link>
            <guid>http://scalameta.org/metals/blog/2025/03/26/strontium</guid>
            <pubDate>Wed, 26 Mar 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[We're happy to announce the release of Metals v1.5.2, which continues to improve]]></description>
            <content:encoded><![CDATA[<p>We're happy to announce the release of Metals v1.5.2, which continues to improve
overall user experience and stability of Metals. This release includes a number
of new features, bug fixes and improvements. Especially worth mentioning is the
fix for the Scala 2 issue, which previously caused most interactive features to break when using a type defined in a package object.</p>
<table><tbody><tr><td>Commits since last release</td><td align="center">145</td></tr><tr><td>Merged PRs</td><td align="center">132</td></tr><tr><td>Contributors</td><td align="center">16</td></tr><tr><td>Closed issues</td><td align="center">42</td></tr><tr><td>New features</td><td align="center">5</td></tr></tbody></table>
<p>For full details:
<a href="https://github.com/scalameta/metals/milestone/77?closed=1" target="_blank" rel="noopener noreferrer" class="">https://github.com/scalameta/metals/milestone/77?closed=1</a></p>
<p>Metals is a language server for Scala that works with VS Code, Vim, Emacs, Zed,
Helix and Sublime Text. Metals is developed at the
<a href="https://scala.epfl.ch/" target="_blank" rel="noopener noreferrer" class="">Scala Center</a> and <a href="https://virtuslab.com/" target="_blank" rel="noopener noreferrer" class="">VirtusLab</a>
with the help from contributors from the community.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="tldr">TL;DR<a href="http://scalameta.org/metals/blog/2025/03/26/strontium#tldr" class="hash-link" aria-label="Direct link to TL;DR" title="Direct link to TL;DR" translate="no">​</a></h2>
<p>Check out <a href="https://scalameta.org/metals/" target="_blank" rel="noopener noreferrer" class="">https://scalameta.org/metals/</a>, and
give Metals a try!</p>
<ul>
<li class=""><a href="http://scalameta.org/metals/blog/2025/03/26/strontium#deduplicate-compile-requests" class="">Deduplicate compile requests</a></li>
<li class=""><a href="http://scalameta.org/metals/blog/2025/03/26/strontium#add-exact-location-for-the-test-failure" class="">Add exact location for the test failure</a></li>
<li class=""><a href="http://scalameta.org/metals/blog/2025/03/26/strontium#convert-sbt-style-deps-on-paste-in-for-scala-cli" class="">Convert sbt style deps on paste in for scala-cli</a></li>
<li class=""><a href="http://scalameta.org/metals/blog/2025/03/26/strontium#add-test-cases-discovery-for-testng" class="">Add test cases discovery for TestNG</a></li>
<li class=""><a href="http://scalameta.org/metals/blog/2025/03/26/strontium#improvements-to-automatic-imports" class="">Improvements to automatic imports</a></li>
<li class=""><a href="http://scalameta.org/metals/blog/2025/03/26/strontium#remove-ammonite-script-support" class="">Remove Ammonite script support</a></li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="deduplicate-compile-requests">Deduplicate compile requests<a href="http://scalameta.org/metals/blog/2025/03/26/strontium#deduplicate-compile-requests" class="hash-link" aria-label="Direct link to Deduplicate compile requests" title="Direct link to Deduplicate compile requests" translate="no">​</a></h2>
<p>In previous versions of Metals, we would sometimes send multiple compile
requests for the same file expecting most of them to be fast. This worked
reliably well in Bloop, but not so much in a lot of other build servers such as
sbt.</p>
<p>Thanks to <a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a> we will try not to send
multiple requests if we know a file hasn't changed between them. This should
help in a number of cases and make the experience more reliable.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="add-exact-location-for-the-test-failure">Add exact location for the test failure<a href="http://scalameta.org/metals/blog/2025/03/26/strontium#add-exact-location-for-the-test-failure" class="hash-link" aria-label="Direct link to Add exact location for the test failure" title="Direct link to Add exact location for the test failure" translate="no">​</a></h2>
<p>Previously, when running tests in Metals with VS Code Test Explorer, the
location of the test failure was not shown, only the start of the test case.
Now, we will correctly show the exact location of the test failure, which should
make it easier to navigate to the failing test.</p>
<p><img decoding="async" loading="lazy" src="https://raw.githubusercontent.com/scalameta/gh-pages-images/main/metals/2025-03-26-strontium/JuIES78.gif" alt="test-loc" class="img_ev3q"></p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="convert-sbt-style-deps-on-paste-in-for-scala-cli">Convert sbt style deps on paste in for scala-cli<a href="http://scalameta.org/metals/blog/2025/03/26/strontium#convert-sbt-style-deps-on-paste-in-for-scala-cli" class="hash-link" aria-label="Direct link to Convert sbt style deps on paste in for scala-cli" title="Direct link to Convert sbt style deps on paste in for scala-cli" translate="no">​</a></h2>
<p>Thanks to <a href="https://github.com/majk-p" target="_blank" rel="noopener noreferrer" class="">majk-p</a> any sbt style dependencies that
you paste into a Scala CLI file after <code>//&gt; using dep</code> will be automatically
converted to Scala CLI style dependencies. This was previously only supported in
a code action, but turns out to be useful enough to apply the rewrite automatically on paste.</p>
<p><img decoding="async" loading="lazy" src="https://raw.githubusercontent.com/scalameta/gh-pages-images/main/metals/2025-03-26-strontium/6BNvmmO.gif" alt="paste-dep" class="img_ev3q"></p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="add-test-cases-discovery-for-testng">Add test cases discovery for TestNG<a href="http://scalameta.org/metals/blog/2025/03/26/strontium#add-test-cases-discovery-for-testng" class="hash-link" aria-label="Direct link to Add test cases discovery for TestNG" title="Direct link to Add test cases discovery for TestNG" translate="no">​</a></h2>
<p>Thanks to <a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a> it's now possible to run
TestNG tests inside Metals, which was previously not possible.</p>
<p>This would mean following test cases will now show lenses or test explorer icon
next to them:</p>
<div class="language-scala codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#bfc7d5;--prism-background-color:#292d3e"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-scala codeBlock_bY9V thin-scrollbar" style="color:#bfc7d5;background-color:#292d3e"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#bfc7d5"><span class="token plain">import org.testng.annotations.Test</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain" style="display:inline-block"></span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">class TestNG {</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">    @Test</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">    def testOK(): Unit = {</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">        assert(true)</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">    }</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">}</span><br></div></code></pre></div></div>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="improvements-to-automatic-imports">Improvements to automatic imports<a href="http://scalameta.org/metals/blog/2025/03/26/strontium#improvements-to-automatic-imports" class="hash-link" aria-label="Direct link to Improvements to automatic imports" title="Direct link to Improvements to automatic imports" translate="no">​</a></h2>
<p>Whenever importing a particular symbol, Metals would previously suggest all the
possible symbol with the expected name. However, in a lot of cases, those symbol
might already have a method being invoked on them, which means that only symbols
containing that method should be suggested.</p>
<p>For example in the following code:</p>
<div class="language-scala codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#bfc7d5;--prism-background-color:#292d3e"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-scala codeBlock_bY9V thin-scrollbar" style="color:#bfc7d5;background-color:#292d3e"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#bfc7d5"><span class="token plain">object O{</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">  Future.successful(1)</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">}</span><br></div></code></pre></div></div>
<p>we don't need to suggest java.concurrent.Future, but only
scala.concurrent.Future since only the latter contains the <code>successful</code> method.
If none of the symbols contains that specific method, we will revert to showing
all symbols. Let us know if this is a helpful behaviour or if you see additional
cases where this could be improved.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="remove-ammonite-script-support">Remove Ammonite script support<a href="http://scalameta.org/metals/blog/2025/03/26/strontium#remove-ammonite-script-support" class="hash-link" aria-label="Direct link to Remove Ammonite script support" title="Direct link to Remove Ammonite script support" translate="no">​</a></h2>
<p>Some time ago we have asked in
<a href="https://github.com/scalameta/metals/discussions/6522" target="_blank" rel="noopener noreferrer" class="">discussions</a> in our
Github repository about the possibility of removing support for Ammonite
scripts. We have not received any overwhelming feedback to keep it, so we have
decided to remove it. If you have any concerns or questions about this change,
please let us know.</p>
<p>The removal was directly prompted by the fact that there were serious issues
with Ammonite support with no users reporting them or anyone from maintainers
being aware of them. Which points to the fact that the feature is not widely
used.</p>
<p>This will also help to to ease the maintenance burden and to focus more on
stability of Metals. Scala Scripts still are and will be supported via
<a href="https://scala-cli.virtuslab.org/" target="_blank" rel="noopener noreferrer" class="">Scala CLI</a>, so for anyone using Ammonite we suggest switching to Scala CLI. Scala CLI is the default Scala runner for Scala 3 and we believe it offers overall better experience. If you see any useful Ammonite feature missing from Scala CLI don't hesitate to start a discussion in the Scala CLI repository.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="miscellaneous">Miscellaneous<a href="http://scalameta.org/metals/blog/2025/03/26/strontium#miscellaneous" class="hash-link" aria-label="Direct link to Miscellaneous" title="Direct link to Miscellaneous" translate="no">​</a></h2>
<ul>
<li class="">bugfix: Also infer type with complex expressions before method invocation
<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a></li>
<li class="">bugfix: fix <code>typeDefinition</code> on backticked identifier
<a href="https://github.com/harpocrates" target="_blank" rel="noopener noreferrer" class="">harpocrates</a></li>
<li class="">bugfix: Fix when types are coming from package objects
<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a></li>
<li class="">bugfix: Infer arg type properly when method uses complex parameters
<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a></li>
<li class="">improvement: convert workspace folder to be a Metals project on chosen
commands <a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a></li>
<li class="">Fix extracting values for fewer braces <a href="https://github.com/majk-p" target="_blank" rel="noopener noreferrer" class="">majk-p</a></li>
<li class="">bugfix: Regenerate mill BSP config on incorrect version
<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a></li>
<li class="">bugfix: Add missing completion in args in generic method with default args
<a href="https://github.com/harpocrates" target="_blank" rel="noopener noreferrer" class="">harpocrates</a></li>
<li class="">improvement: Add file location also to stacktrace printed to stdout
<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a></li>
<li class="">bugfix: Don't propose inaccessible named arg defaults
<a href="https://github.com/harpocrates" target="_blank" rel="noopener noreferrer" class="">harpocrates</a></li>
<li class="">feature: Support completions inside of backticks
<a href="https://github.com/harpocrates" target="_blank" rel="noopener noreferrer" class="">harpocrates</a></li>
<li class="">bugfix: Support show decompiled and show tasty for Bazel
<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a></li>
<li class="">bugfix: Fix invalid config message when multiple scalafmt files are used with
'include' <a href="https://github.com/Sporarum" target="_blank" rel="noopener noreferrer" class="">Sporarum</a></li>
<li class="">bugfix: don't propose inaccessible named arg defaults
<a href="https://github.com/harpocrates" target="_blank" rel="noopener noreferrer" class="">harpocrates</a></li>
<li class="">bugfix: don't prefix scope completions from supertype
<a href="https://github.com/harpocrates" target="_blank" rel="noopener noreferrer" class="">harpocrates</a></li>
<li class="">Add function params selection range
<a href="https://github.com/blaz-kranjc" target="_blank" rel="noopener noreferrer" class="">blaz-kranjc</a></li>
<li class="">bugfix: Don't fail when deleting temporary files
<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a></li>
<li class="">bugfix: Treat self types as parent types in go to implementation context
<a href="https://github.com/KacperFKorban" target="_blank" rel="noopener noreferrer" class="">KacperFKorban</a>
<a href="https://github.com/zainab-ali" target="_blank" rel="noopener noreferrer" class="">zainab-ali</a>
<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a></li>
<li class="">fix: look for implementations in rename for possibly overridden type aliases
<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a></li>
<li class="">improvement: Ask to start http server if not running
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">improve error messages when no main classes can be found
<a href="https://github.com/cvogt" target="_blank" rel="noopener noreferrer" class="">cvogt</a></li>
<li class="">fix: go to def should lead to all apply, object and class (Scala 2)
<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a></li>
<li class="">improvement: Add jar search command to metals view
<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a></li>
<li class="">fix: generate auto-imports for more pattern completions
(<a href="https://github.com/harpocrates" target="_blank" rel="noopener noreferrer" class="">harpocrates</a>)</li>
<li class="">fix: colliding pattern and scope completions
<a href="https://github.com/scalameta/metals/pull/7295" target="_blank" rel="noopener noreferrer" class="">#7295</a>
(<a href="https://github.com/harpocrates" target="_blank" rel="noopener noreferrer" class="">harpocrates</a>)</li>
<li class="">improvement: add CompileTarget server command
<a href="https://github.com/cvogt" target="_blank" rel="noopener noreferrer" class="">cvogt</a></li>
<li class="">bugfix: Try and improve credentials handling when downloading dependencies
<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a></li>
<li class="">Suggest open diagnostics for debug compile errors
<a href="https://github.com/cvogt" target="_blank" rel="noopener noreferrer" class="">cvogt</a></li>
<li class="">feat: convert sbt style deps on paste in for scala-cli test.dep
<a href="https://github.com/scarf005" target="_blank" rel="noopener noreferrer" class="">scarf005</a></li>
<li class="">bugfix: Fix issues when we would rename more symbols than needed
<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a></li>
<li class="">bugfix: Make sure to choose the best import option in unambiguous cases
<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a></li>
<li class="">improvement: Add scalafix and Scala 3 Presentation Compiler to DownloadDependencies
<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a></li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="contributors">Contributors<a href="http://scalameta.org/metals/blog/2025/03/26/strontium#contributors" class="hash-link" aria-label="Direct link to Contributors" title="Direct link to Contributors" translate="no">​</a></h2>
<p>Big thanks to everybody who contributed to this release or reported an issue!</p>
<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#bfc7d5;--prism-background-color:#292d3e"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#bfc7d5;background-color:#292d3e"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#bfc7d5"><span class="token plain">$ git shortlog -sn --no-merges v1.5.1..v1.5.2</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">    38	Tomasz Godzik</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">    24	Scalameta Bot</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">    16	scalameta-bot</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">    10	kasiaMarek</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">     7	dependabot[bot]</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">     6	Alec Theriault</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">     5	Blaz Kranjc</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">     4	tgodzik</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">     3	Christopher Vogt</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">     3	Katarzyna Marek</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">     2	Chris Birchall</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">     1	Francesco Nero</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">     1	Kacper Korban</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">     1	Lorenzo Gabriele</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">     1	Quentin Bernet</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">     1	Seth Tisue</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">     1	scarf</span><br></div></code></pre></div></div>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="merged-prs">Merged PRs<a href="http://scalameta.org/metals/blog/2025/03/26/strontium#merged-prs" class="hash-link" aria-label="Direct link to Merged PRs" title="Direct link to Merged PRs" translate="no">​</a></h2>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="v152-2025-03-18"><a href="https://github.com/scalameta/metals/tree/v1.5.2" target="_blank" rel="noopener noreferrer" class="">v1.5.2</a> (2025-03-18)<a href="http://scalameta.org/metals/blog/2025/03/26/strontium#v152-2025-03-18" class="hash-link" aria-label="Direct link to v152-2025-03-18" title="Direct link to v152-2025-03-18" translate="no">​</a></h2>
<p><a href="https://github.com/scalameta/metals/compare/v1.5.1...v1.5.2" target="_blank" rel="noopener noreferrer" class="">Full Changelog</a></p>
<p><strong>Merged pull requests:</strong></p>
<ul>
<li class="">bugfix: Make sure to choose the best import option
<a href="https://github.com/scalameta/metals/pull/7285" target="_blank" rel="noopener noreferrer" class="">#7285</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">improvement: Add scalafix and Scala 3 PC to DownloadDependencies
<a href="https://github.com/scalameta/metals/pull/7332" target="_blank" rel="noopener noreferrer" class="">#7332</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">bugfix: Fix issues when we would rename more symbols
<a href="https://github.com/scalameta/metals/pull/7334" target="_blank" rel="noopener noreferrer" class="">#7334</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">improvement: Retry downloading dependencies using a local coursier
<a href="https://github.com/scalameta/metals/pull/7330" target="_blank" rel="noopener noreferrer" class="">#7330</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">improvement: Forward all LSP data from BSP
<a href="https://github.com/scalameta/metals/pull/7294" target="_blank" rel="noopener noreferrer" class="">#7294</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">build(deps): Update flyway-core from 11.4.0 to 11.4.1
<a href="https://github.com/scalameta/metals/pull/7335" target="_blank" rel="noopener noreferrer" class="">#7335</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">feat: convert sbt style deps on paste in for scala-cli test.dep
<a href="https://github.com/scalameta/metals/pull/7333" target="_blank" rel="noopener noreferrer" class="">#7333</a>
(<a href="https://github.com/scarf005" target="_blank" rel="noopener noreferrer" class="">scarf005</a>)</li>
<li class="">build(deps): Update guava from 33.4.0-jre to 33.4.5-jre
<a href="https://github.com/scalameta/metals/pull/7324" target="_blank" rel="noopener noreferrer" class="">#7324</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">Suggest open diagnostics for debug compile errors
<a href="https://github.com/scalameta/metals/pull/7321" target="_blank" rel="noopener noreferrer" class="">#7321</a>
(<a href="https://github.com/cvogt" target="_blank" rel="noopener noreferrer" class="">cvogt</a>)</li>
<li class="">improvement: Log when setting credentials
<a href="https://github.com/scalameta/metals/pull/7329" target="_blank" rel="noopener noreferrer" class="">#7329</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">improvement: Don't crash the server if failed to download java semanticdb
<a href="https://github.com/scalameta/metals/pull/7328" target="_blank" rel="noopener noreferrer" class="">#7328</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">build(deps): Update sbt, scripted-plugin from 1.10.10 to 1.10.11
<a href="https://github.com/scalameta/metals/pull/7326" target="_blank" rel="noopener noreferrer" class="">#7326</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update cli_3, scala-cli-bsp from 1.7.0 to 1.7.1
<a href="https://github.com/scalameta/metals/pull/7327" target="_blank" rel="noopener noreferrer" class="">#7327</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">bugfix: Add credentials automatically for coursier API
<a href="https://github.com/scalameta/metals/pull/7314" target="_blank" rel="noopener noreferrer" class="">#7314</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">build(deps): Update mill-contrib-testng from 0.12.8 to 0.12.9
<a href="https://github.com/scalameta/metals/pull/7325" target="_blank" rel="noopener noreferrer" class="">#7325</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">chore: Update Bloop to 2.0.9
<a href="https://github.com/scalameta/metals/pull/7322" target="_blank" rel="noopener noreferrer" class="">#7322</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">improvement: add CompileTarget server command
<a href="https://github.com/scalameta/metals/pull/7315" target="_blank" rel="noopener noreferrer" class="">#7315</a>
(<a href="https://github.com/cvogt" target="_blank" rel="noopener noreferrer" class="">cvogt</a>)</li>
<li class="">chore: Change doctor to log less relevant data on debug
<a href="https://github.com/scalameta/metals/pull/7318" target="_blank" rel="noopener noreferrer" class="">#7318</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">chore: Bump mdoc to 2.6.5
<a href="https://github.com/scalameta/metals/pull/7313" target="_blank" rel="noopener noreferrer" class="">#7313</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">refactor: Remove Ammonite to reduce maintenance burden
<a href="https://github.com/scalameta/metals/pull/7309" target="_blank" rel="noopener noreferrer" class="">#7309</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">build(deps): Update flyway-core from 11.3.4 to 11.4.0
<a href="https://github.com/scalameta/metals/pull/7305" target="_blank" rel="noopener noreferrer" class="">#7305</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): bump @babel/helpers from 7.24.7 to 7.26.10 in /website
<a href="https://github.com/scalameta/metals/pull/7298" target="_blank" rel="noopener noreferrer" class="">#7298</a>
(<a href="https://github.com/dependabot%5Bbot%5D" target="_blank" rel="noopener noreferrer" class="">dependabot[bot]</a>)</li>
<li class="">build(deps): bump @babel/runtime-corejs3 from 7.26.0 to 7.26.10 in /website
<a href="https://github.com/scalameta/metals/pull/7299" target="_blank" rel="noopener noreferrer" class="">#7299</a>
(<a href="https://github.com/dependabot%5Bbot%5D" target="_blank" rel="noopener noreferrer" class="">dependabot[bot]</a>)</li>
<li class="">build(deps): Update sbt-ci-release from 1.9.2 to 1.9.3
<a href="https://github.com/scalameta/metals/pull/7303" target="_blank" rel="noopener noreferrer" class="">#7303</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update protobuf-java from 4.30.0 to 4.30.1
<a href="https://github.com/scalameta/metals/pull/7304" target="_blank" rel="noopener noreferrer" class="">#7304</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update scalafmt-core from 3.9.3 to 3.9.4
<a href="https://github.com/scalameta/metals/pull/7306" target="_blank" rel="noopener noreferrer" class="">#7306</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): bump @babel/runtime from 7.18.6 to 7.26.10 in /website
<a href="https://github.com/scalameta/metals/pull/7300" target="_blank" rel="noopener noreferrer" class="">#7300</a>
(<a href="https://github.com/dependabot%5Bbot%5D" target="_blank" rel="noopener noreferrer" class="">dependabot[bot]</a>)</li>
<li class="">Upgrade maven-wrapper and maven
<a href="https://github.com/scalameta/metals/pull/7308" target="_blank" rel="noopener noreferrer" class="">#7308</a>
(<a href="https://github.com/cb372" target="_blank" rel="noopener noreferrer" class="">cb372</a>)</li>
<li class="">build(deps): Update scalameta, semanticdb-metap, ... from 4.13.3 to 4.13.4
<a href="https://github.com/scalameta/metals/pull/7307" target="_blank" rel="noopener noreferrer" class="">#7307</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">fix: colliding pattern and scope completions
<a href="https://github.com/scalameta/metals/pull/7295" target="_blank" rel="noopener noreferrer" class="">#7295</a>
(<a href="https://github.com/harpocrates" target="_blank" rel="noopener noreferrer" class="">harpocrates</a>)</li>
<li class="">fix: generate auto-imports for more pattern completions
<a href="https://github.com/scalameta/metals/pull/7292" target="_blank" rel="noopener noreferrer" class="">#7292</a>
(<a href="https://github.com/harpocrates" target="_blank" rel="noopener noreferrer" class="">harpocrates</a>)</li>
<li class="">build(deps): bump prismjs from 1.29.0 to 1.30.0 in /website
<a href="https://github.com/scalameta/metals/pull/7290" target="_blank" rel="noopener noreferrer" class="">#7290</a>
(<a href="https://github.com/dependabot%5Bbot%5D" target="_blank" rel="noopener noreferrer" class="">dependabot[bot]</a>)</li>
<li class="">improvement: Add search command to metals view
<a href="https://github.com/scalameta/metals/pull/7283" target="_blank" rel="noopener noreferrer" class="">#7283</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">fix: go to def should lead to all apply, object and class (Scala 2)
<a href="https://github.com/scalameta/metals/pull/7275" target="_blank" rel="noopener noreferrer" class="">#7275</a>
(<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a>)</li>
<li class="">build(deps): Update cli_3, scala-cli-bsp from 1.6.2 to 1.7.0
<a href="https://github.com/scalameta/metals/pull/7289" target="_blank" rel="noopener noreferrer" class="">#7289</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update scalameta, semanticdb-metap, ... from 4.13.2 to 4.13.3
<a href="https://github.com/scalameta/metals/pull/7288" target="_blank" rel="noopener noreferrer" class="">#7288</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update scala3-library from 3.6.3 to 3.6.4
<a href="https://github.com/scalameta/metals/pull/7287" target="_blank" rel="noopener noreferrer" class="">#7287</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update jsoup from 1.18.3 to 1.19.1
<a href="https://github.com/scalameta/metals/pull/7280" target="_blank" rel="noopener noreferrer" class="">#7280</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">improve error messages when no main classes can be found
<a href="https://github.com/scalameta/metals/pull/7284" target="_blank" rel="noopener noreferrer" class="">#7284</a>
(<a href="https://github.com/cvogt" target="_blank" rel="noopener noreferrer" class="">cvogt</a>)</li>
<li class="">build(deps): Update sbt, scripted-plugin from 1.10.7 to 1.10.10
<a href="https://github.com/scalameta/metals/pull/7281" target="_blank" rel="noopener noreferrer" class="">#7281</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update protobuf-java from 4.29.3 to 4.30.0
<a href="https://github.com/scalameta/metals/pull/7278" target="_blank" rel="noopener noreferrer" class="">#7278</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">improvement: Only show symbol import if static method exists
<a href="https://github.com/scalameta/metals/pull/7272" target="_blank" rel="noopener noreferrer" class="">#7272</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">build(deps): Update scalafmt-core from 3.9.2 to 3.9.3
<a href="https://github.com/scalameta/metals/pull/7282" target="_blank" rel="noopener noreferrer" class="">#7282</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update semanticdb-java from 0.10.3 to 0.10.4
<a href="https://github.com/scalameta/metals/pull/7279" target="_blank" rel="noopener noreferrer" class="">#7279</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">improvement: Don't log noop compilation on info
<a href="https://github.com/scalameta/metals/pull/7271" target="_blank" rel="noopener noreferrer" class="">#7271</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">tests: Add Scala 3 tests that use symbol search
<a href="https://github.com/scalameta/metals/pull/7269" target="_blank" rel="noopener noreferrer" class="">#7269</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">build(deps-dev): bump @types/node from 22.13.0 to 22.13.8 in /website
<a href="https://github.com/scalameta/metals/pull/7257" target="_blank" rel="noopener noreferrer" class="">#7257</a>
(<a href="https://github.com/dependabot%5Bbot%5D" target="_blank" rel="noopener noreferrer" class="">dependabot[bot]</a>)</li>
<li class="">build(deps): bump @easyops-cn/docusaurus-search-local from 0.46.1 to 0.48.5 in
/website <a href="https://github.com/scalameta/metals/pull/7258" target="_blank" rel="noopener noreferrer" class="">#7258</a>
(<a href="https://github.com/dependabot%5Bbot%5D" target="_blank" rel="noopener noreferrer" class="">dependabot[bot]</a>)</li>
<li class="">bugfix: fix Scala 2 NPE in implicit inlay hints
<a href="https://github.com/scalameta/metals/pull/7260" target="_blank" rel="noopener noreferrer" class="">#7260</a>
(<a href="https://github.com/francesconero" target="_blank" rel="noopener noreferrer" class="">francesconero</a>)</li>
<li class="">build(deps): Update scalafmt-core from 3.9.1 to 3.9.2
<a href="https://github.com/scalameta/metals/pull/7261" target="_blank" rel="noopener noreferrer" class="">#7261</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">improvement: Ask to start http server if not running
<a href="https://github.com/scalameta/metals/pull/7083" target="_blank" rel="noopener noreferrer" class="">#7083</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">build(deps): Update flyway-core from 11.3.3 to 11.3.4
<a href="https://github.com/scalameta/metals/pull/7255" target="_blank" rel="noopener noreferrer" class="">#7255</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update scala-debug-adapter from 4.2.3 to 4.2.4
<a href="https://github.com/scalameta/metals/pull/7254" target="_blank" rel="noopener noreferrer" class="">#7254</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">fix: look for implementations in rename for possibly overridden type aliases
<a href="https://github.com/scalameta/metals/pull/7253" target="_blank" rel="noopener noreferrer" class="">#7253</a>
(<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a>)</li>
<li class="">Treat self types as parent types in go to implementation context
<a href="https://github.com/scalameta/metals/pull/7170" target="_blank" rel="noopener noreferrer" class="">#7170</a>
(<a href="https://github.com/KacperFKorban" target="_blank" rel="noopener noreferrer" class="">KacperFKorban</a>)</li>
<li class="">chore: deprecate 3.3.1 and 3.3.3; delete Scala 3 pc
<a href="https://github.com/scalameta/metals/pull/7243" target="_blank" rel="noopener noreferrer" class="">#7243</a>
(<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a>)</li>
<li class="">feat: add test cases discovery for TestNG
<a href="https://github.com/scalameta/metals/pull/7200" target="_blank" rel="noopener noreferrer" class="">#7200</a>
(<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a>)</li>
<li class="">improvement: when logging error report creation use <code>warning</code> instead of
<code>severe</code> <a href="https://github.com/scalameta/metals/pull/7249" target="_blank" rel="noopener noreferrer" class="">#7249</a>
(<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a>)</li>
<li class="">bugfix: Don't fail when deleting temporary files
<a href="https://github.com/scalameta/metals/pull/7245" target="_blank" rel="noopener noreferrer" class="">#7245</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">Add function parms selection range
<a href="https://github.com/scalameta/metals/pull/7233" target="_blank" rel="noopener noreferrer" class="">#7233</a>
(<a href="https://github.com/blaz-kranjc" target="_blank" rel="noopener noreferrer" class="">blaz-kranjc</a>)</li>
<li class="">build(deps): Update scalameta, semanticdb-metap, ... from 4.13.1.1 to 4.13.2
<a href="https://github.com/scalameta/metals/pull/7242" target="_blank" rel="noopener noreferrer" class="">#7242</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update scalafmt-core from 3.8.6 to 3.9.1
<a href="https://github.com/scalameta/metals/pull/7241" target="_blank" rel="noopener noreferrer" class="">#7241</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update sbt-scalafix, scalafix-interfaces from 0.14.0 to 0.14.2
<a href="https://github.com/scalameta/metals/pull/7235" target="_blank" rel="noopener noreferrer" class="">#7235</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update munit from 1.0.4 to 1.1.0
<a href="https://github.com/scalameta/metals/pull/7151" target="_blank" rel="noopener noreferrer" class="">#7151</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update flyway-core from 11.3.2 to 11.3.3
<a href="https://github.com/scalameta/metals/pull/7237" target="_blank" rel="noopener noreferrer" class="">#7237</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update cli_3, scala-cli-bsp from 1.6.1 to 1.6.2
<a href="https://github.com/scalameta/metals/pull/7238" target="_blank" rel="noopener noreferrer" class="">#7238</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">bugfix: Fix invalid config message when multiple files are used
<a href="https://github.com/scalameta/metals/pull/7232" target="_blank" rel="noopener noreferrer" class="">#7232</a>
(<a href="https://github.com/Sporarum" target="_blank" rel="noopener noreferrer" class="">Sporarum</a>)</li>
<li class="">Add Michał to contributors
<a href="https://github.com/scalameta/metals/pull/7230" target="_blank" rel="noopener noreferrer" class="">#7230</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">docs: Add information about how to debug Scala Native
<a href="https://github.com/scalameta/metals/pull/7220" target="_blank" rel="noopener noreferrer" class="">#7220</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">build(deps): Update scalameta, semanticdb-metap, ... from 4.12.7 to 4.13.1.1
<a href="https://github.com/scalameta/metals/pull/7225" target="_blank" rel="noopener noreferrer" class="">#7225</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">test: add compat for completions for Scala 2.13.17
<a href="https://github.com/scalameta/metals/pull/7226" target="_blank" rel="noopener noreferrer" class="">#7226</a>
(<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a>)</li>
<li class="">bugfix: Revert go to definition order for older scala version
<a href="https://github.com/scalameta/metals/pull/7210" target="_blank" rel="noopener noreferrer" class="">#7210</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">build(deps): Update flyway-core from 11.3.1 to 11.3.2
<a href="https://github.com/scalameta/metals/pull/7223" target="_blank" rel="noopener noreferrer" class="">#7223</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update mill-contrib-testng from 0.12.7 to 0.12.8
<a href="https://github.com/scalameta/metals/pull/7221" target="_blank" rel="noopener noreferrer" class="">#7221</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update os-lib from 0.11.3 to 0.11.4
<a href="https://github.com/scalameta/metals/pull/7222" target="_blank" rel="noopener noreferrer" class="">#7222</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update interface from 1.0.27 to 1.0.28
<a href="https://github.com/scalameta/metals/pull/7205" target="_blank" rel="noopener noreferrer" class="">#7205</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update github-api from 1.326 to 1.327
<a href="https://github.com/scalameta/metals/pull/7213" target="_blank" rel="noopener noreferrer" class="">#7213</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update mdoc-interfaces from 2.6.3 to 2.6.4
<a href="https://github.com/scalameta/metals/pull/7214" target="_blank" rel="noopener noreferrer" class="">#7214</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update bloop-config from 2.3.1 to 2.3.2
<a href="https://github.com/scalameta/metals/pull/7212" target="_blank" rel="noopener noreferrer" class="">#7212</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">chore: Remove CI from mergify that doesn't exist
<a href="https://github.com/scalameta/metals/pull/7217" target="_blank" rel="noopener noreferrer" class="">#7217</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">build(deps): Update metaconfig-core from 0.14.0 to 0.15.0
<a href="https://github.com/scalameta/metals/pull/7215" target="_blank" rel="noopener noreferrer" class="">#7215</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">fix: suport show decompiled and show tasty for Bazel (build target cl…
<a href="https://github.com/scalameta/metals/pull/7206" target="_blank" rel="noopener noreferrer" class="">#7206</a>
(<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a>)</li>
<li class="">build(deps): bump serialize-javascript from 6.0.0 to 6.0.2 in /website
<a href="https://github.com/scalameta/metals/pull/7207" target="_blank" rel="noopener noreferrer" class="">#7207</a>
(<a href="https://github.com/dependabot%5Bbot%5D" target="_blank" rel="noopener noreferrer" class="">dependabot[bot]</a>)</li>
<li class="">feature: completions inside of backticks
<a href="https://github.com/scalameta/metals/pull/7204" target="_blank" rel="noopener noreferrer" class="">#7204</a>
(<a href="https://github.com/harpocrates" target="_blank" rel="noopener noreferrer" class="">harpocrates</a>)</li>
<li class="">feature: Add location for the test failure
<a href="https://github.com/scalameta/metals/pull/7195" target="_blank" rel="noopener noreferrer" class="">#7195</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">bugfix: Calculate indent and insert position before retrying infering…
<a href="https://github.com/scalameta/metals/pull/7203" target="_blank" rel="noopener noreferrer" class="">#7203</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">chore: Check name when renaming
<a href="https://github.com/scalameta/metals/pull/7199" target="_blank" rel="noopener noreferrer" class="">#7199</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">improvement: deduplicate compile requests
<a href="https://github.com/scalameta/metals/pull/7006" target="_blank" rel="noopener noreferrer" class="">#7006</a>
(<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a>)</li>
<li class="">bugfix: don't prefix scope completions from supertype
<a href="https://github.com/scalameta/metals/pull/7201" target="_blank" rel="noopener noreferrer" class="">#7201</a>
(<a href="https://github.com/harpocrates" target="_blank" rel="noopener noreferrer" class="">harpocrates</a>)</li>
<li class="">bugfix: don't propose inaccessible named arg defaults
<a href="https://github.com/scalameta/metals/pull/7202" target="_blank" rel="noopener noreferrer" class="">#7202</a>
(<a href="https://github.com/harpocrates" target="_blank" rel="noopener noreferrer" class="">harpocrates</a>)</li>
<li class="">chore: Test Metals on JDK 21
<a href="https://github.com/scalameta/metals/pull/7163" target="_blank" rel="noopener noreferrer" class="">#7163</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">chore: Update mergify to use newest jobs
<a href="https://github.com/scalameta/metals/pull/7198" target="_blank" rel="noopener noreferrer" class="">#7198</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">build(deps): Update flyway-core from 11.3.0 to 11.3.1
<a href="https://github.com/scalameta/metals/pull/7197" target="_blank" rel="noopener noreferrer" class="">#7197</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">improvement: improve definition reports
<a href="https://github.com/scalameta/metals/pull/7192" target="_blank" rel="noopener noreferrer" class="">#7192</a>
(<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a>)</li>
<li class="">Special handling for Mill paths in ScalaVersionSelector
<a href="https://github.com/scalameta/metals/pull/7193" target="_blank" rel="noopener noreferrer" class="">#7193</a>
(<a href="https://github.com/lolgab" target="_blank" rel="noopener noreferrer" class="">lolgab</a>)</li>
<li class="">chore: Retry BreakpointScalaCliDapSuite
<a href="https://github.com/scalameta/metals/pull/7173" target="_blank" rel="noopener noreferrer" class="">#7173</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">chore: Fix issue with flakiness properly
<a href="https://github.com/scalameta/metals/pull/7194" target="_blank" rel="noopener noreferrer" class="">#7194</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">support testing on Scala 2 PR validation snapshots
<a href="https://github.com/scalameta/metals/pull/7190" target="_blank" rel="noopener noreferrer" class="">#7190</a>
(<a href="https://github.com/SethTisue" target="_blank" rel="noopener noreferrer" class="">SethTisue</a>)</li>
<li class="">improvement: add file location also to stacktrace printed to stdout
<a href="https://github.com/scalameta/metals/pull/7174" target="_blank" rel="noopener noreferrer" class="">#7174</a>
(<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a>)</li>
<li class="">bugfix: Don't fail on broken pipe
<a href="https://github.com/scalameta/metals/pull/7189" target="_blank" rel="noopener noreferrer" class="">#7189</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">bugfix: Filter out cache directories containing null
<a href="https://github.com/scalameta/metals/pull/7175" target="_blank" rel="noopener noreferrer" class="">#7175</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">bugfix: completion in args in generic method w/ default args
<a href="https://github.com/scalameta/metals/pull/7182" target="_blank" rel="noopener noreferrer" class="">#7182</a>
(<a href="https://github.com/harpocrates" target="_blank" rel="noopener noreferrer" class="">harpocrates</a>)</li>
<li class="">fix: don't change focused file on <code>didOpen</code> if client is a <code>didFocusProvider</code>
<a href="https://github.com/scalameta/metals/pull/7145" target="_blank" rel="noopener noreferrer" class="">#7145</a>
(<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a>)</li>
<li class="">fix: regenerate mill on incorrect version
<a href="https://github.com/scalameta/metals/pull/7171" target="_blank" rel="noopener noreferrer" class="">#7171</a>
(<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a>)</li>
<li class="">build(deps): Update mdoc-interfaces from 2.6.2 to 2.6.3
<a href="https://github.com/scalameta/metals/pull/7186" target="_blank" rel="noopener noreferrer" class="">#7186</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update org.eclipse.lsp4j, ... from 0.23.1 to 0.24.0
<a href="https://github.com/scalameta/metals/pull/7185" target="_blank" rel="noopener noreferrer" class="">#7185</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update mill-contrib-testng from 0.12.5 to 0.12.7
<a href="https://github.com/scalameta/metals/pull/7184" target="_blank" rel="noopener noreferrer" class="">#7184</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">chore: Bump all docusaurus deps
<a href="https://github.com/scalameta/metals/pull/7183" target="_blank" rel="noopener noreferrer" class="">#7183</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">build(deps-dev): bump @types/node from 22.10.3 to 22.13.0 in /website
<a href="https://github.com/scalameta/metals/pull/7178" target="_blank" rel="noopener noreferrer" class="">#7178</a>
(<a href="https://github.com/dependabot%5Bbot%5D" target="_blank" rel="noopener noreferrer" class="">dependabot[bot]</a>)</li>
<li class="">Convert sbt style deps on paste in for scala-cli
<a href="https://github.com/scalameta/metals/pull/7176" target="_blank" rel="noopener noreferrer" class="">#7176</a>
(<a href="https://github.com/majk-p" target="_blank" rel="noopener noreferrer" class="">majk-p</a>)</li>
<li class="">build(deps): bump @docusaurus/plugin-client-redirects from 3.6.3 to 3.7.0 in
/website <a href="https://github.com/scalameta/metals/pull/7181" target="_blank" rel="noopener noreferrer" class="">#7181</a>
(<a href="https://github.com/dependabot%5Bbot%5D" target="_blank" rel="noopener noreferrer" class="">dependabot[bot]</a>)</li>
<li class="">chore: Don't fail supported tests in case of sonatype issues
<a href="https://github.com/scalameta/metals/pull/7172" target="_blank" rel="noopener noreferrer" class="">#7172</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">improvement: convert workspace folder to be a Metals project on chosen
commands <a href="https://github.com/scalameta/metals/pull/7135" target="_blank" rel="noopener noreferrer" class="">#7135</a>
(<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a>)</li>
<li class="">build(deps): Update flyway-core from 11.2.0 to 11.3.0
<a href="https://github.com/scalameta/metals/pull/7167" target="_blank" rel="noopener noreferrer" class="">#7167</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">bugfix: Fix cross tests
<a href="https://github.com/scalameta/metals/pull/7165" target="_blank" rel="noopener noreferrer" class="">#7165</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">bugfix: Infer arg type properly when complex
<a href="https://github.com/scalameta/metals/pull/7158" target="_blank" rel="noopener noreferrer" class="">#7158</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">bugfix: Fix when types are coming from package objects
<a href="https://github.com/scalameta/metals/pull/7162" target="_blank" rel="noopener noreferrer" class="">#7162</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">bugfix: Properly print method type
<a href="https://github.com/scalameta/metals/pull/7160" target="_blank" rel="noopener noreferrer" class="">#7160</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">bugfix: fix <code>typeDefinition</code> on backticked identifier
<a href="https://github.com/scalameta/metals/pull/7119" target="_blank" rel="noopener noreferrer" class="">#7119</a>
(<a href="https://github.com/harpocrates" target="_blank" rel="noopener noreferrer" class="">harpocrates</a>)</li>
<li class="">docs: Adjust documentation to make it clearer on how to use snapshots
<a href="https://github.com/scalameta/metals/pull/7103" target="_blank" rel="noopener noreferrer" class="">#7103</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">bugfix: Also infer type with complex expressions before
<a href="https://github.com/scalameta/metals/pull/7159" target="_blank" rel="noopener noreferrer" class="">#7159</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">Fix extracting values for fewer braces
<a href="https://github.com/scalameta/metals/pull/7164" target="_blank" rel="noopener noreferrer" class="">#7164</a>
(<a href="https://github.com/majk-p" target="_blank" rel="noopener noreferrer" class="">majk-p</a>)</li>
<li class="">build(deps): Update scala3-library from 3.3.4 to 3.3.5
<a href="https://github.com/scalameta/metals/pull/7169" target="_blank" rel="noopener noreferrer" class="">#7169</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">chore: Bump scalameta to 4.12.5
<a href="https://github.com/scalameta/metals/pull/7114" target="_blank" rel="noopener noreferrer" class="">#7114</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">docs: release notes for 1.5.1
<a href="https://github.com/scalameta/metals/pull/7156" target="_blank" rel="noopener noreferrer" class="">#7156</a>
(<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a>)</li>
</ul>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Metals v1.5.1 - Strontium]]></title>
            <link>http://scalameta.org/metals/blog/2025/01/24/strontium</link>
            <guid>http://scalameta.org/metals/blog/2025/01/24/strontium</guid>
            <pubDate>Fri, 24 Jan 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[We're happy to announce the release of Metals v1.5.1, which brings a hotfix for go to definition error reporting.]]></description>
            <content:encoded><![CDATA[<p>We're happy to announce the release of Metals v1.5.1, which brings a hotfix for go to definition error reporting.</p>
<table><tbody><tr><td>Commits since last release</td><td align="center">12</td></tr><tr><td>Merged PRs</td><td align="center">9</td></tr><tr><td>Contributors</td><td align="center">6</td></tr><tr><td>Closed issues</td><td align="center">4</td></tr><tr><td>New features</td><td align="center">0</td></tr></tbody></table>
<p>For full details: <a href="https://github.com/scalameta/metals/milestone/76?closed=1" target="_blank" rel="noopener noreferrer" class="">https://github.com/scalameta/metals/milestone/76?closed=1</a></p>
<p>Metals is a language server for Scala that works with VS Code, Vim, Emacs, Zed,
Helix and Sublime Text. Metals is developed at the
<a href="https://scala.epfl.ch/" target="_blank" rel="noopener noreferrer" class="">Scala Center</a> and <a href="https://virtuslab.com/" target="_blank" rel="noopener noreferrer" class="">VirtusLab</a>
with the help from contributors from the community.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="tldr">TL;DR<a href="http://scalameta.org/metals/blog/2025/01/24/strontium#tldr" class="hash-link" aria-label="Direct link to TL;DR" title="Direct link to TL;DR" translate="no">​</a></h2>
<p>Check out <a href="https://scalameta.org/metals/" target="_blank" rel="noopener noreferrer" class="">https://scalameta.org/metals/</a>, and
give Metals a try!</p>
<ul>
<li class=""><a href="http://scalameta.org/metals/blog/2025/01/24/strontium#create-an-error-report-only-on-empty-definition" class="">Create an error report only on an empty definition</a></li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="create-an-error-report-only-on-an-empty-definition">Create an error report only on an empty definition<a href="http://scalameta.org/metals/blog/2025/01/24/strontium#create-an-error-report-only-on-an-empty-definition" class="hash-link" aria-label="Direct link to Create an error report only on an empty definition" title="Direct link to Create an error report only on an empty definition" translate="no">​</a></h2>
<p>Fix for a bug, where an error report would be created always on go to definition action.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="miscellaneous">Miscellaneous<a href="http://scalameta.org/metals/blog/2025/01/24/strontium#miscellaneous" class="hash-link" aria-label="Direct link to Miscellaneous" title="Direct link to Miscellaneous" translate="no">​</a></h2>
<ul>
<li class="">improvement: Don't fail on creating short type (Scala 2) <a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a></li>
<li class="">improvement: Default to empty object if no metals section <a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a></li>
<li class="">improvement: Use only current source tree for searching for local symbols in pc (Scala 3) <a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a></li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="contributors">Contributors<a href="http://scalameta.org/metals/blog/2025/01/24/strontium#contributors" class="hash-link" aria-label="Direct link to Contributors" title="Direct link to Contributors" translate="no">​</a></h2>
<p>Big thanks to everybody who contributed to this release or reported an issue!</p>
<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#bfc7d5;--prism-background-color:#292d3e"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#bfc7d5;background-color:#292d3e"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#bfc7d5"><span class="token plain">$ git shortlog -sn --no-merges v1.5.0..v1.5.1</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">     5	kasiaMarek</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">     2	Scalameta Bot</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">     3	Tomasz Godzik</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">     1	Katarzyna Marek</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">     1	dependabot[bot]</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">     1	tgodzik</span><br></div></code></pre></div></div>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="merged-prs">Merged PRs<a href="http://scalameta.org/metals/blog/2025/01/24/strontium#merged-prs" class="hash-link" aria-label="Direct link to Merged PRs" title="Direct link to Merged PRs" translate="no">​</a></h2>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="v151-2025-01-24"><a href="https://github.com/scalameta/metals/tree/v1.5.1" target="_blank" rel="noopener noreferrer" class="">v1.5.1</a> (2025-01-24)<a href="http://scalameta.org/metals/blog/2025/01/24/strontium#v151-2025-01-24" class="hash-link" aria-label="Direct link to v151-2025-01-24" title="Direct link to v151-2025-01-24" translate="no">​</a></h2>
<p><a href="https://github.com/scalameta/metals/compare/v1.5.0...v1.5.1" target="_blank" rel="noopener noreferrer" class="">Full Changelog</a></p>
<p><strong>Merged pull requests:</strong></p>
<ul>
<li class="">fix: report error only on an empty definition
<a href="https://github.com/scalameta/metals/pull/7155" target="_blank" rel="noopener noreferrer" class="">#7155</a>
(<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a>)</li>
<li class="">build(deps): Update cli_3, scala-cli-bsp from 1.5.4 to 1.6.1
<a href="https://github.com/scalameta/metals/pull/7154" target="_blank" rel="noopener noreferrer" class="">#7154</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update scalafmt-core from 3.8.5 to 3.8.6
<a href="https://github.com/scalameta/metals/pull/7152" target="_blank" rel="noopener noreferrer" class="">#7152</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">bugfix: Start http server earlier
<a href="https://github.com/scalameta/metals/pull/7084" target="_blank" rel="noopener noreferrer" class="">#7084</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">improvement: don't fail on <code>shortType</code>
<a href="https://github.com/scalameta/metals/pull/7148" target="_blank" rel="noopener noreferrer" class="">#7148</a>
(<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a>)</li>
<li class="">improvement: Default to empty object if no metals section
<a href="https://github.com/scalameta/metals/pull/7150" target="_blank" rel="noopener noreferrer" class="">#7150</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">improvement: look for definition in pc only for local symbols in the current tree
<a href="https://github.com/scalameta/metals/pull/7105" target="_blank" rel="noopener noreferrer" class="">#7105</a>
(<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a>)</li>
<li class="">build(deps): bump undici from 6.19.8 to 6.21.1 in /website
<a href="https://github.com/scalameta/metals/pull/7147" target="_blank" rel="noopener noreferrer" class="">#7147</a>
(<a href="https://github.com/dependabot%5Bbot%5D" target="_blank" rel="noopener noreferrer" class="">dependabot[bot]</a>)</li>
<li class="">docs: release notes for Metals 1.5.0
<a href="https://github.com/scalameta/metals/pull/7124" target="_blank" rel="noopener noreferrer" class="">#7124</a>
(<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a>)</li>
</ul>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Metals v1.5.0 - Strontium]]></title>
            <link>http://scalameta.org/metals/blog/2025/01/22/strontium</link>
            <guid>http://scalameta.org/metals/blog/2025/01/22/strontium</guid>
            <pubDate>Wed, 22 Jan 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[We're happy to announce the release of Metals v1.5.0, which brings an array of bugfixes and improvements as we keep working on Metals stability.]]></description>
            <content:encoded><![CDATA[<p>We're happy to announce the release of Metals v1.5.0, which brings an array of bugfixes and improvements as we keep working on Metals stability.</p>
<table><tbody><tr><td>Commits since last release</td><td align="center">85</td></tr><tr><td>Merged PRs</td><td align="center">61</td></tr><tr><td>Contributors</td><td align="center">11</td></tr><tr><td>Closed issues</td><td align="center">18</td></tr><tr><td>New features</td><td align="center">2</td></tr></tbody></table>
<p>For full details: <a href="https://github.com/scalameta/metals/milestone/75?closed=1" target="_blank" rel="noopener noreferrer" class="">https://github.com/scalameta/metals/milestone/75?closed=1</a></p>
<p>Metals is a language server for Scala that works with VS Code, Vim, Emacs, Zed,
Helix and Sublime Text. Metals is developed at the
<a href="https://scala.epfl.ch/" target="_blank" rel="noopener noreferrer" class="">Scala Center</a> and <a href="https://virtuslab.com/" target="_blank" rel="noopener noreferrer" class="">VirtusLab</a>
with the help from contributors from the community.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="tldr">TL;DR<a href="http://scalameta.org/metals/blog/2025/01/22/strontium#tldr" class="hash-link" aria-label="Direct link to TL;DR" title="Direct link to TL;DR" translate="no">​</a></h2>
<ul>
<li class=""><a href="http://scalameta.org/metals/blog/2025/01/22/strontium#support-for-2.13.16" class="">Support for 2.13.16</a></li>
<li class=""><a href="http://scalameta.org/metals/blog/2025/01/22/strontium#fix-for-Metals-stopped-compiling-bug" class="">Fix for Metals stopped compiling bug</a></li>
<li class=""><a class="" href="http://scalameta.org/metals/blog/2025/01/22/error-reports-improvements">Error reports improvements</a></li>
<li class=""><a class="" href="http://scalameta.org/metals/blog/2025/01/22/inlay-hints-for-worksheets">Inlay hints for worksheets</a></li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="support-for-21316">Support for 2.13.16<a href="http://scalameta.org/metals/blog/2025/01/22/strontium#support-for-21316" class="hash-link" aria-label="Direct link to Support for 2.13.16" title="Direct link to Support for 2.13.16" translate="no">​</a></h2>
<p>With the new release comes support for Scala 2.13.16. You can read release highlighs in [the Scala 2.13.16 release notes] <a href="https://github.com/scala/scala/releases/tag/v2.13.16" target="_blank" rel="noopener noreferrer" class="">the Scala 2.13.16 release notes</a>.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="fix-for-metals-stopped-compiling-bug">Fix for Metals stopped compiling bug<a href="http://scalameta.org/metals/blog/2025/01/22/strontium#fix-for-metals-stopped-compiling-bug" class="hash-link" aria-label="Direct link to Fix for Metals stopped compiling bug" title="Direct link to Fix for Metals stopped compiling bug" translate="no">​</a></h2>
<p>Previous versions of Metals could sometimes stop compiling the code and fail to report any new errors. This bug was related to a feature, where Metals would pause compilation when focusing out of editor Window. The feature was removed completely, since there was little benefit from it and it was tricky to make it work. If you experienced this bug or a similar one, let us know if this release fixes in for you. Thanks go to <a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a> for debugging this issue.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="error-reports-improvements">Error reports improvements<a href="http://scalameta.org/metals/blog/2025/01/22/strontium#error-reports-improvements" class="hash-link" aria-label="Direct link to Error reports improvements" title="Direct link to Error reports improvements" translate="no">​</a></h2>
<p>In one of the previous versions of Metals we added mechanisms to save error reports under <code>.metals/.reports</code>. In case an error was more prominent it could create a large number of duplicate reports.</p>
<p>Now, the reports will be deduplicated properly and the information about created ones will be logged to improve their visibility. As previously, full list of generated reports is visible in the Metals doctor and the <code>.metals/.reports</code> directory.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="inlay-hints-for-worksheets">Inlay hints for worksheets<a href="http://scalameta.org/metals/blog/2025/01/22/strontium#inlay-hints-for-worksheets" class="hash-link" aria-label="Direct link to Inlay hints for worksheets" title="Direct link to Inlay hints for worksheets" translate="no">​</a></h2>
<p>Starting from this release, worksheet decorations will be displayed using inlay hints instead of the previous custom solution. This will make worksheet support available for editors that don't implement this extension (e.g. Zed). Thanks <a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a> for implementing this transition.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="miscellaneous">Miscellaneous<a href="http://scalameta.org/metals/blog/2025/01/22/strontium#miscellaneous" class="hash-link" aria-label="Direct link to Miscellaneous" title="Direct link to Miscellaneous" translate="no">​</a></h2>
<ul>
<li class="">bugfix: correctly set <code>excludedPackages</code> on startup <a href="https://github.com/harpocrates" target="_blank" rel="noopener noreferrer" class="">harpocrates</a></li>
<li class="">bugfix: don't show incorrect docs for inner methods <a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a></li>
<li class="">bugfix: add support for <code>-native</code> suffix in .mill-version <a href="https://github.com/lolgab" target="_blank" rel="noopener noreferrer" class="">lolgab</a></li>
<li class="">improvement: add <code>$</code> as a trigger character for completions <a href="https://github.com/harpocrates" target="_blank" rel="noopener noreferrer" class="">harpocrates</a></li>
<li class="">bugfix: completion of args in method w/ default args <a href="https://github.com/harpocrates" target="_blank" rel="noopener noreferrer" class="">harpocrates</a></li>
<li class="">bugfix: syntax for worksheet imports <a href="https://github.com/btrachey" target="_blank" rel="noopener noreferrer" class="">btrachey</a></li>
<li class="">bugfix: workaround for hover for multi declaraction in Scala 3 <a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a></li>
<li class="">bugfix: make inlay hint resolve not dependant on <code>didFocus</code>, which is a part of Metals custom protocol and not supported by all editors <a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a></li>
<li class="">improvement: make folding regions more consistent and allow for custom setting of folding threshold <a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a></li>
<li class="">improvement: handle incorrect <code>scalafmtConfigPath</code> gracefully <a href="https://github.com/Austinito" target="_blank" rel="noopener noreferrer" class="">Austinito</a></li>
<li class="">improvement: if no mode chosen by the client, use <code>log</code> for bsp status by default <a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a></li>
<li class="">bugfix: skip <code>using</code> directives for auto import position when missing newline <a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a></li>
<li class="">improvement: use presentation compiler as first strategy for go to definition <a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a></li>
<li class="">feature: infer base package for package ralated functionalities <a href="https://github.com/harpocrates" target="_blank" rel="noopener noreferrer" class="">harpocrates</a></li>
<li class="">feature: add switch build server button to <code>Build Commands</code> section <a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a></li>
<li class="">improvement: suggest bsp switch if bloopInstall fails <a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a></li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="contributors">Contributors<a href="http://scalameta.org/metals/blog/2025/01/22/strontium#contributors" class="hash-link" aria-label="Direct link to Contributors" title="Direct link to Contributors" translate="no">​</a></h2>
<p>Big thanks to everybody who contributed to this release or reported an issue!</p>
<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#bfc7d5;--prism-background-color:#292d3e"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#bfc7d5;background-color:#292d3e"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#bfc7d5"><span class="token plain">$ git shortlog -sn --no-merges v1.4.2..v1.5.0</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">    31	Tomasz Godzik</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">    26	Scalameta Bot</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">    16	kasiaMarek</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">     4	Alec Theriault</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">     2	Austinito</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">     1	Adrien Piquerez</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">     1	Anton Sviridov</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">     1	Brian Tracey</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">     1	Lorenzo Gabriele</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">     1	Timothy John Perisho Eccleston</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">     1	dependabot[bot]</span><br></div></code></pre></div></div>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="merged-prs">Merged PRs<a href="http://scalameta.org/metals/blog/2025/01/22/strontium#merged-prs" class="hash-link" aria-label="Direct link to Merged PRs" title="Direct link to Merged PRs" translate="no">​</a></h2>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="v150-2025-01-22"><a href="https://github.com/scalameta/metals/tree/v1.5.0" target="_blank" rel="noopener noreferrer" class="">v1.5.0</a> (2025-01-22)<a href="http://scalameta.org/metals/blog/2025/01/22/strontium#v150-2025-01-22" class="hash-link" aria-label="Direct link to v150-2025-01-22" title="Direct link to v150-2025-01-22" translate="no">​</a></h2>
<p><a href="https://github.com/scalameta/metals/compare/v1.4.2...v1.5.0" target="_blank" rel="noopener noreferrer" class="">Full Changelog</a></p>
<p><strong>Merged pull requests:</strong></p>
<ul>
<li class="">chore: Update Bloop to 2.0.8
<a href="https://github.com/scalameta/metals/pull/7144" target="_blank" rel="noopener noreferrer" class="">#7144</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">typo in vscode.md
<a href="https://github.com/scalameta/metals/pull/7146" target="_blank" rel="noopener noreferrer" class="">#7146</a>
(<a href="https://github.com/combinatorist" target="_blank" rel="noopener noreferrer" class="">combinatorist</a>)</li>
<li class="">update scala-debug-adapter and sbt-jdi-tools
<a href="https://github.com/scalameta/metals/pull/7143" target="_blank" rel="noopener noreferrer" class="">#7143</a>
(<a href="https://github.com/adpi2" target="_blank" rel="noopener noreferrer" class="">adpi2</a>)</li>
<li class="">improvement: suggest bsp switch if bloopInstall fails + clean up sbt bloop plugins
<a href="https://github.com/scalameta/metals/pull/7125" target="_blank" rel="noopener noreferrer" class="">#7125</a>
(<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a>)</li>
<li class="">build(deps): Update scalafmt-core from 3.8.3 to 3.8.5
<a href="https://github.com/scalameta/metals/pull/7139" target="_blank" rel="noopener noreferrer" class="">#7139</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update bloop-config from 2.2.0 to 2.3.1
<a href="https://github.com/scalameta/metals/pull/7128" target="_blank" rel="noopener noreferrer" class="">#7128</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">Infer base package in <code>PackageProvider</code>
<a href="https://github.com/scalameta/metals/pull/7107" target="_blank" rel="noopener noreferrer" class="">#7107</a>
(<a href="https://github.com/harpocrates" target="_blank" rel="noopener noreferrer" class="">harpocrates</a>)</li>
<li class="">improvement: Add switch command to metals tab
<a href="https://github.com/scalameta/metals/pull/7126" target="_blank" rel="noopener noreferrer" class="">#7126</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">build(deps): Update scalafix-interfaces from 0.13.0 to 0.14.0
<a href="https://github.com/scalameta/metals/pull/7131" target="_blank" rel="noopener noreferrer" class="">#7131</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update flyway-core from 11.1.1 to 11.2.0
<a href="https://github.com/scalameta/metals/pull/7132" target="_blank" rel="noopener noreferrer" class="">#7132</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update sbt-scalafix from 0.12.1 to 0.14.0
<a href="https://github.com/scalameta/metals/pull/7130" target="_blank" rel="noopener noreferrer" class="">#7130</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">bugfix: Fix release workflow to use sbt action
<a href="https://github.com/scalameta/metals/pull/7134" target="_blank" rel="noopener noreferrer" class="">#7134</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">bugfix: Fix release and sbt dependency graph workflows
<a href="https://github.com/scalameta/metals/pull/7121" target="_blank" rel="noopener noreferrer" class="">#7121</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">chore: Update Bloop to 2.0.7
<a href="https://github.com/scalameta/metals/pull/7127" target="_blank" rel="noopener noreferrer" class="">#7127</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">improvement: use pc for go to def when stale semanticdb
<a href="https://github.com/scalameta/metals/pull/7028" target="_blank" rel="noopener noreferrer" class="">#7028</a>
(<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a>)</li>
<li class="">fix: skip using directives for auto import position when missing newline
<a href="https://github.com/scalameta/metals/pull/7094" target="_blank" rel="noopener noreferrer" class="">#7094</a>
(<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a>)</li>
<li class="">bugfix: fix incorrect <code>excludedPackages</code> on startup
<a href="https://github.com/scalameta/metals/pull/7120" target="_blank" rel="noopener noreferrer" class="">#7120</a>
(<a href="https://github.com/harpocrates" target="_blank" rel="noopener noreferrer" class="">harpocrates</a>)</li>
<li class="">fix: don't show incorrect docs for inner methods
<a href="https://github.com/scalameta/metals/pull/7096" target="_blank" rel="noopener noreferrer" class="">#7096</a>
(<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a>)</li>
<li class="">Add <code>$</code> as a trigger character
<a href="https://github.com/scalameta/metals/pull/7118" target="_blank" rel="noopener noreferrer" class="">#7118</a>
(<a href="https://github.com/harpocrates" target="_blank" rel="noopener noreferrer" class="">harpocrates</a>)</li>
<li class="">build(deps): Update scribe, scribe-file, scribe-slf4j2 from 3.15.3 to 3.16.0
<a href="https://github.com/scalameta/metals/pull/7110" target="_blank" rel="noopener noreferrer" class="">#7110</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">docs: fix syntax for worksheet imports
<a href="https://github.com/scalameta/metals/pull/7113" target="_blank" rel="noopener noreferrer" class="">#7113</a>
(<a href="https://github.com/btrachey" target="_blank" rel="noopener noreferrer" class="">btrachey</a>)</li>
<li class="">chore: Add support for Scala 2.13.16
<a href="https://github.com/scalameta/metals/pull/7106" target="_blank" rel="noopener noreferrer" class="">#7106</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">Support <code>-native</code> suffix in <code>.mill-version</code>
<a href="https://github.com/scalameta/metals/pull/7109" target="_blank" rel="noopener noreferrer" class="">#7109</a>
(<a href="https://github.com/lolgab" target="_blank" rel="noopener noreferrer" class="">lolgab</a>)</li>
<li class="">build(deps): Update munit from 1.0.3 to 1.0.4
<a href="https://github.com/scalameta/metals/pull/7111" target="_blank" rel="noopener noreferrer" class="">#7111</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update interface from 1.0.26 to 1.0.27
<a href="https://github.com/scalameta/metals/pull/7101" target="_blank" rel="noopener noreferrer" class="">#7101</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update coursier, ... from 2.1.23 to 2.1.24
<a href="https://github.com/scalameta/metals/pull/7100" target="_blank" rel="noopener noreferrer" class="">#7100</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update ujson from 4.0.2 to 4.1.0
<a href="https://github.com/scalameta/metals/pull/7099" target="_blank" rel="noopener noreferrer" class="">#7099</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update protobuf-java from 4.29.2 to 4.29.3
<a href="https://github.com/scalameta/metals/pull/7098" target="_blank" rel="noopener noreferrer" class="">#7098</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update flyway-core from 11.1.0 to 11.1.1
<a href="https://github.com/scalameta/metals/pull/7102" target="_blank" rel="noopener noreferrer" class="">#7102</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">bugfix: Remove pausing and window state monitoring
<a href="https://github.com/scalameta/metals/pull/7097" target="_blank" rel="noopener noreferrer" class="">#7097</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">bugfix: completion of args in method w/ default args
<a href="https://github.com/scalameta/metals/pull/7089" target="_blank" rel="noopener noreferrer" class="">#7089</a>
(<a href="https://github.com/harpocrates" target="_blank" rel="noopener noreferrer" class="">harpocrates</a>)</li>
<li class="">improvement: Don't sent text on didSave
<a href="https://github.com/scalameta/metals/pull/7015" target="_blank" rel="noopener noreferrer" class="">#7015</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">improvement: deduplicate reports
<a href="https://github.com/scalameta/metals/pull/7048" target="_blank" rel="noopener noreferrer" class="">#7048</a>
(<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a>)</li>
<li class="">build(deps): Update sbt-welcome from 0.4.0 to 0.5.0
<a href="https://github.com/scalameta/metals/pull/7087" target="_blank" rel="noopener noreferrer" class="">#7087</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">improvement: report QDox errors
<a href="https://github.com/scalameta/metals/pull/7051" target="_blank" rel="noopener noreferrer" class="">#7051</a>
(<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a>)</li>
<li class="">improvement: Change the warning to be less worrying to users
<a href="https://github.com/scalameta/metals/pull/7085" target="_blank" rel="noopener noreferrer" class="">#7085</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">Refactor <code>validateWorkspace</code> to handle missing custom <code>scalafmtConfigPath</code> gracefully and log warning
<a href="https://github.com/scalameta/metals/pull/7080" target="_blank" rel="noopener noreferrer" class="">#7080</a>
(<a href="https://github.com/Austinito" target="_blank" rel="noopener noreferrer" class="">Austinito</a>)</li>
<li class="">build(deps-dev): bump @types/node from 22.8.6 to 22.10.3 in /website
<a href="https://github.com/scalameta/metals/pull/7081" target="_blank" rel="noopener noreferrer" class="">#7081</a>
(<a href="https://github.com/dependabot%5Bbot%5D" target="_blank" rel="noopener noreferrer" class="">dependabot[bot]</a>)</li>
<li class="">build(deps): Update coursier, ... from 2.1.22 to 2.1.23
<a href="https://github.com/scalameta/metals/pull/7076" target="_blank" rel="noopener noreferrer" class="">#7076</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">improvement: Allow sbt BSP to run on earlier JDK
<a href="https://github.com/scalameta/metals/pull/7058" target="_blank" rel="noopener noreferrer" class="">#7058</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">build(deps): Update sbt, scripted-plugin from 1.10.6 to 1.10.7
<a href="https://github.com/scalameta/metals/pull/7068" target="_blank" rel="noopener noreferrer" class="">#7068</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update scalameta, semanticdb-metap, ... from 4.12.2 to 4.12.3
<a href="https://github.com/scalameta/metals/pull/7069" target="_blank" rel="noopener noreferrer" class="">#7069</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update scalameta, semanticdb-metap, ... from 4.12.1 to 4.12.2
<a href="https://github.com/scalameta/metals/pull/7061" target="_blank" rel="noopener noreferrer" class="">#7061</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">chore: Remove parallel collection since they are unused
<a href="https://github.com/scalameta/metals/pull/7062" target="_blank" rel="noopener noreferrer" class="">#7062</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">build(deps): Update bloop-config from 2.1.0 to 2.2.0
<a href="https://github.com/scalameta/metals/pull/7059" target="_blank" rel="noopener noreferrer" class="">#7059</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update protobuf-java from 4.29.1 to 4.29.2
<a href="https://github.com/scalameta/metals/pull/7055" target="_blank" rel="noopener noreferrer" class="">#7055</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update sbt-ci-release from 1.9.0 to 1.9.2
<a href="https://github.com/scalameta/metals/pull/7053" target="_blank" rel="noopener noreferrer" class="">#7053</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update guava from 33.3.1-jre to 33.4.0-jre
<a href="https://github.com/scalameta/metals/pull/7054" target="_blank" rel="noopener noreferrer" class="">#7054</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">bugfix: Log message by default
<a href="https://github.com/scalameta/metals/pull/7052" target="_blank" rel="noopener noreferrer" class="">#7052</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">build(deps): Update coursier, ... from 2.1.21 to 2.1.22
<a href="https://github.com/scalameta/metals/pull/7057" target="_blank" rel="noopener noreferrer" class="">#7057</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">fix: scala 2 additional checks
<a href="https://github.com/scalameta/metals/pull/7039" target="_blank" rel="noopener noreferrer" class="">#7039</a>
(<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a>)</li>
<li class="">Cross-build sbt-metals for sbt2
<a href="https://github.com/scalameta/metals/pull/7045" target="_blank" rel="noopener noreferrer" class="">#7045</a>
(<a href="https://github.com/keynmol" target="_blank" rel="noopener noreferrer" class="">keynmol</a>)</li>
<li class="">fix: workaround for hover for multi declaraction (Scala 3)
<a href="https://github.com/scalameta/metals/pull/7037" target="_blank" rel="noopener noreferrer" class="">#7037</a>
(<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a>)</li>
<li class="">bugfix: Fix Metals for 2.13.16
<a href="https://github.com/scalameta/metals/pull/7047" target="_blank" rel="noopener noreferrer" class="">#7047</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">improvement: Use inlay hints for worksheets
<a href="https://github.com/scalameta/metals/pull/6827" target="_blank" rel="noopener noreferrer" class="">#6827</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">chore: Fix author link after recent changes
<a href="https://github.com/scalameta/metals/pull/7043" target="_blank" rel="noopener noreferrer" class="">#7043</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">docs: Add release notes for Metals 1.4.2
<a href="https://github.com/scalameta/metals/pull/7030" target="_blank" rel="noopener noreferrer" class="">#7030</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">build(deps): Update giter8 from 0.16.2 to 0.17.0
<a href="https://github.com/scalameta/metals/pull/7033" target="_blank" rel="noopener noreferrer" class="">#7033</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update scribe, scribe-file, scribe-slf4j2 from 3.15.2 to 3.15.3
<a href="https://github.com/scalameta/metals/pull/7032" target="_blank" rel="noopener noreferrer" class="">#7032</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">improvement: thresholds for folding regions
<a href="https://github.com/scalameta/metals/pull/7013" target="_blank" rel="noopener noreferrer" class="">#7013</a>
(<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a>)</li>
<li class="">improvement: make <code>inlayHints/resolve</code> not depend on focused document
<a href="https://github.com/scalameta/metals/pull/7016" target="_blank" rel="noopener noreferrer" class="">#7016</a>
(<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a>)</li>
</ul>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Metals v1.4.2 - Palladium]]></title>
            <link>http://scalameta.org/metals/blog/2024/12/16/palladium</link>
            <guid>http://scalameta.org/metals/blog/2024/12/16/palladium</guid>
            <pubDate>Mon, 16 Dec 2024 00:00:00 GMT</pubDate>
            <description><![CDATA[We're happy to announce the release of Metals v1.4.2, which yet again focuses on]]></description>
            <content:encoded><![CDATA[<p>We're happy to announce the release of Metals v1.4.2, which yet again focuses on
stability, but thanks to our contributors we also have a new code action.</p>
<table><tbody><tr><td>Commits since last release</td><td align="center">93</td></tr><tr><td>Merged PRs</td><td align="center">71</td></tr><tr><td>Contributors</td><td align="center">13</td></tr><tr><td>Closed issues</td><td align="center">17</td></tr><tr><td>New features</td><td align="center">1</td></tr></tbody></table>
<p>For full details:
<a href="https://github.com/scalameta/metals/milestone/74?closed=1" target="_blank" rel="noopener noreferrer" class="">https://github.com/scalameta/metals/milestone/74?closed=1</a></p>
<p>Metals is a language server for Scala that works with VS Code, Vim, Emacs, Zed,
Helix and Sublime Text. Metals is developed at the
<a href="https://scala.epfl.ch/" target="_blank" rel="noopener noreferrer" class="">Scala Center</a> and <a href="https://virtuslab.com/" target="_blank" rel="noopener noreferrer" class="">VirtusLab</a>
with the help from contributors from the community.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="tldr">TL;DR<a href="http://scalameta.org/metals/blog/2024/12/16/palladium#tldr" class="hash-link" aria-label="Direct link to TL;DR" title="Direct link to TL;DR" translate="no">​</a></h2>
<p>Check out <a href="https://scalameta.org/metals/" target="_blank" rel="noopener noreferrer" class="">https://scalameta.org/metals/</a>, and
give Metals a try!</p>
<ul>
<li class=""><a href="http://scalameta.org/metals/blog/2024/12/16/palladium#infer-method-code-action" class="">Infer method code action</a></li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="infer-method-code-action">Infer method code action<a href="http://scalameta.org/metals/blog/2024/12/16/palladium#infer-method-code-action" class="hash-link" aria-label="Direct link to Infer method code action" title="Direct link to Infer method code action" translate="no">​</a></h2>
<p>Thanks to great work by <a href="https://github.com/ag91" target="_blank" rel="noopener noreferrer" class="">ag91</a> it's now possible to ask
Metals to infer a method definition based on it's usage when symbol was not
found.</p>
<p>This works similar to the "Create new symbol" code action which would create a
new Scala file with the added symbol. Now, for anything starting with a lower
case we offer to create a method instead.</p>
<p>This will work both when the symbol is used as a parameter:</p>
<p><img decoding="async" loading="lazy" src="https://raw.githubusercontent.com/scalameta/gh-pages-images/main/metals/2024-12-16-palladium/9fWQ3Yg.gif" alt="first-example" class="img_ev3q"></p>
<p>as well as a standalone function call:</p>
<p><img decoding="async" loading="lazy" src="https://raw.githubusercontent.com/scalameta/gh-pages-images/main/metals/2024-12-16-palladium/gizIjBB.gif" alt="second-example" class="img_ev3q"></p>
<p>The feature has only been implemented for Scala 2 for the time being and there
might be still some unsupported cases.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="contributors">Contributors<a href="http://scalameta.org/metals/blog/2024/12/16/palladium#contributors" class="hash-link" aria-label="Direct link to Contributors" title="Direct link to Contributors" translate="no">​</a></h2>
<p>Big thanks to everybody who contributed to this release or reported an issue!</p>
<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#bfc7d5;--prism-background-color:#292d3e"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#bfc7d5;background-color:#292d3e"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#bfc7d5"><span class="token plain">$ git shortlog -sn --no-merges v1.4.1..v1.4.2</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">    30	Tomasz Godzik</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">    29	Scalameta Bot</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">    10	Andrea</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">     7	dependabot[bot]</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">     3	Francesco Nero</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">     3	kasiaMarek</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">     3	scarf</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">     2	Jean-Luc Deprez</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">     2	Katarzyna Marek</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">     1	Ruby Iris Juric</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">     1	nocontribute</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">     1	rochala</span><br></div></code></pre></div></div>
<h1>Miscellaneous</h1>
<ul>
<li class="">bugfix: Check if inlay hints refresh is enabled
<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a></li>
<li class="">bugfix: Show implicit chained calls in inlay hints
<a href="https://github.com/francesconero" target="_blank" rel="noopener noreferrer" class="">francesconero</a></li>
<li class="">bugfix: Don't set empty edits - fixes code actions for Zed
<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a></li>
<li class="">bugfix: Respect customProjectRoot in BspConnector
<a href="https://github.com/spangaer" target="_blank" rel="noopener noreferrer" class="">spangaer</a></li>
<li class="">improvement: Change default StatusBarState to LogMessage
<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a></li>
<li class="">bugfix: Fix issue when anonymous function name would be added as prefix
<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a></li>
<li class="">bugfix: Presentation Compiler is now loaded with correct classloader
<a href="https://github.com/rochala" target="_blank" rel="noopener noreferrer" class="">rochala</a></li>
<li class="">improvement: if no binary version in jar path try using build target info
<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a></li>
<li class="">fix: don't look for overshadow conflicts for symbols not in the scope
<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a></li>
<li class="">improvement: Make including detail in completion label configurable
<a href="https://github.com/Sorixelle" target="_blank" rel="noopener noreferrer" class="">Sorixelle</a></li>
<li class="">fix: use alternative definition with stripped synthetic <code>filename$package.</code>
<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a></li>
<li class="">improvement: by default support <code>scala-cli</code> power options
<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a></li>
<li class="">bugfix: Update Bloop to 2.0.6 to fix importing build when using pipeling in
sbt <a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a></li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="merged-prs">Merged PRs<a href="http://scalameta.org/metals/blog/2024/12/16/palladium#merged-prs" class="hash-link" aria-label="Direct link to Merged PRs" title="Direct link to Merged PRs" translate="no">​</a></h2>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="v142-2024-12-13"><a href="https://github.com/scalameta/metals/tree/v1.4.2" target="_blank" rel="noopener noreferrer" class="">v1.4.2</a> (2024-12-13)<a href="http://scalameta.org/metals/blog/2024/12/16/palladium#v142-2024-12-13" class="hash-link" aria-label="Direct link to v142-2024-12-13" title="Direct link to v142-2024-12-13" translate="no">​</a></h2>
<p><a href="https://github.com/scalameta/metals/compare/v1.4.1...v1.4.2" target="_blank" rel="noopener noreferrer" class="">Full Changelog</a></p>
<p><strong>Merged pull requests:</strong></p>
<ul>
<li class="">chore: Update Bloop to 2.0.6
<a href="https://github.com/scalameta/metals/pull/7029" target="_blank" rel="noopener noreferrer" class="">#7029</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">build(deps): Update coursier, ... from 2.1.20 to 2.1.21
<a href="https://github.com/scalameta/metals/pull/7022" target="_blank" rel="noopener noreferrer" class="">#7022</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): bump nanoid from 3.3.7 to 3.3.8 in /website
<a href="https://github.com/scalameta/metals/pull/7020" target="_blank" rel="noopener noreferrer" class="">#7020</a>
(<a href="https://github.com/dependabot%5Bbot%5D" target="_blank" rel="noopener noreferrer" class="">dependabot[bot]</a>)</li>
<li class="">build(deps): Update mdoc-interfaces from 2.6.1 to 2.6.2
<a href="https://github.com/scalameta/metals/pull/7024" target="_blank" rel="noopener noreferrer" class="">#7024</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update flyway-core from 11.0.1 to 11.1.0
<a href="https://github.com/scalameta/metals/pull/7023" target="_blank" rel="noopener noreferrer" class="">#7023</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update metaconfig-core from 0.13.0 to 0.14.0
<a href="https://github.com/scalameta/metals/pull/7025" target="_blank" rel="noopener noreferrer" class="">#7025</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update scalameta, semanticdb-metap, ... from 4.12.0 to 4.12.1
<a href="https://github.com/scalameta/metals/pull/7026" target="_blank" rel="noopener noreferrer" class="">#7026</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">improvement: by default support <code>scala-cli</code> power options
<a href="https://github.com/scalameta/metals/pull/7017" target="_blank" rel="noopener noreferrer" class="">#7017</a>
(<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a>)</li>
<li class="">fix: use alternative with stripped synthetic <code>filename$package.</code>
<a href="https://github.com/scalameta/metals/pull/7000" target="_blank" rel="noopener noreferrer" class="">#7000</a>
(<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a>)</li>
<li class="">build(deps): Update munit from 1.0.2 to 1.0.3
<a href="https://github.com/scalameta/metals/pull/7011" target="_blank" rel="noopener noreferrer" class="">#7011</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">debug: Log client config at the start
<a href="https://github.com/scalameta/metals/pull/7014" target="_blank" rel="noopener noreferrer" class="">#7014</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">build(deps): Update flyway-core from 11.0.0 to 11.0.1
<a href="https://github.com/scalameta/metals/pull/7010" target="_blank" rel="noopener noreferrer" class="">#7010</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update interface from 1.0.25 to 1.0.26
<a href="https://github.com/scalameta/metals/pull/7009" target="_blank" rel="noopener noreferrer" class="">#7009</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update coursier, ... from 2.1.19 to 2.1.20
<a href="https://github.com/scalameta/metals/pull/7008" target="_blank" rel="noopener noreferrer" class="">#7008</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update protobuf-java from 4.29.0 to 4.29.1
<a href="https://github.com/scalameta/metals/pull/7007" target="_blank" rel="noopener noreferrer" class="">#7007</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">improvement: Make including detail in completion label configurable
<a href="https://github.com/scalameta/metals/pull/6986" target="_blank" rel="noopener noreferrer" class="">#6986</a>
(<a href="https://github.com/Sorixelle" target="_blank" rel="noopener noreferrer" class="">Sorixelle</a>)</li>
<li class="">fix: don't look for overshadow conflicts for symbols not in the scope
<a href="https://github.com/scalameta/metals/pull/7001" target="_blank" rel="noopener noreferrer" class="">#7001</a>
(<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a>)</li>
<li class="">Presentation Compiler is now loaded with correct classloader
<a href="https://github.com/scalameta/metals/pull/7002" target="_blank" rel="noopener noreferrer" class="">#7002</a>
(<a href="https://github.com/rochala" target="_blank" rel="noopener noreferrer" class="">rochala</a>)</li>
<li class="">improvement: if no binary version in jar path try using build target info
<a href="https://github.com/scalameta/metals/pull/6698" target="_blank" rel="noopener noreferrer" class="">#6698</a>
(<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a>)</li>
<li class="">build(deps): Update qdox from 2.1.0 to 2.2.0
<a href="https://github.com/scalameta/metals/pull/6996" target="_blank" rel="noopener noreferrer" class="">#6996</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): bump @docusaurus/plugin-client-redirects from 3.6.0 to 3.6.3 in
/website <a href="https://github.com/scalameta/metals/pull/6989" target="_blank" rel="noopener noreferrer" class="">#6989</a>
(<a href="https://github.com/dependabot%5Bbot%5D" target="_blank" rel="noopener noreferrer" class="">dependabot[bot]</a>)</li>
<li class="">build(deps): Update jsoup from 1.18.2 to 1.18.3
<a href="https://github.com/scalameta/metals/pull/6997" target="_blank" rel="noopener noreferrer" class="">#6997</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update sbt, scripted-plugin from 1.10.5 to 1.10.6
<a href="https://github.com/scalameta/metals/pull/6998" target="_blank" rel="noopener noreferrer" class="">#6998</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): bump @docusaurus/core from 3.6.0 to 3.6.3 in /website
<a href="https://github.com/scalameta/metals/pull/6992" target="_blank" rel="noopener noreferrer" class="">#6992</a>
(<a href="https://github.com/dependabot%5Bbot%5D" target="_blank" rel="noopener noreferrer" class="">dependabot[bot]</a>)</li>
<li class="">build(deps): bump react-dom from 18.2.0 to 18.3.1 in /website
<a href="https://github.com/scalameta/metals/pull/6991" target="_blank" rel="noopener noreferrer" class="">#6991</a>
(<a href="https://github.com/dependabot%5Bbot%5D" target="_blank" rel="noopener noreferrer" class="">dependabot[bot]</a>)</li>
<li class="">build(deps): bump @easyops-cn/docusaurus-search-local from 0.45.0 to 0.46.1 in
/website <a href="https://github.com/scalameta/metals/pull/6990" target="_blank" rel="noopener noreferrer" class="">#6990</a>
(<a href="https://github.com/dependabot%5Bbot%5D" target="_blank" rel="noopener noreferrer" class="">dependabot[bot]</a>)</li>
<li class="">build(deps): bump @docusaurus/faster from 3.6.0 to 3.6.3 in /website
<a href="https://github.com/scalameta/metals/pull/6993" target="_blank" rel="noopener noreferrer" class="">#6993</a>
(<a href="https://github.com/dependabot%5Bbot%5D" target="_blank" rel="noopener noreferrer" class="">dependabot[bot]</a>)</li>
<li class="">build(deps): Update jsoup from 1.18.1 to 1.18.2
<a href="https://github.com/scalameta/metals/pull/6985" target="_blank" rel="noopener noreferrer" class="">#6985</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">chore: Retry flaky tests
<a href="https://github.com/scalameta/metals/pull/6987" target="_blank" rel="noopener noreferrer" class="">#6987</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">build(deps): Update interface from 1.0.24 to 1.0.25
<a href="https://github.com/scalameta/metals/pull/6984" target="_blank" rel="noopener noreferrer" class="">#6984</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update coursier, ... from 2.1.18 to 2.1.19
<a href="https://github.com/scalameta/metals/pull/6983" target="_blank" rel="noopener noreferrer" class="">#6983</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update protobuf-java from 4.28.3 to 4.29.0
<a href="https://github.com/scalameta/metals/pull/6981" target="_blank" rel="noopener noreferrer" class="">#6981</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">bugfix: Add name field to distinguish different action data
<a href="https://github.com/scalameta/metals/pull/6980" target="_blank" rel="noopener noreferrer" class="">#6980</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">tests: Await program being run in native cancel test
<a href="https://github.com/scalameta/metals/pull/6979" target="_blank" rel="noopener noreferrer" class="">#6979</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">improvement: Use codeAction/resolve for code actions
<a href="https://github.com/scalameta/metals/pull/6978" target="_blank" rel="noopener noreferrer" class="">#6978</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">bugfix: Fix issue when would be added as prefix
<a href="https://github.com/scalameta/metals/pull/6977" target="_blank" rel="noopener noreferrer" class="">#6977</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">improvement: Add toString to UserConfiguration
<a href="https://github.com/scalameta/metals/pull/6975" target="_blank" rel="noopener noreferrer" class="">#6975</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">build(deps): Update scalameta, semanticdb-metap, ... from 4.11.2 to 4.12.0
<a href="https://github.com/scalameta/metals/pull/6974" target="_blank" rel="noopener noreferrer" class="">#6974</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">bugfix: Don't send best effort flag when disabled
<a href="https://github.com/scalameta/metals/pull/6966" target="_blank" rel="noopener noreferrer" class="">#6966</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">build(deps): Update flyway-core from 10.22.0 to 11.0.0
<a href="https://github.com/scalameta/metals/pull/6973" target="_blank" rel="noopener noreferrer" class="">#6973</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">docs: use <code>authors.yml</code>
<a href="https://github.com/scalameta/metals/pull/6972" target="_blank" rel="noopener noreferrer" class="">#6972</a>
(<a href="https://github.com/scarf005" target="_blank" rel="noopener noreferrer" class="">scarf005</a>)</li>
<li class="">docs: fix broken links <a href="https://github.com/scalameta/metals/pull/6971" target="_blank" rel="noopener noreferrer" class="">#6971</a>
(<a href="https://github.com/scarf005" target="_blank" rel="noopener noreferrer" class="">scarf005</a>)</li>
<li class="">Infer method <a href="https://github.com/scalameta/metals/pull/6877" target="_blank" rel="noopener noreferrer" class="">#6877</a>
(<a href="https://github.com/ag91" target="_blank" rel="noopener noreferrer" class="">ag91</a>)</li>
<li class="">build(deps): Update coursier, ... from 2.1.17 to 2.1.18
<a href="https://github.com/scalameta/metals/pull/6961" target="_blank" rel="noopener noreferrer" class="">#6961</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">improvement: Change default StatusBarState to LogMessage
<a href="https://github.com/scalameta/metals/pull/6960" target="_blank" rel="noopener noreferrer" class="">#6960</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">build(deps): Update flyway-core from 10.21.0 to 10.22.0
<a href="https://github.com/scalameta/metals/pull/6963" target="_blank" rel="noopener noreferrer" class="">#6963</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update interface from 1.0.23 to 1.0.24
<a href="https://github.com/scalameta/metals/pull/6962" target="_blank" rel="noopener noreferrer" class="">#6962</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update scalameta, semanticdb-metap, ... from 4.11.1 to 4.11.2
<a href="https://github.com/scalameta/metals/pull/6964" target="_blank" rel="noopener noreferrer" class="">#6964</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update cli_3, scala-cli-bsp from 1.5.3 to 1.5.4
<a href="https://github.com/scalameta/metals/pull/6965" target="_blank" rel="noopener noreferrer" class="">#6965</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">bugfix #6950<!-- -->:respect<!-- --> customProjectRoot in BspConnector
<a href="https://github.com/scalameta/metals/pull/6956" target="_blank" rel="noopener noreferrer" class="">#6956</a>
(<a href="https://github.com/spangaer" target="_blank" rel="noopener noreferrer" class="">spangaer</a>)</li>
<li class="">bugfix: Try to make focused document more secure
<a href="https://github.com/scalameta/metals/pull/6959" target="_blank" rel="noopener noreferrer" class="">#6959</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">improvement: avoid atomic double touch if not needed
<a href="https://github.com/scalameta/metals/pull/6957" target="_blank" rel="noopener noreferrer" class="">#6957</a>
(<a href="https://github.com/spangaer" target="_blank" rel="noopener noreferrer" class="">spangaer</a>)</li>
<li class="">bugfix: Don't set empty edits
<a href="https://github.com/scalameta/metals/pull/6953" target="_blank" rel="noopener noreferrer" class="">#6953</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">debug: Add more debug information and cancel all current state in Com…
<a href="https://github.com/scalameta/metals/pull/6948" target="_blank" rel="noopener noreferrer" class="">#6948</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">build(deps): Update interface from 1.0.22 to 1.0.23
<a href="https://github.com/scalameta/metals/pull/6935" target="_blank" rel="noopener noreferrer" class="">#6935</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">improvement: Don't ask for cancel for main and test clases
<a href="https://github.com/scalameta/metals/pull/6946" target="_blank" rel="noopener noreferrer" class="">#6946</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">bugfix: Don't show run code lense when using Main class and worksheets
<a href="https://github.com/scalameta/metals/pull/6947" target="_blank" rel="noopener noreferrer" class="">#6947</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">build(deps): Update scalameta, semanticdb-metap, ... from 4.11.0 to 4.11.1
<a href="https://github.com/scalameta/metals/pull/6943" target="_blank" rel="noopener noreferrer" class="">#6943</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">bugfix: Add refresh inlay hints to true
<a href="https://github.com/scalameta/metals/pull/6945" target="_blank" rel="noopener noreferrer" class="">#6945</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">build(deps): Update mill-contrib-testng from 0.11.13 to 0.12.2
<a href="https://github.com/scalameta/metals/pull/6942" target="_blank" rel="noopener noreferrer" class="">#6942</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): bump cross-spawn from 7.0.3 to 7.0.5 in /website
<a href="https://github.com/scalameta/metals/pull/6941" target="_blank" rel="noopener noreferrer" class="">#6941</a>
(<a href="https://github.com/dependabot%5Bbot%5D" target="_blank" rel="noopener noreferrer" class="">dependabot[bot]</a>)</li>
<li class="">bugfix: Show implicit chained calls in inlay hints
<a href="https://github.com/scalameta/metals/pull/6929" target="_blank" rel="noopener noreferrer" class="">#6929</a>
(<a href="https://github.com/francesconero" target="_blank" rel="noopener noreferrer" class="">francesconero</a>)</li>
<li class="">bugfix: Check if inlay hints refresh is enabled
<a href="https://github.com/scalameta/metals/pull/6940" target="_blank" rel="noopener noreferrer" class="">#6940</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">chore: Fix wrongly pasted metals version
<a href="https://github.com/scalameta/metals/pull/6939" target="_blank" rel="noopener noreferrer" class="">#6939</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">docs: Add release notes for Metals 1.4.1
<a href="https://github.com/scalameta/metals/pull/6930" target="_blank" rel="noopener noreferrer" class="">#6930</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">build(deps): Update mill-contrib-testng from 0.11.9 to 0.11.13
<a href="https://github.com/scalameta/metals/pull/6934" target="_blank" rel="noopener noreferrer" class="">#6934</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update cli_3, scala-cli-bsp from 1.5.1 to 1.5.3
<a href="https://github.com/scalameta/metals/pull/6936" target="_blank" rel="noopener noreferrer" class="">#6936</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
</ul>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Metals v1.4.1 - Palladium]]></title>
            <link>http://scalameta.org/metals/blog/2024/11/15/palladium</link>
            <guid>http://scalameta.org/metals/blog/2024/11/15/palladium</guid>
            <pubDate>Fri, 15 Nov 2024 00:00:00 GMT</pubDate>
            <description><![CDATA[We're happy to announce the release of Metals v1.4.1, which focuses mostly on]]></description>
            <content:encoded><![CDATA[<p>We're happy to announce the release of Metals v1.4.1, which focuses mostly on
smaller fixes to the latest 1.4.0 release together with updating Bloop to the
latest version, which includes it's own improvements and fixes.</p>
<table><tbody><tr><td>Commits since last release</td><td align="center">37</td></tr><tr><td>Merged PRs</td><td align="center">36</td></tr><tr><td>Contributors</td><td align="center">4</td></tr><tr><td>Closed issues</td><td align="center">7</td></tr><tr><td>New features</td><td align="center">0</td></tr></tbody></table>
<p>For full details:
<a href="https://github.com/scalameta/metals/milestone/73?closed=1" target="_blank" rel="noopener noreferrer" class="">https://github.com/scalameta/metals/milestone/73?closed=1</a></p>
<p>Metals is a language server for Scala that works with VS Code, Vim, Emacs, Zed,
Helix and Sublime Text. Metals is developed at the
<a href="https://scala.epfl.ch/" target="_blank" rel="noopener noreferrer" class="">Scala Center</a> and <a href="https://virtuslab.com/" target="_blank" rel="noopener noreferrer" class="">VirtusLab</a>
with the help from contributors from the community.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="tldr">TL;DR<a href="http://scalameta.org/metals/blog/2024/11/15/palladium#tldr" class="hash-link" aria-label="Direct link to TL;DR" title="Direct link to TL;DR" translate="no">​</a></h2>
<p>Check out <a href="https://scalameta.org/metals/" target="_blank" rel="noopener noreferrer" class="">https://scalameta.org/metals/</a>, and
give Metals a try!</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="bloop-update">Bloop Update<a href="http://scalameta.org/metals/blog/2024/11/15/palladium#bloop-update" class="hash-link" aria-label="Direct link to Bloop Update" title="Direct link to Bloop Update" translate="no">​</a></h2>
<p>Newest Bloop brings two main improvements for Metals users:</p>
<ul>
<li class="">Wart Remover should now work correctly, users will need to reimport the build.</li>
<li class="">Best effort compilation issues should now be fixed and users are encouraged to
tests it out by starting Metals with <code>-Dmetals.enable-best-effort=true</code> or by
putting that property into <code>metals.serverProperties</code> in case of VS Code.</li>
</ul>
<p>You can read about a specific changes in the
<a href="https://github.com/scalacenter/bloop/releases/tag/v2.0.5" target="_blank" rel="noopener noreferrer" class="">release notes</a></p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="miscellaneous">Miscellaneous<a href="http://scalameta.org/metals/blog/2024/11/15/palladium#miscellaneous" class="hash-link" aria-label="Direct link to Miscellaneous" title="Direct link to Miscellaneous" translate="no">​</a></h2>
<ul>
<li class="">bugfix: Fix extract function not showing up
<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a></li>
<li class="">bugfix: Properly escape jar: paths on Windows
<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a></li>
<li class="">bugfix: Run by default also synthetic mains such as scripts
<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a></li>
<li class="">bugfix: Correctly check if a given config exists in scalafix.conf
<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a></li>
<li class="">improvement: Always find all references including companion objects and
classes. <a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a></li>
<li class="">bugfix: Fix pasting into multiline strings when indent would be wrong.
<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a></li>
<li class="">improvement: Don't automatically add release flag for versions from 17
<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a></li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="contributors">Contributors<a href="http://scalameta.org/metals/blog/2024/11/15/palladium#contributors" class="hash-link" aria-label="Direct link to Contributors" title="Direct link to Contributors" translate="no">​</a></h2>
<p>Big thanks to everybody who contributed to this release or reported an issue!</p>
<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#bfc7d5;--prism-background-color:#292d3e"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#bfc7d5;background-color:#292d3e"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#bfc7d5"><span class="token plain">$ git shortlog -sn --no-merges v1.4.0..v1.4.1</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">    16	Tomasz Godzik</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">    12	Scalameta Bot</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">     5	dependabot[bot]</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">     1	nguyenyou</span><br></div></code></pre></div></div>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="merged-prs">Merged PRs<a href="http://scalameta.org/metals/blog/2024/11/15/palladium#merged-prs" class="hash-link" aria-label="Direct link to Merged PRs" title="Direct link to Merged PRs" translate="no">​</a></h2>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="v141-2024-11-14"><a href="https://github.com/scalameta/metals/tree/v1.4.1" target="_blank" rel="noopener noreferrer" class="">v1.4.1</a> (2024-11-14)<a href="http://scalameta.org/metals/blog/2024/11/15/palladium#v141-2024-11-14" class="hash-link" aria-label="Direct link to v141-2024-11-14" title="Direct link to v141-2024-11-14" translate="no">​</a></h2>
<p><a href="https://github.com/scalameta/metals/compare/v1.4.0...v1.4.1" target="_blank" rel="noopener noreferrer" class="">Full Changelog</a></p>
<p><strong>Merged pull requests:</strong></p>
<ul>
<li class="">improvements: Explicitly use URI instead of string
<a href="https://github.com/scalameta/metals/pull/6933" target="_blank" rel="noopener noreferrer" class="">#6933</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">bugfix: Allow kebab case in inlay hints
<a href="https://github.com/scalameta/metals/pull/6932" target="_blank" rel="noopener noreferrer" class="">#6932</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">bugfix: Fix test for new project provider
<a href="https://github.com/scalameta/metals/pull/6931" target="_blank" rel="noopener noreferrer" class="">#6931</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">build(deps): Update sbt-buildinfo from 0.13.0 to 0.13.1
<a href="https://github.com/scalameta/metals/pull/6927" target="_blank" rel="noopener noreferrer" class="">#6927</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update coursier, ... from 2.1.16 to 2.1.17
<a href="https://github.com/scalameta/metals/pull/6928" target="_blank" rel="noopener noreferrer" class="">#6928</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">bugfix: Fix extract function not showing up
<a href="https://github.com/scalameta/metals/pull/6920" target="_blank" rel="noopener noreferrer" class="">#6920</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">chore: Only resolve jvm when running test
<a href="https://github.com/scalameta/metals/pull/6919" target="_blank" rel="noopener noreferrer" class="">#6919</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">build(deps): Update bloop-rifle from 2.0.3 to 2.0.5
<a href="https://github.com/scalameta/metals/pull/6916" target="_blank" rel="noopener noreferrer" class="">#6916</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update flyway-core from 10.20.1 to 10.21.0
<a href="https://github.com/scalameta/metals/pull/6918" target="_blank" rel="noopener noreferrer" class="">#6918</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update coursier, ... from 2.1.14 to 2.1.16
<a href="https://github.com/scalameta/metals/pull/6917" target="_blank" rel="noopener noreferrer" class="">#6917</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">docs: Upgrade Docusaurus to Version 3.6.0
<a href="https://github.com/scalameta/metals/pull/6915" target="_blank" rel="noopener noreferrer" class="">#6915</a>
(<a href="https://github.com/nguyenyou" target="_blank" rel="noopener noreferrer" class="">nguyenyou</a>)</li>
<li class="">bugfix: Properly escape jar: paths
<a href="https://github.com/scalameta/metals/pull/6913" target="_blank" rel="noopener noreferrer" class="">#6913</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">bugfix: Also discover synthetic mains such as scripts
<a href="https://github.com/scalameta/metals/pull/6910" target="_blank" rel="noopener noreferrer" class="">#6910</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">build(deps): Update sbt-buildinfo from 0.12.0 to 0.13.0
<a href="https://github.com/scalameta/metals/pull/6911" target="_blank" rel="noopener noreferrer" class="">#6911</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update sbt, scripted-plugin from 1.10.4 to 1.10.5
<a href="https://github.com/scalameta/metals/pull/6912" target="_blank" rel="noopener noreferrer" class="">#6912</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): bump react from 18.2.0 to 18.3.1 in /website
<a href="https://github.com/scalameta/metals/pull/6905" target="_blank" rel="noopener noreferrer" class="">#6905</a>
(<a href="https://github.com/dependabot%5Bbot%5D" target="_blank" rel="noopener noreferrer" class="">dependabot[bot]</a>)</li>
<li class="">build(deps): bump @swc/core from 1.7.14 to 1.7.42 in /website
<a href="https://github.com/scalameta/metals/pull/6907" target="_blank" rel="noopener noreferrer" class="">#6907</a>
(<a href="https://github.com/dependabot%5Bbot%5D" target="_blank" rel="noopener noreferrer" class="">dependabot[bot]</a>)</li>
<li class="">build(deps-dev): bump @types/node from 22.5.0 to 22.8.6 in /website
<a href="https://github.com/scalameta/metals/pull/6906" target="_blank" rel="noopener noreferrer" class="">#6906</a>
(<a href="https://github.com/dependabot%5Bbot%5D" target="_blank" rel="noopener noreferrer" class="">dependabot[bot]</a>)</li>
<li class="">build(deps): Update sbt, scripted-plugin from 1.10.3 to 1.10.4
<a href="https://github.com/scalameta/metals/pull/6903" target="_blank" rel="noopener noreferrer" class="">#6903</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): bump @easyops-cn/docusaurus-search-local from 0.44.5 to 0.45.0 in
/website <a href="https://github.com/scalameta/metals/pull/6908" target="_blank" rel="noopener noreferrer" class="">#6908</a>
(<a href="https://github.com/dependabot%5Bbot%5D" target="_blank" rel="noopener noreferrer" class="">dependabot[bot]</a>)</li>
<li class="">debug: Print only relevant information when rename isn't happening
<a href="https://github.com/scalameta/metals/pull/6902" target="_blank" rel="noopener noreferrer" class="">#6902</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">improvement: Check all references at the same time
<a href="https://github.com/scalameta/metals/pull/6899" target="_blank" rel="noopener noreferrer" class="">#6899</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">bugfix: Correctly check if a given config exists in scalafix.conf
<a href="https://github.com/scalameta/metals/pull/6901" target="_blank" rel="noopener noreferrer" class="">#6901</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">improvement: Always find all references
<a href="https://github.com/scalameta/metals/pull/6898" target="_blank" rel="noopener noreferrer" class="">#6898</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">bugfix: When determining indent first check for pipe
<a href="https://github.com/scalameta/metals/pull/6897" target="_blank" rel="noopener noreferrer" class="">#6897</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">bugfix: Publish interfaces and mtagsShared for JDK 8
<a href="https://github.com/scalameta/metals/pull/6895" target="_blank" rel="noopener noreferrer" class="">#6895</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">improvement: Don't add release flag for versions from 17
<a href="https://github.com/scalameta/metals/pull/6894" target="_blank" rel="noopener noreferrer" class="">#6894</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">refactor: Use codeAction interface for most code actions
<a href="https://github.com/scalameta/metals/pull/6881" target="_blank" rel="noopener noreferrer" class="">#6881</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">chore: Retry code actions for Scala CLi diags
<a href="https://github.com/scalameta/metals/pull/6892" target="_blank" rel="noopener noreferrer" class="">#6892</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">build(deps): Update scribe, scribe-file, scribe-slf4j2 from 3.15.1 to 3.15.2
<a href="https://github.com/scalameta/metals/pull/6891" target="_blank" rel="noopener noreferrer" class="">#6891</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update flyway-core from 10.20.0 to 10.20.1
<a href="https://github.com/scalameta/metals/pull/6884" target="_blank" rel="noopener noreferrer" class="">#6884</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update protobuf-java from 4.28.2 to 4.28.3
<a href="https://github.com/scalameta/metals/pull/6883" target="_blank" rel="noopener noreferrer" class="">#6883</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update sbt-ci-release from 1.8.0 to 1.9.0
<a href="https://github.com/scalameta/metals/pull/6882" target="_blank" rel="noopener noreferrer" class="">#6882</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">chore: Update Metals default versions
<a href="https://github.com/scalameta/metals/pull/6880" target="_blank" rel="noopener noreferrer" class="">#6880</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">docs: Add release notes for 1.4.0
<a href="https://github.com/scalameta/metals/pull/6879" target="_blank" rel="noopener noreferrer" class="">#6879</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">build(deps): bump http-proxy-middleware from 2.0.6 to 2.0.7 in /website
<a href="https://github.com/scalameta/metals/pull/6878" target="_blank" rel="noopener noreferrer" class="">#6878</a>
(<a href="https://github.com/dependabot%5Bbot%5D" target="_blank" rel="noopener noreferrer" class="">dependabot[bot]</a>)</li>
</ul>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Metals v1.4.0 - Palladium]]></title>
            <link>http://scalameta.org/metals/blog/2024/10/24/palladium</link>
            <guid>http://scalameta.org/metals/blog/2024/10/24/palladium</guid>
            <pubDate>Thu, 24 Oct 2024 00:00:00 GMT</pubDate>
            <description><![CDATA[We're happy to announce the release of Metals v1.4.0, with the main focus on]]></description>
            <content:encoded><![CDATA[<p>We're happy to announce the release of Metals v1.4.0, with the main focus on
introducing Bloop 2.0.0. Of course, this release also includes many
improvements.</p>
<table><tbody><tr><td>Commits since last release</td><td align="center">205</td></tr><tr><td>Merged PRs</td><td align="center">142</td></tr><tr><td>Contributors</td><td align="center">17</td></tr><tr><td>Closed issues</td><td align="center">54</td></tr><tr><td>New features</td><td align="center">2</td></tr></tbody></table>
<p>For full details:
<a href="https://github.com/scalameta/metals/milestone/72?closed=1" target="_blank" rel="noopener noreferrer" class="">https://github.com/scalameta/metals/milestone/72?closed=1</a></p>
<p>Metals is a language server for Scala that works with VS Code, Vim, Emacs, Zed,
Helix and Sublime Text. Metals is developed at the
<a href="https://scala.epfl.ch/" target="_blank" rel="noopener noreferrer" class="">Scala Center</a> and <a href="https://virtuslab.com/" target="_blank" rel="noopener noreferrer" class="">VirtusLab</a>
with the help from contributors from the community.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="tldr">TL;DR<a href="http://scalameta.org/metals/blog/2024/10/24/palladium#tldr" class="hash-link" aria-label="Direct link to TL;DR" title="Direct link to TL;DR" translate="no">​</a></h2>
<p>Check out <a href="https://scalameta.org/metals/" target="_blank" rel="noopener noreferrer" class="">https://scalameta.org/metals/</a>, and
give Metals a try!</p>
<ul>
<li class=""><a href="http://scalameta.org/metals/blog/2024/10/24/palladium#bloop-2" class="">Bloop 2</a></li>
<li class=""><a href="http://scalameta.org/metals/blog/2024/10/24/palladium#detect-custom-mains" class="">Detect custom mains</a></li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="bloop-2">Bloop 2<a href="http://scalameta.org/metals/blog/2024/10/24/palladium#bloop-2" class="hash-link" aria-label="Direct link to Bloop 2" title="Direct link to Bloop 2" translate="no">​</a></h2>
<p>Bloop is the default build server used by both Metals and Scala CLI, with the
latter also serving as the default Scala command since Scala 3.5.0. However, for
quite some time, Scala CLI was using a separate fork of Bloop, which
occasionally led to users running two build servers simultaneously. This was far
from ideal in terms of memory consumption. With Bloop 2.0.0, we have
discontinued the fork, effectively resolving this issue.</p>
<p>This change also means that all the improvements made by
<a href="https://github.com/alexarchambault" target="_blank" rel="noopener noreferrer" class="">Alexandre Archambault</a> in the separate
Bloop fork are now integrated into the main version. One of the most significant
enhancements was the switch to Unix domain sockets, which should improve the
reliability and speed of connections to the build server.</p>
<p>The above change has however made it necessary for us to adopt JDK 17 as the
primary JDK for running Bloop and Metals. You should still be able to compile
your code for earlier JDK versions without any issues; this will be handled by
metals when you adjust the <code>metals.javaHome</code> setting to the desired Java
version. That version is used to run the build tools and build servers, which
then will be aware of it In case of Bloop it means that if no <code>-release</code> flag or
similar is added, Bloop will add it automatically to make sure the code is
compiled correctly on a given JDK version. Similarly, Metals will add that flag
to get all the interactive features from the compiler.</p>
<p>The Java version used by Metals itself is managed separately and will be
automatically detected or downloaded as needed.</p>
<p>Metals will also attempt to shut down the old Bloop server and you might see a
notification about it. It should be perfectly safe to approve that action as the
old server will no longer be used by any tool known to us.</p>
<p>Metals allows users to customize the default options for the Bloop build server.
However, in most cases, it is best to use the defaults, which will be applied if
the <code>metals.bloopJvmOptions</code>setting is missing or set to an empty array.</p>
<p>The new default JVM options for Bloop are as follows:</p>
<div class="language-json codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#bfc7d5;--prism-background-color:#292d3e"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-json codeBlock_bY9V thin-scrollbar" style="color:#bfc7d5;background-color:#292d3e"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#bfc7d5"><span class="token plain">"metals.bloopJvmOptions" : [</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">      "-Xss4m",</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">      "-XX:MaxInlineLevel=20", // Specific option for faster C2, ignored by GraalVM</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">      "-XX:+UseZGC", // ZGC returns unused memory back to the OS, so Bloop does not occupy so much memory if unused</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">      "-XX:ZUncommitDelay=30",</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">      "-XX:ZCollectionInterval=5",</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">      "-XX:+IgnoreUnrecognizedVMOptions", // Do not fail if an non-standard (-X, -XX) VM option is not recognized.</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">      "-Dbloop.ignore-sig-int=true"</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">]</span><br></div></code></pre></div></div>
<p>If you are having any issues with the build server it might be worth
experimenting with those defaults.</p>
<p>We also adjusted Metals default options similarly in VS Code to further minimize
the amount of memory used overall.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="detect-custom-mains">Detect custom mains<a href="http://scalameta.org/metals/blog/2024/10/24/palladium#detect-custom-mains" class="hash-link" aria-label="Direct link to Detect custom mains" title="Direct link to Detect custom mains" translate="no">​</a></h2>
<p>Previously, we would only discover main classes defined in standard ways such as
when:</p>
<ul>
<li class="">using @main annotation for Scala3</li>
<li class="">extending <code>App</code></li>
<li class="">explicit <code>def main(args: Array[String]): Unit</code> method</li>
<li class="">scripts</li>
</ul>
<p>However, users might actually want to create more ways of defining them such as
through compiler plugins. Turns out this is the same case we previously had with
scripts. In this release, we extended that mechanism and any unknown main
classes will be show with code lenses at the top of the file the same way as
with scripts.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="miscellaneous">Miscellaneous<a href="http://scalameta.org/metals/blog/2024/10/24/palladium#miscellaneous" class="hash-link" aria-label="Direct link to Miscellaneous" title="Direct link to Miscellaneous" translate="no">​</a></h2>
<ul>
<li class="">bugfix: disambiguate workspace completions for vals in Scala 3
<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a></li>
<li class="">bugfix: correctly handle odd formatting while indexing source jars
<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a></li>
<li class="">improvement: Only compile current target when debugging or using scalafix
<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a></li>
<li class="">fix: delete test suites for deleted build targets
<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a></li>
<li class="">improvement: clear diagnostics in downstream targets
<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a></li>
<li class="">improvement: Improve heuritics used for fallback symbol search
<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a></li>
<li class="">bugfix: use semanticdb also for local symbols and when references not
supported in PC <a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a></li>
<li class="">bugfix: Add backticks for inferred type when needed
<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a></li>
<li class="">bugfix: Use default bloop properties if provided empty array
<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a></li>
<li class="">bugfix: Catch possible syntax errors <a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a></li>
<li class="">bugfix: Make sure best effort works with verbose
<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a></li>
<li class="">improvement: Don't allow empty sbtScript setting
<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a></li>
<li class="">Disable OrganizeImports commands if they are not available
<a href="https://github.com/wjoel" target="_blank" rel="noopener noreferrer" class="">wjoel</a></li>
<li class="">improvement: add coursier repositories instead of overwrite
<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a></li>
<li class="">bugfix: completions for using directive deps in test scope
<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a></li>
<li class="">feature: Add "opaque type" keyword completions
<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a></li>
<li class="">bugfix: index top level with inner when apply with <code>{ }</code> in method
<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a></li>
<li class="">bugfix: Allow -release flag for Scala 3 to get proper completions
<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a></li>
<li class="">fix: Get correct classpath for running debug using Mill BSP
<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a></li>
<li class="">improvement: Include jvm opts and environment variables when running tests
<a href="https://github.com/scalameta/metals/pull/6753" target="_blank" rel="noopener noreferrer" class="">#6753</a>
(<a href="https://github.com/masonedmison" target="_blank" rel="noopener noreferrer" class="">masonedmison</a>)</li>
<li class="">bugfix: Check if locally available sbt is actually a file and not a directory
<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a></li>
<li class="">improvement: Fallback to last successful semantic tokens instead of throwing
to avoid VS Code reproting server as unresponsive
<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a></li>
<li class="">bugfix: Finer grained accessibility check for auto-imports that includes the
private with qualifier <a href="https://github.com/masonedmison" target="_blank" rel="noopener noreferrer" class="">masonedmison</a></li>
<li class="">chore: Freeze bloop plugin for versions of sbt lower than 1.5.8
<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a></li>
<li class="">bugfix: Make sure Bloop is always properly restarted
<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a></li>
<li class="">bugfix: Exclude comma if included in symbol range for references
<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a></li>
<li class="">bugfix: Stop Metals from saving shared JVM indexes with XDG path violation
<a href="https://github.com/untainsYD" target="_blank" rel="noopener noreferrer" class="">untainsYD</a></li>
<li class="">chore: Update scalafix to 0.13.0 to include Scala 3 inferred type
<a href="https://github.com/bjaglin" target="_blank" rel="noopener noreferrer" class="">bjaglin</a></li>
<li class="">bugfix: Don't hang when checking for cache folders on Windows
<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a></li>
<li class="">improvement: Limit number of semanticdb files read at the same time to limit
possibility of OOM <a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a></li>
<li class="">improvement: Basic support for new <code>.mill</code> and <code>.mill.scala</code> source files
<a href="https://github.com/lolgab" target="_blank" rel="noopener noreferrer" class="">lolgab</a></li>
<li class="">bugfix: Fix Metals hanging on Windows <a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a></li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="contributors">Contributors<a href="http://scalameta.org/metals/blog/2024/10/24/palladium#contributors" class="hash-link" aria-label="Direct link to Contributors" title="Direct link to Contributors" translate="no">​</a></h2>
<p>Big thanks to everybody who contributed to this release or reported an issue!</p>
<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#bfc7d5;--prism-background-color:#292d3e"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#bfc7d5;background-color:#292d3e"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#bfc7d5"><span class="token plain">$ git shortlog -sn --no-merges v1.3.5..v1.4.0</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">    82	Tomasz Godzik</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">    52	Scalameta Bot</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">    13	Lorenzo Gabriele</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">    13	kasiaMarek</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">    10	dependabot[bot]</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">     8	tgodzik</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">     6	Mason Edmison</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">     3	Alexandre Archambault</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">     3	Anup Chenthamarakshan</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">     3	Katarzyna Marek</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">     2	Joel Wilsson</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">     2	Kacper Korban</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">     2	Yarosλaβ .</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">     2	nocontribute</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">     2	scarf</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">     1	Brice Jaglin</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">     1	Seth Tisue</span><br></div></code></pre></div></div>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="merged-prs">Merged PRs<a href="http://scalameta.org/metals/blog/2024/10/24/palladium#merged-prs" class="hash-link" aria-label="Direct link to Merged PRs" title="Direct link to Merged PRs" translate="no">​</a></h2>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="v140-2024-10-23"><a href="https://github.com/scalameta/metals/tree/v1.4.0" target="_blank" rel="noopener noreferrer" class="">v1.4.0</a> (2024-10-23)<a href="http://scalameta.org/metals/blog/2024/10/24/palladium#v140-2024-10-23" class="hash-link" aria-label="Direct link to v140-2024-10-23" title="Direct link to v140-2024-10-23" translate="no">​</a></h2>
<p><a href="https://github.com/scalameta/metals/compare/v1.3.5...v1.4.0" target="_blank" rel="noopener noreferrer" class="">Full Changelog</a></p>
<p><strong>Merged pull requests:</strong></p>
<ul>
<li class="">chore: Update sbt and remove sbt-launch-jar option
<a href="https://github.com/scalameta/metals/pull/6876" target="_blank" rel="noopener noreferrer" class="">#6876</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">Basic support for new <code>.mill</code> and <code>.mill.scala</code> source files
<a href="https://github.com/scalameta/metals/pull/6752" target="_blank" rel="noopener noreferrer" class="">#6752</a>
(<a href="https://github.com/lolgab" target="_blank" rel="noopener noreferrer" class="">lolgab</a>)</li>
<li class="">chore: Update Scalameta to 4.11.0
<a href="https://github.com/scalameta/metals/pull/6875" target="_blank" rel="noopener noreferrer" class="">#6875</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">bugfix: Create reports directory if it doesn't exist
<a href="https://github.com/scalameta/metals/pull/6874" target="_blank" rel="noopener noreferrer" class="">#6874</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">bugfix: Fix not hanging on ProjectDirs
<a href="https://github.com/scalameta/metals/pull/6869" target="_blank" rel="noopener noreferrer" class="">#6869</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">bugfix: Revert sbt upgrade
<a href="https://github.com/scalameta/metals/pull/6873" target="_blank" rel="noopener noreferrer" class="">#6873</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">build(deps): Update sbt, scripted-plugin from 1.10.2 to 1.10.3
<a href="https://github.com/scalameta/metals/pull/6867" target="_blank" rel="noopener noreferrer" class="">#6867</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update scribe, scribe-file, scribe-slf4j2 from 3.15.0 to 3.15.1
<a href="https://github.com/scalameta/metals/pull/6865" target="_blank" rel="noopener noreferrer" class="">#6865</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update ipcsocket from 1.6.2 to 1.6.3
<a href="https://github.com/scalameta/metals/pull/6868" target="_blank" rel="noopener noreferrer" class="">#6868</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update interface from 1.0.21 to 1.0.22
<a href="https://github.com/scalameta/metals/pull/6866" target="_blank" rel="noopener noreferrer" class="">#6866</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">bugfix: Fix Worksheet3NextSuite
<a href="https://github.com/scalameta/metals/pull/6863" target="_blank" rel="noopener noreferrer" class="">#6863</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">bugfix: Ignore Java8Suite on Mac OS
<a href="https://github.com/scalameta/metals/pull/6860" target="_blank" rel="noopener noreferrer" class="">#6860</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">bugfix: Take into account space in sbtopts
<a href="https://github.com/scalameta/metals/pull/6859" target="_blank" rel="noopener noreferrer" class="">#6859</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">improvement: Retry code actions detection for Scala CLI
<a href="https://github.com/scalameta/metals/pull/6857" target="_blank" rel="noopener noreferrer" class="">#6857</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">improvement: Limit number of read semanticdb files
<a href="https://github.com/scalameta/metals/pull/6854" target="_blank" rel="noopener noreferrer" class="">#6854</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">build(deps): Update flyway-core from 10.19.0 to 10.20.0
<a href="https://github.com/scalameta/metals/pull/6856" target="_blank" rel="noopener noreferrer" class="">#6856</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update bloop-config from 2.0.3 to 2.1.0
<a href="https://github.com/scalameta/metals/pull/6855" target="_blank" rel="noopener noreferrer" class="">#6855</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">chore: Update macOs since they are being discontinued
<a href="https://github.com/scalameta/metals/pull/6853" target="_blank" rel="noopener noreferrer" class="">#6853</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">build(deps): Update ammonite-util from 3.0.0-M2-30-486378af to
3.0.0-2-6342755f <a href="https://github.com/scalameta/metals/pull/6812" target="_blank" rel="noopener noreferrer" class="">#6812</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update scalameta, semanticdb-metap, ... from 4.10.1 to 4.10.2
<a href="https://github.com/scalameta/metals/pull/6846" target="_blank" rel="noopener noreferrer" class="">#6846</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update sbt-ci-release from 1.7.0 to 1.8.0
<a href="https://github.com/scalameta/metals/pull/6845" target="_blank" rel="noopener noreferrer" class="">#6845</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update cli_3, scala-cli-bsp from 1.5.0 to 1.5.1
<a href="https://github.com/scalameta/metals/pull/6818" target="_blank" rel="noopener noreferrer" class="">#6818</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">bugfix: Do not fail while creating reports
<a href="https://github.com/scalameta/metals/pull/6836" target="_blank" rel="noopener noreferrer" class="">#6836</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">bugfix: Don't hang on ProjectDirs
<a href="https://github.com/scalameta/metals/pull/6763" target="_blank" rel="noopener noreferrer" class="">#6763</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">chore: retry bsp-error test in mac, it seems tests that use watch fil…
<a href="https://github.com/scalameta/metals/pull/6844" target="_blank" rel="noopener noreferrer" class="">#6844</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">build(deps): Update sbt-ci-release from 1.6.1 to 1.7.0
<a href="https://github.com/scalameta/metals/pull/6842" target="_blank" rel="noopener noreferrer" class="">#6842</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update coursier, ... from 2.1.13 to 2.1.14
<a href="https://github.com/scalameta/metals/pull/6843" target="_blank" rel="noopener noreferrer" class="">#6843</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">improvement: Show traces and retry actions if Scala CLI fails
<a href="https://github.com/scalameta/metals/pull/6838" target="_blank" rel="noopener noreferrer" class="">#6838</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">improvement: Increate debug start timeout so that we can retry mainClass
<a href="https://github.com/scalameta/metals/pull/6837" target="_blank" rel="noopener noreferrer" class="">#6837</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">bugfix: Try to make ending tasks more reliable
<a href="https://github.com/scalameta/metals/pull/6793" target="_blank" rel="noopener noreferrer" class="">#6793</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">improvement: Add Unreachable exception handling
<a href="https://github.com/scalameta/metals/pull/6832" target="_blank" rel="noopener noreferrer" class="">#6832</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">scalafix 0.13.0 <a href="https://github.com/scalameta/metals/pull/6807" target="_blank" rel="noopener noreferrer" class="">#6807</a>
(<a href="https://github.com/bjaglin" target="_blank" rel="noopener noreferrer" class="">bjaglin</a>)</li>
<li class="">chore: Removed unused values
<a href="https://github.com/scalameta/metals/pull/6835" target="_blank" rel="noopener noreferrer" class="">#6835</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">chore: Update Bloop to 2.0.3
<a href="https://github.com/scalameta/metals/pull/6834" target="_blank" rel="noopener noreferrer" class="">#6834</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">bugfix: Add null check for pc collector
<a href="https://github.com/scalameta/metals/pull/6830" target="_blank" rel="noopener noreferrer" class="">#6830</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">build(deps): Update scalameta, semanticdb-metap from 4.9.9 to 4.10.1
<a href="https://github.com/scalameta/metals/pull/6806" target="_blank" rel="noopener noreferrer" class="">#6806</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">improvement: Use bootstrapped compiler always
<a href="https://github.com/scalameta/metals/pull/6824" target="_blank" rel="noopener noreferrer" class="">#6824</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">build(deps): Update flyway-core from 10.18.2 to 10.19.0
<a href="https://github.com/scalameta/metals/pull/6817" target="_blank" rel="noopener noreferrer" class="">#6817</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update ujson from 4.0.1 to 4.0.2
<a href="https://github.com/scalameta/metals/pull/6813" target="_blank" rel="noopener noreferrer" class="">#6813</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">bugfix: Metals <code>SqlSharedIndices.scala</code> XDG path violation
<a href="https://github.com/scalameta/metals/pull/6802" target="_blank" rel="noopener noreferrer" class="">#6802</a>
(<a href="https://github.com/untainsYD" target="_blank" rel="noopener noreferrer" class="">untainsYD</a>)</li>
<li class="">build(deps): Update guava from 33.3.0-jre to 33.3.1-jre
<a href="https://github.com/scalameta/metals/pull/6803" target="_blank" rel="noopener noreferrer" class="">#6803</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update flyway-core from 10.18.0 to 10.18.2
<a href="https://github.com/scalameta/metals/pull/6805" target="_blank" rel="noopener noreferrer" class="">#6805</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">Avoid NPE when no severity is supplied in PublishDiagnosticsParams.Diagnostic
<a href="https://github.com/scalameta/metals/pull/6799" target="_blank" rel="noopener noreferrer" class="">#6799</a>
(<a href="https://github.com/anupc-db" target="_blank" rel="noopener noreferrer" class="">anupc-db</a>)</li>
<li class="">bugfix: Exclude comma if included in symbol range
<a href="https://github.com/scalameta/metals/pull/6797" target="_blank" rel="noopener noreferrer" class="">#6797</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">bugfix: Make sure Bloop is always properly restarted
<a href="https://github.com/scalameta/metals/pull/6766" target="_blank" rel="noopener noreferrer" class="">#6766</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">chore: Add debug information for Mill
<a href="https://github.com/scalameta/metals/pull/6747" target="_blank" rel="noopener noreferrer" class="">#6747</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">chore: Add support for Scala 2.13.15
<a href="https://github.com/scalameta/metals/pull/6796" target="_blank" rel="noopener noreferrer" class="">#6796</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">chore: Freeze bloop plugin for versions of sbt lower than 1.5.8
<a href="https://github.com/scalameta/metals/pull/6792" target="_blank" rel="noopener noreferrer" class="">#6792</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">Finer grained accessibility check for auto-imports
<a href="https://github.com/scalameta/metals/pull/6765" target="_blank" rel="noopener noreferrer" class="">#6765</a>
(<a href="https://github.com/masonedmison" target="_blank" rel="noopener noreferrer" class="">masonedmison</a>)</li>
<li class="">fix: Don't pass <code>--best-effort</code> flag for bazel
<a href="https://github.com/scalameta/metals/pull/6786" target="_blank" rel="noopener noreferrer" class="">#6786</a>
(<a href="https://github.com/anupc-db" target="_blank" rel="noopener noreferrer" class="">anupc-db</a>)</li>
<li class="">build(deps): Update bloop-rifle from 2.0.0 to 2.0.2
<a href="https://github.com/scalameta/metals/pull/6787" target="_blank" rel="noopener noreferrer" class="">#6787</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update mdoc-interfaces from 2.5.4 to 2.6.1
<a href="https://github.com/scalameta/metals/pull/6791" target="_blank" rel="noopener noreferrer" class="">#6791</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update coursier, ... from 2.1.12 to 2.1.13
<a href="https://github.com/scalameta/metals/pull/6789" target="_blank" rel="noopener noreferrer" class="">#6789</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update interface from 1.0.20 to 1.0.21
<a href="https://github.com/scalameta/metals/pull/6790" target="_blank" rel="noopener noreferrer" class="">#6790</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update protobuf-java from 4.28.1 to 4.28.2
<a href="https://github.com/scalameta/metals/pull/6788" target="_blank" rel="noopener noreferrer" class="">#6788</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">refactor: Add a common codeAction method to the presentation compiler together
with a supportedCodeActions method
<a href="https://github.com/scalameta/metals/pull/6737" target="_blank" rel="noopener noreferrer" class="">#6737</a>
(<a href="https://github.com/KacperFKorban" target="_blank" rel="noopener noreferrer" class="">KacperFKorban</a>)</li>
<li class="">build(deps): Update munit from 1.0.1 to 1.0.2
<a href="https://github.com/scalameta/metals/pull/6779" target="_blank" rel="noopener noreferrer" class="">#6779</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update sbt, scripted-plugin from 1.10.1 to 1.10.2
<a href="https://github.com/scalameta/metals/pull/6778" target="_blank" rel="noopener noreferrer" class="">#6778</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): bump express from 4.19.2 to 4.21.0 in /website
<a href="https://github.com/scalameta/metals/pull/6773" target="_blank" rel="noopener noreferrer" class="">#6773</a>
(<a href="https://github.com/dependabot%5Bbot%5D" target="_blank" rel="noopener noreferrer" class="">dependabot[bot]</a>)</li>
<li class="">build(deps): Update ammonite-util from 3.0.0-M2-15-9bed9700 to
3.0.0-M2-30-486378af <a href="https://github.com/scalameta/metals/pull/6768" target="_blank" rel="noopener noreferrer" class="">#6768</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update protobuf-java from 4.28.0 to 4.28.1
<a href="https://github.com/scalameta/metals/pull/6767" target="_blank" rel="noopener noreferrer" class="">#6767</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update flyway-core from 10.17.3 to 10.18.0
<a href="https://github.com/scalameta/metals/pull/6771" target="_blank" rel="noopener noreferrer" class="">#6771</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update coursier, ... from 2.1.10 to 2.1.12
<a href="https://github.com/scalameta/metals/pull/6769" target="_blank" rel="noopener noreferrer" class="">#6769</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update interface from 1.0.19 to 1.0.20
<a href="https://github.com/scalameta/metals/pull/6770" target="_blank" rel="noopener noreferrer" class="">#6770</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">chore: Remove old release options
<a href="https://github.com/scalameta/metals/pull/6734" target="_blank" rel="noopener noreferrer" class="">#6734</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">improvement: Fallback to last successful tokens instead of throwing
<a href="https://github.com/scalameta/metals/pull/6727" target="_blank" rel="noopener noreferrer" class="">#6727</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">bugfix: Fix scala cli tests
<a href="https://github.com/scalameta/metals/pull/6764" target="_blank" rel="noopener noreferrer" class="">#6764</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">fix: do not show completions in comments
<a href="https://github.com/scalameta/metals/pull/6702" target="_blank" rel="noopener noreferrer" class="">#6702</a>
(<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a>)</li>
<li class="">bugfix: Check if locally available sbt is actually a file
<a href="https://github.com/scalameta/metals/pull/6749" target="_blank" rel="noopener noreferrer" class="">#6749</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">bugfix: Use metals Java versions as default
<a href="https://github.com/scalameta/metals/pull/6721" target="_blank" rel="noopener noreferrer" class="">#6721</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">build(deps): Update flyway-core from 10.17.2 to 10.17.3
<a href="https://github.com/scalameta/metals/pull/6759" target="_blank" rel="noopener noreferrer" class="">#6759</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">bugfix: Fix possible match error
<a href="https://github.com/scalameta/metals/pull/6760" target="_blank" rel="noopener noreferrer" class="">#6760</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">build(deps): Update scala-debug-adapter from 4.2.0 to 4.2.1
<a href="https://github.com/scalameta/metals/pull/6758" target="_blank" rel="noopener noreferrer" class="">#6758</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">Include data arguments as part of debug parameters
<a href="https://github.com/scalameta/metals/pull/6753" target="_blank" rel="noopener noreferrer" class="">#6753</a>
(<a href="https://github.com/masonedmison" target="_blank" rel="noopener noreferrer" class="">masonedmison</a>)</li>
<li class="">Support 2.12.20 <a href="https://github.com/scalameta/metals/pull/6751" target="_blank" rel="noopener noreferrer" class="">#6751</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">docs: Update Bazel docs and add Mezel
<a href="https://github.com/scalameta/metals/pull/6728" target="_blank" rel="noopener noreferrer" class="">#6728</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">improvement: Detect custom mains
<a href="https://github.com/scalameta/metals/pull/6745" target="_blank" rel="noopener noreferrer" class="">#6745</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">bugfix: Set semanticdb version correctly
<a href="https://github.com/scalameta/metals/pull/6722" target="_blank" rel="noopener noreferrer" class="">#6722</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">improvement: Ignore single failing file
<a href="https://github.com/scalameta/metals/pull/6726" target="_blank" rel="noopener noreferrer" class="">#6726</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">build(deps): bump clsx from 2.1.0 to 2.1.1 in /website
<a href="https://github.com/scalameta/metals/pull/6739" target="_blank" rel="noopener noreferrer" class="">#6739</a>
(<a href="https://github.com/dependabot%5Bbot%5D" target="_blank" rel="noopener noreferrer" class="">dependabot[bot]</a>)</li>
<li class="">build(deps): bump @docusaurus/preset-classic from 3.4.0 to 3.5.2 in /website
<a href="https://github.com/scalameta/metals/pull/6742" target="_blank" rel="noopener noreferrer" class="">#6742</a>
(<a href="https://github.com/dependabot%5Bbot%5D" target="_blank" rel="noopener noreferrer" class="">dependabot[bot]</a>)</li>
<li class="">build(deps): Update protobuf-java from 4.27.4 to 4.28.0
<a href="https://github.com/scalameta/metals/pull/6744" target="_blank" rel="noopener noreferrer" class="">#6744</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): bump @easyops-cn/docusaurus-search-local from 0.44.4 to 0.44.5 in
/website <a href="https://github.com/scalameta/metals/pull/6743" target="_blank" rel="noopener noreferrer" class="">#6743</a>
(<a href="https://github.com/dependabot%5Bbot%5D" target="_blank" rel="noopener noreferrer" class="">dependabot[bot]</a>)</li>
<li class="">build(deps): Update protobuf-java from 4.27.3 to 4.27.4
<a href="https://github.com/scalameta/metals/pull/6736" target="_blank" rel="noopener noreferrer" class="">#6736</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update sbt, scripted-plugin from 1.9.9 to 1.10.1
<a href="https://github.com/scalameta/metals/pull/6608" target="_blank" rel="noopener noreferrer" class="">#6608</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">fix: get correct classpath for running debug
<a href="https://github.com/scalameta/metals/pull/6715" target="_blank" rel="noopener noreferrer" class="">#6715</a>
(<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a>)</li>
<li class="">bugfix: Allow -release flag for Scala 3
<a href="https://github.com/scalameta/metals/pull/6733" target="_blank" rel="noopener noreferrer" class="">#6733</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">fix: index top level with inner when apply with <code>{ }</code> in method
<a href="https://github.com/scalameta/metals/pull/6720" target="_blank" rel="noopener noreferrer" class="">#6720</a>
(<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a>)</li>
<li class="">build(deps): bump webpack from 5.91.0 to 5.94.0 in /website
<a href="https://github.com/scalameta/metals/pull/6731" target="_blank" rel="noopener noreferrer" class="">#6731</a>
(<a href="https://github.com/dependabot%5Bbot%5D" target="_blank" rel="noopener noreferrer" class="">dependabot[bot]</a>)</li>
<li class="">feature: Add opaque type completions
<a href="https://github.com/scalameta/metals/pull/6725" target="_blank" rel="noopener noreferrer" class="">#6725</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">build(deps): bump micromatch from 4.0.5 to 4.0.8 in /website
<a href="https://github.com/scalameta/metals/pull/6719" target="_blank" rel="noopener noreferrer" class="">#6719</a>
(<a href="https://github.com/dependabot%5Bbot%5D" target="_blank" rel="noopener noreferrer" class="">dependabot[bot]</a>)</li>
<li class="">docs(perf): use <code>swc-loader</code>
<a href="https://github.com/scalameta/metals/pull/6706" target="_blank" rel="noopener noreferrer" class="">#6706</a>
(<a href="https://github.com/scarf005" target="_blank" rel="noopener noreferrer" class="">scarf005</a>)</li>
<li class="">build(deps): Update flyway-core from 10.17.1 to 10.17.2
<a href="https://github.com/scalameta/metals/pull/6711" target="_blank" rel="noopener noreferrer" class="">#6711</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">chore: use external template chooser
<a href="https://github.com/scalameta/metals/pull/6705" target="_blank" rel="noopener noreferrer" class="">#6705</a>
(<a href="https://github.com/scarf005" target="_blank" rel="noopener noreferrer" class="">scarf005</a>)</li>
<li class="">build(deps): Update cli_3, scala-cli-bsp from 1.4.3 to 1.5.0
<a href="https://github.com/scalameta/metals/pull/6718" target="_blank" rel="noopener noreferrer" class="">#6718</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update sbt-ci-release from 1.6.0 to 1.6.1
<a href="https://github.com/scalameta/metals/pull/6707" target="_blank" rel="noopener noreferrer" class="">#6707</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update ujson from 4.0.0 to 4.0.1
<a href="https://github.com/scalameta/metals/pull/6709" target="_blank" rel="noopener noreferrer" class="">#6709</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update semanticdb-java from 0.10.2 to 0.10.3
<a href="https://github.com/scalameta/metals/pull/6710" target="_blank" rel="noopener noreferrer" class="">#6710</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">fix: create <code>docsOut</code> directory
<a href="https://github.com/scalameta/metals/pull/6704" target="_blank" rel="noopener noreferrer" class="">#6704</a>
(<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a>)</li>
<li class="">fix: completions for using directive deps when test scope
<a href="https://github.com/scalameta/metals/pull/6701" target="_blank" rel="noopener noreferrer" class="">#6701</a>
(<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a>)</li>
<li class="">fix: use uri from params in pc for location
<a href="https://github.com/scalameta/metals/pull/6692" target="_blank" rel="noopener noreferrer" class="">#6692</a>
(<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a>)</li>
<li class="">test: remove unused compats
<a href="https://github.com/scalameta/metals/pull/6697" target="_blank" rel="noopener noreferrer" class="">#6697</a>
(<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a>)</li>
<li class="">improvement: add coursier repositories instead of overwrite
<a href="https://github.com/scalameta/metals/pull/6696" target="_blank" rel="noopener noreferrer" class="">#6696</a>
(<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a>)</li>
<li class="">fix typos <a href="https://github.com/scalameta/metals/pull/6695" target="_blank" rel="noopener noreferrer" class="">#6695</a>
(<a href="https://github.com/SethTisue" target="_blank" rel="noopener noreferrer" class="">SethTisue</a>)</li>
<li class="">improvement: Further heuristic improvements
<a href="https://github.com/scalameta/metals/pull/6658" target="_blank" rel="noopener noreferrer" class="">#6658</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">Disable OrganizeImports commands if they are not available
<a href="https://github.com/scalameta/metals/pull/6595" target="_blank" rel="noopener noreferrer" class="">#6595</a>
(<a href="https://github.com/wjoel" target="_blank" rel="noopener noreferrer" class="">wjoel</a>)</li>
<li class="">improvement: Don't allow empty sbtScript setting
<a href="https://github.com/scalameta/metals/pull/6687" target="_blank" rel="noopener noreferrer" class="">#6687</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">bugfix: Make sure best effort works with verbose
<a href="https://github.com/scalameta/metals/pull/6678" target="_blank" rel="noopener noreferrer" class="">#6678</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">bugfix: Catch possible syntax errors
<a href="https://github.com/scalameta/metals/pull/6681" target="_blank" rel="noopener noreferrer" class="">#6681</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">build(deps): Update guava from 33.2.1-jre to 33.3.0-jre
<a href="https://github.com/scalameta/metals/pull/6689" target="_blank" rel="noopener noreferrer" class="">#6689</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update flyway-core from 9.22.3 to 10.17.1
<a href="https://github.com/scalameta/metals/pull/6685" target="_blank" rel="noopener noreferrer" class="">#6685</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update munit from 1.0.0 to 1.0.1
<a href="https://github.com/scalameta/metals/pull/6690" target="_blank" rel="noopener noreferrer" class="">#6690</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">bugfix: Rename cli to bloop-cli
<a href="https://github.com/scalameta/metals/pull/6688" target="_blank" rel="noopener noreferrer" class="">#6688</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">bugfix: Use default bloop properties if provided empty array
<a href="https://github.com/scalameta/metals/pull/6679" target="_blank" rel="noopener noreferrer" class="">#6679</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">build(deps): Update h2 from 2.3.230 to 2.3.232
<a href="https://github.com/scalameta/metals/pull/6684" target="_blank" rel="noopener noreferrer" class="">#6684</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update bloop-rifle from 2.0.0-RC1 to 2.0.0
<a href="https://github.com/scalameta/metals/pull/6682" target="_blank" rel="noopener noreferrer" class="">#6682</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update sbt-ci-release from 1.5.12 to 1.6.0
<a href="https://github.com/scalameta/metals/pull/6683" target="_blank" rel="noopener noreferrer" class="">#6683</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">improvement: Add debug messages for initializing folders
<a href="https://github.com/scalameta/metals/pull/6675" target="_blank" rel="noopener noreferrer" class="">#6675</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">test: bump scala 3 BE version in test and add <code>imports-for-non-compiling</code>
<a href="https://github.com/scalameta/metals/pull/6677" target="_blank" rel="noopener noreferrer" class="">#6677</a>
(<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a>)</li>
<li class="">build(deps): Update sbt-mima-plugin from 1.1.3 to 1.1.4
<a href="https://github.com/scalameta/metals/pull/6668" target="_blank" rel="noopener noreferrer" class="">#6668</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): bump follow-redirects from 1.15.1 to 1.15.6 in /website
<a href="https://github.com/scalameta/metals/pull/6674" target="_blank" rel="noopener noreferrer" class="">#6674</a>
(<a href="https://github.com/dependabot%5Bbot%5D" target="_blank" rel="noopener noreferrer" class="">dependabot[bot]</a>)</li>
<li class="">build(deps): bump braces from 3.0.2 to 3.0.3 in /website
<a href="https://github.com/scalameta/metals/pull/6673" target="_blank" rel="noopener noreferrer" class="">#6673</a>
(<a href="https://github.com/dependabot%5Bbot%5D" target="_blank" rel="noopener noreferrer" class="">dependabot[bot]</a>)</li>
<li class="">build(deps): bump express from 4.18.1 to 4.19.2 in /website
<a href="https://github.com/scalameta/metals/pull/6672" target="_blank" rel="noopener noreferrer" class="">#6672</a>
(<a href="https://github.com/dependabot%5Bbot%5D" target="_blank" rel="noopener noreferrer" class="">dependabot[bot]</a>)</li>
<li class="">bugfix: Add yarn.lock file to improve website generation
<a href="https://github.com/scalameta/metals/pull/6670" target="_blank" rel="noopener noreferrer" class="">#6670</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">build(deps): Update bloop-maven-plugin from 2.0.0 to 2.0.1
<a href="https://github.com/scalameta/metals/pull/6661" target="_blank" rel="noopener noreferrer" class="">#6661</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update semanticdb-java from 0.10.1 to 0.10.2
<a href="https://github.com/scalameta/metals/pull/6663" target="_blank" rel="noopener noreferrer" class="">#6663</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update bloop-config from 2.0.2 to 2.0.3
<a href="https://github.com/scalameta/metals/pull/6660" target="_blank" rel="noopener noreferrer" class="">#6660</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update cli_3, scala-cli-bsp from 1.4.1 to 1.4.3
<a href="https://github.com/scalameta/metals/pull/6664" target="_blank" rel="noopener noreferrer" class="">#6664</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">bugfix: Add backticks for inferred type when needed
<a href="https://github.com/scalameta/metals/pull/6621" target="_blank" rel="noopener noreferrer" class="">#6621</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">feature: Switch to new Bloop Rifle in the original Bloop
<a href="https://github.com/scalameta/metals/pull/6532" target="_blank" rel="noopener noreferrer" class="">#6532</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">refactor: extract connecting to build server
<a href="https://github.com/scalameta/metals/pull/6597" target="_blank" rel="noopener noreferrer" class="">#6597</a>
(<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a>)</li>
<li class="">fix: use semanticdb also for local and when stale if scala version do…
<a href="https://github.com/scalameta/metals/pull/6654" target="_blank" rel="noopener noreferrer" class="">#6654</a>
(<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a>)</li>
<li class="">improvement: clear diagnostics in downstream targets
<a href="https://github.com/scalameta/metals/pull/6604" target="_blank" rel="noopener noreferrer" class="">#6604</a>
(<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a>)</li>
<li class="">improvement: Improve heuritics used for fallback symbol search
<a href="https://github.com/scalameta/metals/pull/6642" target="_blank" rel="noopener noreferrer" class="">#6642</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">fix: delete test suites for deleted build targets
<a href="https://github.com/scalameta/metals/pull/6652" target="_blank" rel="noopener noreferrer" class="">#6652</a>
(<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a>)</li>
<li class="">improvement: Specifically choose which targets to compile
<a href="https://github.com/scalameta/metals/pull/6639" target="_blank" rel="noopener noreferrer" class="">#6639</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">fix: correctly handle odd formatting while indexing
<a href="https://github.com/scalameta/metals/pull/6648" target="_blank" rel="noopener noreferrer" class="">#6648</a>
(<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a>)</li>
<li class="">chore: Add release notes for Metals 1.3.5
<a href="https://github.com/scalameta/metals/pull/6647" target="_blank" rel="noopener noreferrer" class="">#6647</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">build(deps): Update semanticdb-java from 0.10.0 to 0.10.1
<a href="https://github.com/scalameta/metals/pull/6650" target="_blank" rel="noopener noreferrer" class="">#6650</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update protobuf-java from 4.27.2 to 4.27.3
<a href="https://github.com/scalameta/metals/pull/6649" target="_blank" rel="noopener noreferrer" class="">#6649</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">fix: disambiguate workspace completions for vals in Scala 3
<a href="https://github.com/scalameta/metals/pull/6625" target="_blank" rel="noopener noreferrer" class="">#6625</a>
(<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a>)</li>
<li class="">build(deps): bump @easyops-cn/docusaurus-search-local from 0.44.2 to 0.44.4 in
/website <a href="https://github.com/scalameta/metals/pull/6646" target="_blank" rel="noopener noreferrer" class="">#6646</a>
(<a href="https://github.com/dependabot%5Bbot%5D" target="_blank" rel="noopener noreferrer" class="">dependabot[bot]</a>)</li>
</ul>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Metals v1.3.5 - Thallium]]></title>
            <link>http://scalameta.org/metals/blog/2024/08/01/thallium</link>
            <guid>http://scalameta.org/metals/blog/2024/08/01/thallium</guid>
            <pubDate>Thu, 01 Aug 2024 00:00:00 GMT</pubDate>
            <description><![CDATA[Metals v1.3.5 is a bugfix release and it's main purpose is to disable best]]></description>
            <content:encoded><![CDATA[<p>Metals v1.3.5 is a bugfix release and it's main purpose is to disable best
effort compilation for the time being.</p>
<p>This version also removed support for some of Scala 2.12 and 2.13 versions. We
will keep releasing Metals for the last 4 versions in the 2.12.x and 2.13.x
lines. This means that older versions will not keep getting bugfixes or new
features, which are version specific, but Metals will keep working for them.</p>
<table><tbody><tr><td>Commits since last release</td><td align="center">24</td></tr><tr><td>Merged PRs</td><td align="center">14</td></tr><tr><td>Contributors</td><td align="center">4</td></tr><tr><td>Closed issues</td><td align="center">3</td></tr><tr><td>New features</td><td align="center">0</td></tr></tbody></table>
<p>For full details:
<a href="https://github.com/scalameta/metals/milestone/71?closed=1" target="_blank" rel="noopener noreferrer" class="">https://github.com/scalameta/metals/milestone/71?closed=1</a></p>
<p>Metals is a language server for Scala that works with VS Code, Vim, Emacs, Zed,
Helix and Sublime Text. Metals is developed at the
<a href="https://scala.epfl.ch/" target="_blank" rel="noopener noreferrer" class="">Scala Center</a> and <a href="https://virtuslab.com/" target="_blank" rel="noopener noreferrer" class="">VirtusLab</a>
with the help from contributors from the community.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="tldr">TL;DR<a href="http://scalameta.org/metals/blog/2024/08/01/thallium#tldr" class="hash-link" aria-label="Direct link to TL;DR" title="Direct link to TL;DR" translate="no">​</a></h2>
<p>Check out <a href="https://scalameta.org/metals/" target="_blank" rel="noopener noreferrer" class="">https://scalameta.org/metals/</a>, and
give Metals a try!</p>
<ul>
<li class=""><a href="http://scalameta.org/metals/blog/2024/08/01/thallium#disable-best-effort-compilation" class="">Disable best effort compilation</a></li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="disable-best-effort-compilation">Disable best effort compilation<a href="http://scalameta.org/metals/blog/2024/08/01/thallium#disable-best-effort-compilation" class="hash-link" aria-label="Direct link to Disable best effort compilation" title="Direct link to Disable best effort compilation" translate="no">​</a></h2>
<p>Some users when testing the newest RC of Scala 3.5.0, which supports best effort
compilation, reported that Metals show some errors in the code, which is not the
case for Scala 3.4.x or when using sbt.</p>
<p>This will be most likely fixed later on, but for now, we decided to disable best
effort by default. If you want to still test it out you need to start Metals
with <code>-Dmetals.enable-best-effort=true</code> or put that into
<code>metals.serverProperties</code> in case of VS Code.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="contributors">Contributors<a href="http://scalameta.org/metals/blog/2024/08/01/thallium#contributors" class="hash-link" aria-label="Direct link to Contributors" title="Direct link to Contributors" translate="no">​</a></h2>
<p>Big thanks to everybody who contributed to this release or reported an issue!</p>
<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#bfc7d5;--prism-background-color:#292d3e"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#bfc7d5;background-color:#292d3e"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#bfc7d5"><span class="token plain">$ git shortlog -sn --no-merges v1.3.4..v1.3.5</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">     14	Tomasz Godzik</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">     7	Scalameta Bot</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">     2	Katarzyna Marek</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">     1	tgodzik</span><br></div></code></pre></div></div>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="miscellaneous">Miscellaneous<a href="http://scalameta.org/metals/blog/2024/08/01/thallium#miscellaneous" class="hash-link" aria-label="Direct link to Miscellaneous" title="Direct link to Miscellaneous" translate="no">​</a></h2>
<ul>
<li class="">fix: don't suggest completions for param names in definition
<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a></li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="merged-prs">Merged PRs<a href="http://scalameta.org/metals/blog/2024/08/01/thallium#merged-prs" class="hash-link" aria-label="Direct link to Merged PRs" title="Direct link to Merged PRs" translate="no">​</a></h2>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="v135-2024-08-01"><a href="https://github.com/scalameta/metals/tree/v1.3.5" target="_blank" rel="noopener noreferrer" class="">v1.3.5</a> (2024-08-01)<a href="http://scalameta.org/metals/blog/2024/08/01/thallium#v135-2024-08-01" class="hash-link" aria-label="Direct link to v135-2024-08-01" title="Direct link to v135-2024-08-01" translate="no">​</a></h2>
<p><a href="https://github.com/scalameta/metals/compare/v1.3.4...v1.3.5" target="_blank" rel="noopener noreferrer" class="">Full Changelog</a></p>
<p><strong>Merged pull requests:</strong></p>
<ul>
<li class="">bugfix: Disable best effort compilation by default
<a href="https://github.com/scalameta/metals/pull/6644" target="_blank" rel="noopener noreferrer" class="">#6644</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">chore: Bump scalameta to 4.9.9
<a href="https://github.com/scalameta/metals/pull/6626" target="_blank" rel="noopener noreferrer" class="">#6626</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">improvement: Timeout when resolving mtags for a long time
<a href="https://github.com/scalameta/metals/pull/6636" target="_blank" rel="noopener noreferrer" class="">#6636</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">improvement: Fall back to current Scala version in unit tests
<a href="https://github.com/scalameta/metals/pull/6638" target="_blank" rel="noopener noreferrer" class="">#6638</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">fix: don't suggest completions for param names in definition
<a href="https://github.com/scalameta/metals/pull/6620" target="_blank" rel="noopener noreferrer" class="">#6620</a>
(<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a>)</li>
<li class="">build(deps): Update ujson from 3.3.1 to 4.0.0
<a href="https://github.com/scalameta/metals/pull/6634" target="_blank" rel="noopener noreferrer" class="">#6634</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update requests from 0.8.3 to 0.9.0
<a href="https://github.com/scalameta/metals/pull/6633" target="_blank" rel="noopener noreferrer" class="">#6633</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update metaconfig-core from 0.12.0 to 0.13.0
<a href="https://github.com/scalameta/metals/pull/6631" target="_blank" rel="noopener noreferrer" class="">#6631</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update scalafmt-core from 3.8.2 to 3.8.3
<a href="https://github.com/scalameta/metals/pull/6635" target="_blank" rel="noopener noreferrer" class="">#6635</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">improvement: Also run from Java when running from config
<a href="https://github.com/scalameta/metals/pull/6306" target="_blank" rel="noopener noreferrer" class="">#6306</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">docs: release notes v1.3.4 [skip ci]
<a href="https://github.com/scalameta/metals/pull/6619" target="_blank" rel="noopener noreferrer" class="">#6619</a>
(<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a>)</li>
<li class="">build(deps): Update mill-contrib-testng from 0.11.8 to 0.11.9
<a href="https://github.com/scalameta/metals/pull/6611" target="_blank" rel="noopener noreferrer" class="">#6611</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">improvement: Move jdt dependencies outside of build.sbt
<a href="https://github.com/scalameta/metals/pull/6577" target="_blank" rel="noopener noreferrer" class="">#6577</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">chore: Bump scalameta to 4.9.8
<a href="https://github.com/scalameta/metals/pull/6570" target="_blank" rel="noopener noreferrer" class="">#6570</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
</ul>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Metals v1.3.4 - Thallium]]></title>
            <link>http://scalameta.org/metals/blog/2024/07/24/thallium</link>
            <guid>http://scalameta.org/metals/blog/2024/07/24/thallium</guid>
            <pubDate>Wed, 24 Jul 2024 00:00:00 GMT</pubDate>
            <description><![CDATA[We're happy to announce the release of Metals v1.3.4, which above all improves]]></description>
            <content:encoded><![CDATA[<p>We're happy to announce the release of Metals v1.3.4, which above all improves
the experience of working with non-compiling Scala 3 projects.</p>
<table><tbody><tr><td>Commits since last release</td><td align="center">31</td></tr><tr><td>Merged PRs</td><td align="center">21</td></tr><tr><td>Contributors</td><td align="center">6</td></tr><tr><td>Closed issues</td><td align="center">12</td></tr><tr><td>New features</td><td align="center">2</td></tr></tbody></table>
<p>For full details:
<a href="https://github.com/scalameta/metals/milestone/70?closed=1" target="_blank" rel="noopener noreferrer" class="">https://github.com/scalameta/metals/milestone/70?closed=1</a></p>
<p>Metals is a language server for Scala that works with VS Code, Vim, Emacs, Zed,
Helix and Sublime Text. Metals is developed at the
<a href="https://scala.epfl.ch/" target="_blank" rel="noopener noreferrer" class="">Scala Center</a> and <a href="https://virtuslab.com/" target="_blank" rel="noopener noreferrer" class="">VirtusLab</a>
with the help from contributors from the community.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="tldr">TL;DR<a href="http://scalameta.org/metals/blog/2024/07/24/thallium#tldr" class="hash-link" aria-label="Direct link to TL;DR" title="Direct link to TL;DR" translate="no">​</a></h2>
<p>Check out <a href="https://scalameta.org/metals/" target="_blank" rel="noopener noreferrer" class="">https://scalameta.org/metals/</a>, and
give Metals a try!</p>
<ul>
<li class=""><a href="http://scalameta.org/metals/blog/2024/07/24/thallium#scala-3-best-effort-compilation" class="">Scala 3 best effort compilation</a></li>
<li class=""><a href="http://scalameta.org/metals/blog/2024/07/24/thallium#sort-workspace-members-with-the-same-name-by-frequency" class="">Sort workspace members with the same name by frequency</a></li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="scala-3-best-effort-compilation">Scala 3 best effort compilation<a href="http://scalameta.org/metals/blog/2024/07/24/thallium#scala-3-best-effort-compilation" class="hash-link" aria-label="Direct link to Scala 3 best effort compilation" title="Direct link to Scala 3 best effort compilation" translate="no">​</a></h2>
<p>Starting with this release Metals will take advantage of Scala 3 best effort
compilation. This should greatly improve the IDE experience of working with
non-compiling code. With best effort compilation Scala 3 compiler will produce a
tasty-like format files that can also include partially broken trees even when a
module does not compile. Those files, similarly to normal tasty files, will be
later consumed by the presentation compiler providing most up to date
information about the project. This great feature has been delivered by
<a href="https://github.com/jchyb" target="_blank" rel="noopener noreferrer" class="">jchyb</a> and will be available starting with Scala
<code>3.5.0</code>.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="sort-workspace-members-with-the-same-name-by-frequency">Sort workspace members with the same name by frequency<a href="http://scalameta.org/metals/blog/2024/07/24/thallium#sort-workspace-members-with-the-same-name-by-frequency" class="hash-link" aria-label="Direct link to Sort workspace members with the same name by frequency" title="Direct link to Sort workspace members with the same name by frequency" translate="no">​</a></h2>
<p>Workspace member completions with the same name are now sorted by their usage
frequency, so the symbols more often referenced in project appear higher on the
list of completions. This cool feature was added by
<a href="https://github.com/Temurlock" target="_blank" rel="noopener noreferrer" class="">Temurlock</a>.</p>
<p><img decoding="async" loading="lazy" src="https://raw.githubusercontent.com/scalameta/gh-pages-images/main/metals/2024-07-24-thallium/lAOeVCZ.gif" alt="sort-by-freq" class="img_ev3q"></p>
<h1>Miscellaneous</h1>
<ul>
<li class="">fix: show zero extent references for implicits when using pc</li>
<li class="">fix: correctly handle <code>.scala</code> files with shebang</li>
<li class="">fix: suggest import for maven/gradle when <code>defaultBspToBuildTool = true</code></li>
<li class="">fix: only detect 100% sure test names <a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a></li>
<li class="">fix: correctly prefix scope completions when conflicting for Scala 2</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="contributors">Contributors<a href="http://scalameta.org/metals/blog/2024/07/24/thallium#contributors" class="hash-link" aria-label="Direct link to Contributors" title="Direct link to Contributors" translate="no">​</a></h2>
<p>Big thanks to everybody who contributed to this release or reported an issue!</p>
<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#bfc7d5;--prism-background-color:#292d3e"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#bfc7d5;background-color:#292d3e"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#bfc7d5"><span class="token plain">$ git shortlog -sn --no-merges v1.3.3..v1.3.4</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">     11	Simon Parten</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">     7	Katarzyna Marek</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">     7	Tomasz Godzik</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">     4	Scalameta Bot</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">     1	Jan Chyb</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">     1	temurlock</span><br></div></code></pre></div></div>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="merged-prs">Merged PRs<a href="http://scalameta.org/metals/blog/2024/07/24/thallium#merged-prs" class="hash-link" aria-label="Direct link to Merged PRs" title="Direct link to Merged PRs" translate="no">​</a></h2>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="v134-2024-07-24"><a href="https://github.com/scalameta/metals/tree/v1.3.4" target="_blank" rel="noopener noreferrer" class="">v1.3.4</a> (2024-07-24)<a href="http://scalameta.org/metals/blog/2024/07/24/thallium#v134-2024-07-24" class="hash-link" aria-label="Direct link to v134-2024-07-24" title="Direct link to v134-2024-07-24" translate="no">​</a></h2>
<p><a href="https://github.com/scalameta/metals/compare/v1.3.3...v1.3.4" target="_blank" rel="noopener noreferrer" class="">Full Changelog</a></p>
<p><strong>Merged pull requests:</strong></p>
<ul>
<li class="">fix: correctly prefix scope completions when conflicting for Scala 2
<a href="https://github.com/scalameta/metals/pull/6615" target="_blank" rel="noopener noreferrer" class="">#6615</a>
(<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a>)</li>
<li class="">bugfix: Only detect 100% sure test names
<a href="https://github.com/scalameta/metals/pull/6618" target="_blank" rel="noopener noreferrer" class="">#6618</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">bugfix: Retry deleting Bloop folders
<a href="https://github.com/scalameta/metals/pull/6614" target="_blank" rel="noopener noreferrer" class="">#6614</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">fix: suggest import for maven/gradle when <code>defaultBspToBuildTool = true</code>
<a href="https://github.com/scalameta/metals/pull/6603" target="_blank" rel="noopener noreferrer" class="">#6603</a>
(<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a>)</li>
<li class="">fix: correctly handle <code>.scala</code> with shebang
<a href="https://github.com/scalameta/metals/pull/6602" target="_blank" rel="noopener noreferrer" class="">#6602</a>
(<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a>)</li>
<li class="">fix: by-max on empty <a href="https://github.com/scalameta/metals/pull/6610" target="_blank" rel="noopener noreferrer" class="">#6610</a>
(<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a>)</li>
<li class="">build(deps): Update h2 from 2.2.224 to 2.3.230
<a href="https://github.com/scalameta/metals/pull/6605" target="_blank" rel="noopener noreferrer" class="">#6605</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update cli_3, scala-cli-bsp from 1.4.0 to 1.4.1
<a href="https://github.com/scalameta/metals/pull/6609" target="_blank" rel="noopener noreferrer" class="">#6609</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update ammonite-util from 3.0.0-M2-13-23a8ef64 to
3.0.0-M2-15-9bed9700 <a href="https://github.com/scalameta/metals/pull/6606" target="_blank" rel="noopener noreferrer" class="">#6606</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">feature: Add support for Scala 3's Best Effort compilation
<a href="https://github.com/scalameta/metals/pull/5219" target="_blank" rel="noopener noreferrer" class="">#5219</a>
(<a href="https://github.com/jchyb" target="_blank" rel="noopener noreferrer" class="">jchyb</a>)</li>
<li class="">chore: remove some deprecations
<a href="https://github.com/scalameta/metals/pull/6600" target="_blank" rel="noopener noreferrer" class="">#6600</a>
(<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a>)</li>
<li class="">test: fix <code>implicit-args-3</code> test
<a href="https://github.com/scalameta/metals/pull/6596" target="_blank" rel="noopener noreferrer" class="">#6596</a>
(<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a>)</li>
<li class="">improvement: sorting workspace members with same name by frequency
<a href="https://github.com/scalameta/metals/pull/6393" target="_blank" rel="noopener noreferrer" class="">#6393</a>
(<a href="https://github.com/Temurlock" target="_blank" rel="noopener noreferrer" class="">Temurlock</a>)</li>
<li class="">Range selection for scala 3
<a href="https://github.com/scalameta/metals/pull/6485" target="_blank" rel="noopener noreferrer" class="">#6485</a>
(<a href="https://github.com/Quafadas" target="_blank" rel="noopener noreferrer" class="">Quafadas</a>)</li>
<li class="">fix: show zero extent references when using pc
<a href="https://github.com/scalameta/metals/pull/6583" target="_blank" rel="noopener noreferrer" class="">#6583</a>
(<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a>)</li>
<li class="">improvement: Add supported by section
<a href="https://github.com/scalameta/metals/pull/6520" target="_blank" rel="noopener noreferrer" class="">#6520</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">chore: Add support for Scala 3.3.4-RC1
<a href="https://github.com/scalameta/metals/pull/6591" target="_blank" rel="noopener noreferrer" class="">#6591</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">build(deps): Update jsoup from 1.17.2 to 1.18.1
<a href="https://github.com/scalameta/metals/pull/6585" target="_blank" rel="noopener noreferrer" class="">#6585</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">chore: Update mdoc to 2.5.4
<a href="https://github.com/scalameta/metals/pull/6523" target="_blank" rel="noopener noreferrer" class="">#6523</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">bugfix: Fix release title
<a href="https://github.com/scalameta/metals/pull/6590" target="_blank" rel="noopener noreferrer" class="">#6590</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">docs: Add release notes for Metals 1.3.3
<a href="https://github.com/scalameta/metals/pull/6578" target="_blank" rel="noopener noreferrer" class="">#6578</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
</ul>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Metals v1.3.3 - Thallium]]></title>
            <link>http://scalameta.org/metals/blog/2024/07/12/thallium</link>
            <guid>http://scalameta.org/metals/blog/2024/07/12/thallium</guid>
            <pubDate>Fri, 12 Jul 2024 00:00:00 GMT</pubDate>
            <description><![CDATA[We're happy to announce the release of Metals v1.3.3, which brings a number of]]></description>
            <content:encoded><![CDATA[<p>We're happy to announce the release of Metals v1.3.3, which brings a number of
long awaited bugfixes and some new features.</p>
<table><tbody><tr><td>Commits since last release</td><td align="center">41</td></tr><tr><td>Merged PRs</td><td align="center">37</td></tr><tr><td>Contributors</td><td align="center">3</td></tr><tr><td>Closed issues</td><td align="center">15</td></tr><tr><td>New features</td><td align="center">3</td></tr></tbody></table>
<p>For full details:
<a href="https://github.com/scalameta/metals/milestone/69?closed=1" target="_blank" rel="noopener noreferrer" class="">https://github.com/scalameta/metals/milestone/69?closed=1</a></p>
<p>Metals is a language server for Scala that works with VS Code, Vim, Emacs, Zed,
Helix and Sublime Text. Metals is developed at the
<a href="https://scala.epfl.ch/" target="_blank" rel="noopener noreferrer" class="">Scala Center</a> and <a href="https://virtuslab.com/" target="_blank" rel="noopener noreferrer" class="">VirtusLab</a>
with the help from contributors from the community.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="tldr">TL;DR<a href="http://scalameta.org/metals/blog/2024/07/12/thallium#tldr" class="hash-link" aria-label="Direct link to TL;DR" title="Direct link to TL;DR" translate="no">​</a></h2>
<p>Check out <a href="https://scalameta.org/metals/" target="_blank" rel="noopener noreferrer" class="">https://scalameta.org/metals/</a>, and
give Metals a try!</p>
<ul>
<li class=""><a href="http://scalameta.org/metals/blog/2024/07/12/thallium#index-implementations-in-jdk-sources" class="">Index implementations in JDK sources</a></li>
<li class=""><a href="http://scalameta.org/metals/blog/2024/07/12/thallium#value-completions-for-union-types" class="">Value completions for union types</a></li>
<li class=""><a href="http://scalameta.org/metals/blog/2024/07/12/thallium#allow-debugging-for-all-build-servers" class="">Allow debugging for all build servers</a></li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="index-implementations-in-jdk-sources">Index implementations in JDK sources<a href="http://scalameta.org/metals/blog/2024/07/12/thallium#index-implementations-in-jdk-sources" class="hash-link" aria-label="Direct link to Index implementations in JDK sources" title="Direct link to Index implementations in JDK sources" translate="no">​</a></h2>
<p>Since Metals v1.3.0 it's possible to search for implementations of classes or
classes' members inside the dependency sources. However, this wasn't enabled for
JDK sources as it added a substantial amount of indexing time even in smaller
projects.</p>
<p>In this version of Metals we added a central database that can be found under
the <code>.metals</code> directory in user home, which contains shared indexes of JDK
sources thus avoiding a need to index them more than once on any given machine.</p>
<p><img decoding="async" loading="lazy" src="https://raw.githubusercontent.com/scalameta/gh-pages-images/main/metals/2024-07-12-thallium/lTMmhD8.gif" alt="jdk-sources" class="img_ev3q"></p>
<p>This great improvement was added by <a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a></p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="value-completions-for-union-types">Value completions for union types<a href="http://scalameta.org/metals/blog/2024/07/12/thallium#value-completions-for-union-types" class="hash-link" aria-label="Direct link to Value completions for union types" title="Direct link to Value completions for union types" translate="no">​</a></h2>
<p>Union types are a new feature in Scala 3 that allows types to be combined when
we need to specify that certain value can be of more than one type.</p>
<p>For example we can have:</p>
<div class="language-scala codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#bfc7d5;--prism-background-color:#292d3e"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-scala codeBlock_bY9V thin-scrollbar" style="color:#bfc7d5;background-color:#292d3e"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#bfc7d5"><span class="token plain">val a: Int | String = "Hello!"</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">val b: Int | String = 123</span><br></div></code></pre></div></div>
<p>In this version of Metals <a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a> added
support for value completions where union types are unions of specific literal
types. If used together with intersection types it will still work as expected.</p>
<p><img decoding="async" loading="lazy" src="https://raw.githubusercontent.com/scalameta/gh-pages-images/main/metals/2024-07-12-thallium/FKrytqC.png" alt="example" class="img_ev3q"></p>
<p>The feature will work on latest LTS and Next Scala versions as it required some
work upstream in the compiler itself.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="allow-debugging-for-all-build-servers">Allow debugging for all build servers<a href="http://scalameta.org/metals/blog/2024/07/12/thallium#allow-debugging-for-all-build-servers" class="hash-link" aria-label="Direct link to Allow debugging for all build servers" title="Direct link to Allow debugging for all build servers" translate="no">​</a></h2>
<p>For a long while it was possible to debug your code only when using Metals with
Bloop or sbt server. This was caused by the fact that debugging was implemented
in a separate library and would require additional data from the build tools.</p>
<p>In this version we were able to work around that and bring debugging
capabilities to Metals in case a server doesn't provide debugging by itself.
Unfortunately, in those cases hot code reload will not be available.</p>
<p>This should work both for main classes and tests.</p>
<p>Since this is quite a new feature please do let us know about any issues.</p>
<p>This is another great feature was brought by
<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a>.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="miscellaneous">Miscellaneous<a href="http://scalameta.org/metals/blog/2024/07/12/thallium#miscellaneous" class="hash-link" aria-label="Direct link to Miscellaneous" title="Direct link to Miscellaneous" translate="no">​</a></h2>
<ul>
<li class="">bugfix: correctly resolve project's java in doctor and problem resolver
<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a></li>
<li class="">bugfix: Don't use -X options in .jvmopts for tests
<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a></li>
<li class="">bugfix: auto import for really long names
<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a></li>
<li class="">bugfix: Queue references calls to prevent OOM
<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a></li>
<li class="">bugfix: MAke convert to named args for <code>extends</code>
<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a></li>
<li class="">bugfix: Show errors for Scala 3 in Bazel correctly
<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a></li>
<li class="">bugfix: change project ref setting to support VSCode workspace folder reload
<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a></li>
<li class="">bugfix: use already imported package aliases for auto import
<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a></li>
<li class="">bugfix: clear diagnostics after close for single file
<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a></li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="contributors">Contributors<a href="http://scalameta.org/metals/blog/2024/07/12/thallium#contributors" class="hash-link" aria-label="Direct link to Contributors" title="Direct link to Contributors" translate="no">​</a></h2>
<p>Big thanks to everybody who contributed to this release or reported an issue!</p>
<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#bfc7d5;--prism-background-color:#292d3e"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#bfc7d5;background-color:#292d3e"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#bfc7d5"><span class="token plain">$ git shortlog -sn --no-merges v1.3.2..v1.3.3</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">    16	Katarzyna Marek</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">    16	Tomasz Godzik</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">     7	Scalameta Bot</span><br></div></code></pre></div></div>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="merged-prs">Merged PRs<a href="http://scalameta.org/metals/blog/2024/07/12/thallium#merged-prs" class="hash-link" aria-label="Direct link to Merged PRs" title="Direct link to Merged PRs" translate="no">​</a></h2>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="v133-2024-07-12"><a href="https://github.com/scalameta/metals/tree/v1.3.3" target="_blank" rel="noopener noreferrer" class="">v1.3.3</a> (2024-07-12)<a href="http://scalameta.org/metals/blog/2024/07/12/thallium#v133-2024-07-12" class="hash-link" aria-label="Direct link to v133-2024-07-12" title="Direct link to v133-2024-07-12" translate="no">​</a></h2>
<p><a href="https://github.com/scalameta/metals/compare/v1.3.2...v1.3.3" target="_blank" rel="noopener noreferrer" class="">Full Changelog</a></p>
<p><strong>Merged pull requests:</strong></p>
<ul>
<li class="">fix: clear diagnostics after close for single file
<a href="https://github.com/scalameta/metals/pull/6576" target="_blank" rel="noopener noreferrer" class="">#6576</a>
(<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a>)</li>
<li class="">fix: correctly get build target deps for DAP
<a href="https://github.com/scalameta/metals/pull/6580" target="_blank" rel="noopener noreferrer" class="">#6580</a>
(<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a>)</li>
<li class="">chore: Try to use intransitive instead
<a href="https://github.com/scalameta/metals/pull/6573" target="_blank" rel="noopener noreferrer" class="">#6573</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">chore: Bump Bloop to 1.6.0
<a href="https://github.com/scalameta/metals/pull/6574" target="_blank" rel="noopener noreferrer" class="">#6574</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">fix: use already imported package aliases for auto import
<a href="https://github.com/scalameta/metals/pull/6575" target="_blank" rel="noopener noreferrer" class="">#6575</a>
(<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a>)</li>
<li class="">bugfix: Bump scala debug adapter
<a href="https://github.com/scalameta/metals/pull/6568" target="_blank" rel="noopener noreferrer" class="">#6568</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">bugfix: Don't search for stacktrace line if at word is not present
<a href="https://github.com/scalameta/metals/pull/6555" target="_blank" rel="noopener noreferrer" class="">#6555</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">bugfix: Don't calculate digest every time build tool is used
<a href="https://github.com/scalameta/metals/pull/6561" target="_blank" rel="noopener noreferrer" class="">#6561</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">fix: change project ref setting to support VSCode workspace folder reload
<a href="https://github.com/scalameta/metals/pull/6563" target="_blank" rel="noopener noreferrer" class="">#6563</a>
(<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a>)</li>
<li class="">bugfix: Use latest stable mill version
<a href="https://github.com/scalameta/metals/pull/6566" target="_blank" rel="noopener noreferrer" class="">#6566</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">feat: run DAP for test suites in Metals
<a href="https://github.com/scalameta/metals/pull/6551" target="_blank" rel="noopener noreferrer" class="">#6551</a>
(<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a>)</li>
<li class="">chore: move mill test to newest mill version
<a href="https://github.com/scalameta/metals/pull/6562" target="_blank" rel="noopener noreferrer" class="">#6562</a>
(<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a>)</li>
<li class="">bugfix: Fix tests after circe released version for 0.5
<a href="https://github.com/scalameta/metals/pull/6560" target="_blank" rel="noopener noreferrer" class="">#6560</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">build(deps): Update bloop-config from 1.5.5 to 2.0.2
<a href="https://github.com/scalameta/metals/pull/6534" target="_blank" rel="noopener noreferrer" class="">#6534</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">bugfix: Show errors for Scala 3 in Bazel correctly
<a href="https://github.com/scalameta/metals/pull/6556" target="_blank" rel="noopener noreferrer" class="">#6556</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">chore: Bump local search to fix it
<a href="https://github.com/scalameta/metals/pull/6554" target="_blank" rel="noopener noreferrer" class="">#6554</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">improvement: Don't query database on each format
<a href="https://github.com/scalameta/metals/pull/6550" target="_blank" rel="noopener noreferrer" class="">#6550</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">add test for <code>@</code> in path for Windows
<a href="https://github.com/scalameta/metals/pull/6545" target="_blank" rel="noopener noreferrer" class="">#6545</a>
(<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a>)</li>
<li class="">build(deps): Update protobuf-java from 4.27.1 to 4.27.2
<a href="https://github.com/scalameta/metals/pull/6546" target="_blank" rel="noopener noreferrer" class="">#6546</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update ammonite-util from 3.0.0-M2-12-951bbc1e to
3.0.0-M2-13-23a8ef64 <a href="https://github.com/scalameta/metals/pull/6547" target="_blank" rel="noopener noreferrer" class="">#6547</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update cli_3, scala-cli-bsp from 1.3.2 to 1.4.0
<a href="https://github.com/scalameta/metals/pull/6548" target="_blank" rel="noopener noreferrer" class="">#6548</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">improvement: add debug adapter for running main class to metals
<a href="https://github.com/scalameta/metals/pull/6383" target="_blank" rel="noopener noreferrer" class="">#6383</a>
(<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a>)</li>
<li class="">fix: convert to named args for <code>extends</code>
<a href="https://github.com/scalameta/metals/pull/6537" target="_blank" rel="noopener noreferrer" class="">#6537</a>
(<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a>)</li>
<li class="">Queue pc references calls to prevent OOM
<a href="https://github.com/scalameta/metals/pull/6539" target="_blank" rel="noopener noreferrer" class="">#6539</a>
(<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a>)</li>
<li class="">fix: cover additional cases for singleton types
<a href="https://github.com/scalameta/metals/pull/6541" target="_blank" rel="noopener noreferrer" class="">#6541</a>
(<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a>)</li>
<li class="">chore: update <code>MillVersionSuite</code> in <code>TestGroups</code>
<a href="https://github.com/scalameta/metals/pull/6543" target="_blank" rel="noopener noreferrer" class="">#6543</a>
(<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a>)</li>
<li class="">fix: don't pass mill version as arg to command line
<a href="https://github.com/scalameta/metals/pull/6542" target="_blank" rel="noopener noreferrer" class="">#6542</a>
(<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a>)</li>
<li class="">fix: auto import for really long names
<a href="https://github.com/scalameta/metals/pull/6531" target="_blank" rel="noopener noreferrer" class="">#6531</a>
(<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a>)</li>
<li class="">build(deps): Update semanticdb-java from 0.9.10 to 0.10.0
<a href="https://github.com/scalameta/metals/pull/6536" target="_blank" rel="noopener noreferrer" class="">#6536</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">bugfix: Always require _ to calculate scala version from jar
<a href="https://github.com/scalameta/metals/pull/6538" target="_blank" rel="noopener noreferrer" class="">#6538</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">bugfix: Don't use everything in .jvmopts for tests
<a href="https://github.com/scalameta/metals/pull/6526" target="_blank" rel="noopener noreferrer" class="">#6526</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">feat: add value completions for union types
<a href="https://github.com/scalameta/metals/pull/6498" target="_blank" rel="noopener noreferrer" class="">#6498</a>
(<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a>)</li>
<li class="">build(deps): Update scalameta, semanticdb-scalac, ... from 4.9.6 to 4.9.7
<a href="https://github.com/scalameta/metals/pull/6530" target="_blank" rel="noopener noreferrer" class="">#6530</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update ammonite-util from 3.0.0-M2-11-713b6963 to
3.0.0-M2-12-951bbc1e <a href="https://github.com/scalameta/metals/pull/6528" target="_blank" rel="noopener noreferrer" class="">#6528</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">improvement: add jdk indexing
<a href="https://github.com/scalameta/metals/pull/6481" target="_blank" rel="noopener noreferrer" class="">#6481</a>
(<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a>)</li>
<li class="">fix: correctly resolve project's java in doctor and problem resolver
<a href="https://github.com/scalameta/metals/pull/6517" target="_blank" rel="noopener noreferrer" class="">#6517</a>
(<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a>)</li>
<li class="">docs: release notes v1.3.2
<a href="https://github.com/scalameta/metals/pull/6518" target="_blank" rel="noopener noreferrer" class="">#6518</a>
(<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a>)</li>
</ul>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Metals v1.3.2 - Thallium]]></title>
            <link>http://scalameta.org/metals/blog/2024/06/19/thallium</link>
            <guid>http://scalameta.org/metals/blog/2024/06/19/thallium</guid>
            <pubDate>Wed, 19 Jun 2024 00:00:00 GMT</pubDate>
            <description><![CDATA[We're excited to announce the release of Metals v1.3.2. This new version not]]></description>
            <content:encoded><![CDATA[<p>We're excited to announce the release of Metals v1.3.2. This new version not
only addresses numerous bugs but also enhances the experience of working with
code that does not compile.</p>
<table><tbody><tr><td>Commits since last release</td><td align="center">87</td></tr><tr><td>Merged PRs</td><td align="center">82</td></tr><tr><td>Contributors</td><td align="center">13</td></tr><tr><td>Closed issues</td><td align="center">26</td></tr><tr><td>New features</td><td align="center">1</td></tr></tbody></table>
<p>For full details:
<a href="https://github.com/scalameta/metals/milestone/68?closed=1" target="_blank" rel="noopener noreferrer" class="">https://github.com/scalameta/metals/milestone/68?closed=1</a></p>
<p>Metals is a language server for Scala that works with VS Code, Vim, Emacs, Zed,
Helix and Sublime Text. Metals is developed at the
<a href="https://scala.epfl.ch/" target="_blank" rel="noopener noreferrer" class="">Scala Center</a> and <a href="https://virtuslab.com/" target="_blank" rel="noopener noreferrer" class="">VirtusLab</a>
with the help from contributors from the community.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="tldr">TL;DR<a href="http://scalameta.org/metals/blog/2024/06/19/thallium#tldr" class="hash-link" aria-label="Direct link to TL;DR" title="Direct link to TL;DR" translate="no">​</a></h2>
<p>Check out <a href="https://scalameta.org/metals/" target="_blank" rel="noopener noreferrer" class="">https://scalameta.org/metals/</a>, and
give Metals a try!</p>
<ul>
<li class=""><a href="http://scalameta.org/metals/blog/2024/06/19/thallium#outline-compilation" class="">Outline compilation</a></li>
<li class=""><a href="http://scalameta.org/metals/blog/2024/06/19/thallium#use-presentation-compiler-as-fallback-for-references-search" class="">Use presentation compiler as fallback for references search</a></li>
<li class=""><a href="http://scalameta.org/metals/blog/2024/06/19/thallium#allow-to-override-debug-server-startup-timeout" class="">Allow to override debug server startup timeout</a></li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="outline-compilation">Outline compilation<a href="http://scalameta.org/metals/blog/2024/06/19/thallium#outline-compilation" class="hash-link" aria-label="Direct link to Outline compilation" title="Direct link to Outline compilation" translate="no">​</a></h2>
<p>Metals relies on information produced during compilation for much of its
functionality. This limits the usefulness of many Metals features when the code
is broken either by providing outdated information or no information if the
project was never successfully compiled.</p>
<p>Starting with this release Metals will utilize
<a href="https://github.com/scala/scala/blob/d800253bbd4cf90d2cf863f1b284dac3561e7446/src/compiler/scala/tools/nsc/settings/ScalaSettings.scala#L347" target="_blank" rel="noopener noreferrer" class="">outline compilation</a>
to get current information about not compiling files for Scala 2.12.x and
2.13.x. This should improve the experience of working with not compiling code.</p>
<p>There are a few limitations to this improvement, the biggest being that the
information from outline compilation will be only available within the same
build target (module).</p>
<p>Further work is being done on a similar approach for Scala 3, which should be
available in one of the upcoming releases.</p>
<p><img decoding="async" loading="lazy" src="https://raw.githubusercontent.com/scalameta/gh-pages-images/main/metals/2024-06-19-thallium/ZBwWGTK.gif" alt="broken-code" class="img_ev3q"> <em>Completions on not compiling
code</em></p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="use-presentation-compiler-as-fallback-for-references-search">Use presentation compiler as fallback for references search<a href="http://scalameta.org/metals/blog/2024/06/19/thallium#use-presentation-compiler-as-fallback-for-references-search" class="hash-link" aria-label="Direct link to Use presentation compiler as fallback for references search" title="Direct link to Use presentation compiler as fallback for references search" translate="no">​</a></h2>
<p>Before this release Metals would always use information from SemanticDB to
search for references. Since SemanticDB is produced during compilation it would
fail to find references for code that didn't compile. Now if SemanticDB
information is missing or outdated Metals will fallback to using presentation
compiler for reference search for all the files this concerns.</p>
<p><img decoding="async" loading="lazy" src="https://raw.githubusercontent.com/scalameta/gh-pages-images/main/metals/2024-06-19-thallium/tI43rhl.gif" alt="uncompiled-go-to-ref" class="img_ev3q"> <em>Find references on
non-compiling code</em></p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="allow-to-override-debug-server-startup-timeout">Allow to override debug server startup timeout<a href="http://scalameta.org/metals/blog/2024/06/19/thallium#allow-to-override-debug-server-startup-timeout" class="hash-link" aria-label="Direct link to Allow to override debug server startup timeout" title="Direct link to Allow to override debug server startup timeout" translate="no">​</a></h2>
<p>Until this release there was a fixed timeout for debug server startup time set
to one minute. This proved to be insufficient for some larger projects and can
now be overridden using a server property, e.g.
<code>-Dmetals.debug-server-start-timeout=90</code> increases the timeout to 90 seconds.</p>
<p>This is meant more as a temporary workaround, we also plan to work on decreasing
the startup times, as this heavily impacts the user experience.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="miscellaneous">Miscellaneous<a href="http://scalameta.org/metals/blog/2024/06/19/thallium#miscellaneous" class="hash-link" aria-label="Direct link to Miscellaneous" title="Direct link to Miscellaneous" translate="no">​</a></h2>
<ul>
<li class="">improvement: suggest scalafix config amend if
<code>OrganizeImports.targetDialect = Scala3</code> missing for Scala 3
<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a></li>
<li class="">improvement: Show actual Scala versions supported by Metals in docs and when
running <code>metals --versions</code> <a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a></li>
<li class="">fix: Fix infinite indexing for broken sources
<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a></li>
<li class="">fix: target jar classpath resolution for <code>mill-bsp</code>
<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a></li>
<li class="">fix: use OS specific spelling for Path/PATH
<a href="https://github.com/mdelomba" target="_blank" rel="noopener noreferrer" class="">mdelomba</a></li>
<li class="">fix: search for gradle wrapper at project root
<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a></li>
<li class="">fix: don't start mtags with full classpath
<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a></li>
<li class="">fix: indexing for filenames with ```
<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a></li>
<li class="">fix: infer correct build target for jars <a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a></li>
<li class="">fix: fix millw script <a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a></li>
<li class="">fix: insert missing members in correct place for case classes
<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a></li>
<li class="">fix: highlighting and completions for multiline strings in worksheets in Scala
3 <a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a></li>
<li class="">feat: set unused tag for unused diagnostics
<a href="https://github.com/ghostbuster91" target="_blank" rel="noopener noreferrer" class="">ghostbuster91</a></li>
<li class="">fix: account for additional parenthesis around args in convert to named args
<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a></li>
<li class="">improvement: don't run additional compilation on find references
<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a></li>
<li class="">fix: indexing when java files contain <code>#include</code> header
<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a></li>
<li class="">fix: correctly auto import when there is a renamed symbol with the same name
in scope <a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a></li>
<li class="">fix: handle implicit params in extract method
<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a></li>
<li class="">fix: don't show implicit conversion for implicit params
<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a></li>
<li class="">fix: resolve correctly project refs for sbt
<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a></li>
<li class="">improvement: make sure we always have correct projectview file for Bazel
<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a></li>
<li class="">fix: convert block args to named args when in parenthesis
<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a></li>
<li class="">fix: auto import for class names with long packages
<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a></li>
<li class="">fix: don't create <code>semanticdb</code> next to user sources for single files
<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a></li>
<li class="">fix: don't override <code>JAVA_HOME</code> if it already exists for Bazel to avoid
unnecessary restarts</li>
<li class="">improvement: recreate classloader if scalafix classloading fails.
<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a></li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="contributors">Contributors<a href="http://scalameta.org/metals/blog/2024/06/19/thallium#contributors" class="hash-link" aria-label="Direct link to Contributors" title="Direct link to Contributors" translate="no">​</a></h2>
<p>Big thanks to everybody who contributed to this release or reported an issue!</p>
<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#bfc7d5;--prism-background-color:#292d3e"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#bfc7d5;background-color:#292d3e"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#bfc7d5"><span class="token plain">$ git shortlog -sn --no-merges v1.3.1..v1.3.2</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">    26	Katarzyna Marek</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">    24	Scalameta Bot</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">    18	Tomasz Godzik</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">     7	tgodzik</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">     4	dependabot[bot]</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">     1	Bohdan Buz</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">     1	Brian Wignall</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">     1	Grigorii Chudnov</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">     1	Kasper Kondzielski</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">     1	Michael DeLomba</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">     1	scalameta-bot</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">     1	spamegg</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">     1	temurlock</span><br></div></code></pre></div></div>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="merged-prs">Merged PRs<a href="http://scalameta.org/metals/blog/2024/06/19/thallium#merged-prs" class="hash-link" aria-label="Direct link to Merged PRs" title="Direct link to Merged PRs" translate="no">​</a></h2>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="v132-2024-06-19"><a href="https://github.com/scalameta/metals/tree/v1.3.2" target="_blank" rel="noopener noreferrer" class="">v1.3.2</a> (2024-06-19)<a href="http://scalameta.org/metals/blog/2024/06/19/thallium#v132-2024-06-19" class="hash-link" aria-label="Direct link to v132-2024-06-19" title="Direct link to v132-2024-06-19" translate="no">​</a></h2>
<p><a href="https://github.com/scalameta/metals/compare/v1.3.1...v1.3.2" target="_blank" rel="noopener noreferrer" class="">Full Changelog</a></p>
<p><strong>Merged pull requests:</strong></p>
<ul>
<li class="">improvement: Recreate classloader if scalafix classloading fails
<a href="https://github.com/scalameta/metals/pull/6516" target="_blank" rel="noopener noreferrer" class="">#6516</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">bugfix: Don't override JAVA_HOME if it already exists
<a href="https://github.com/scalameta/metals/pull/6504" target="_blank" rel="noopener noreferrer" class="">#6504</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">fix: don't create <code>semanticdb</code> next to user sources for single files
<a href="https://github.com/scalameta/metals/pull/6509" target="_blank" rel="noopener noreferrer" class="">#6509</a>
(<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a>)</li>
<li class="">refactor: code duplication in SupportedScalaVersions
<a href="https://github.com/scalameta/metals/pull/6511" target="_blank" rel="noopener noreferrer" class="">#6511</a>
(<a href="https://github.com/buzbohdan" target="_blank" rel="noopener noreferrer" class="">buzbohdan</a>)</li>
<li class="">build(deps): Update scalafmt-core from 3.8.1 to 3.8.2
<a href="https://github.com/scalameta/metals/pull/6514" target="_blank" rel="noopener noreferrer" class="">#6514</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update scalameta, semanticdb-scalac, ... from 4.9.5 to 4.9.6
<a href="https://github.com/scalameta/metals/pull/6515" target="_blank" rel="noopener noreferrer" class="">#6515</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update xnio-nio from 3.8.15.Final to 3.8.16.Final
<a href="https://github.com/scalameta/metals/pull/6513" target="_blank" rel="noopener noreferrer" class="">#6513</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update ammonite-util from 3.0.0-M2-8-ba4429a2 to
3.0.0-M2-11-713b6963 <a href="https://github.com/scalameta/metals/pull/6512" target="_blank" rel="noopener noreferrer" class="">#6512</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">improvement: Don't show bazel navigation issue always
<a href="https://github.com/scalameta/metals/pull/6510" target="_blank" rel="noopener noreferrer" class="">#6510</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">fix: propagate jvmopts to tests
<a href="https://github.com/scalameta/metals/pull/6505" target="_blank" rel="noopener noreferrer" class="">#6505</a>
(<a href="https://github.com/gchudnov" target="_blank" rel="noopener noreferrer" class="">gchudnov</a>)</li>
<li class="">fix: prefer latter fully qualified name parts when building trigrams for fuzzy
search <a href="https://github.com/scalameta/metals/pull/6482" target="_blank" rel="noopener noreferrer" class="">#6482</a>
(<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a>)</li>
<li class="">fix: convert block args to named args when in parenthesis
<a href="https://github.com/scalameta/metals/pull/6487" target="_blank" rel="noopener noreferrer" class="">#6487</a>
(<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a>)</li>
<li class="">Add missing word <a href="https://github.com/scalameta/metals/pull/6502" target="_blank" rel="noopener noreferrer" class="">#6502</a>
(<a href="https://github.com/bwignall" target="_blank" rel="noopener noreferrer" class="">bwignall</a>)</li>
<li class="">chore: Don't recalculate build tools every time
<a href="https://github.com/scalameta/metals/pull/6462" target="_blank" rel="noopener noreferrer" class="">#6462</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">improvement: Make sure we always have correct projectview file
<a href="https://github.com/scalameta/metals/pull/6457" target="_blank" rel="noopener noreferrer" class="">#6457</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">improvement: sort abstract members for auto implement
<a href="https://github.com/scalameta/metals/pull/6496" target="_blank" rel="noopener noreferrer" class="">#6496</a>
(<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a>)</li>
<li class="">fix: resolve correctly project refs for sbt
<a href="https://github.com/scalameta/metals/pull/6486" target="_blank" rel="noopener noreferrer" class="">#6486</a>
(<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a>)</li>
<li class="">improvement: don't delete classpath jars for running main from <code>.metals/.tmp</code>
before server shutdown <a href="https://github.com/scalameta/metals/pull/6495" target="_blank" rel="noopener noreferrer" class="">#6495</a>
(<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a>)</li>
<li class="">improvement: allow to override debug server startup timeout
<a href="https://github.com/scalameta/metals/pull/6492" target="_blank" rel="noopener noreferrer" class="">#6492</a>
(<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a>)</li>
<li class="">fix: don't show implicit conversion for implicit params
<a href="https://github.com/scalameta/metals/pull/6493" target="_blank" rel="noopener noreferrer" class="">#6493</a>
(<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a>)</li>
<li class="">improvement: Run mtags check parallel and set maximum timeout
<a href="https://github.com/scalameta/metals/pull/6451" target="_blank" rel="noopener noreferrer" class="">#6451</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">build(deps): Update protobuf-java from 4.27.0 to 4.27.1
<a href="https://github.com/scalameta/metals/pull/6489" target="_blank" rel="noopener noreferrer" class="">#6489</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update scribe, scribe-file, scribe-slf4j2 from 3.14.0 to 3.15.0
<a href="https://github.com/scalameta/metals/pull/6490" target="_blank" rel="noopener noreferrer" class="">#6490</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">fix: use server command for doctor run in status bar
<a href="https://github.com/scalameta/metals/pull/6474" target="_blank" rel="noopener noreferrer" class="">#6474</a>
(<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a>)</li>
<li class="">fix: handle implicit params in extract method
<a href="https://github.com/scalameta/metals/pull/6479" target="_blank" rel="noopener noreferrer" class="">#6479</a>
(<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a>)</li>
<li class="">fix: correctly auto import when there is a renamed symbol with the same name
in scope <a href="https://github.com/scalameta/metals/pull/6480" target="_blank" rel="noopener noreferrer" class="">#6480</a>
(<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a>)</li>
<li class="">fix: allow for <code>#include</code> header
<a href="https://github.com/scalameta/metals/pull/6473" target="_blank" rel="noopener noreferrer" class="">#6473</a>
(<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a>)</li>
<li class="">improvement: don't run <code>compileAndLookForNewReferences</code>
<a href="https://github.com/scalameta/metals/pull/6429" target="_blank" rel="noopener noreferrer" class="">#6429</a>
(<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a>)</li>
<li class="">chore: Unignore and fix references Bazel test
<a href="https://github.com/scalameta/metals/pull/6458" target="_blank" rel="noopener noreferrer" class="">#6458</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">feat: Set unused tag for unused diagnostics
<a href="https://github.com/scalameta/metals/pull/6378" target="_blank" rel="noopener noreferrer" class="">#6378</a>
(<a href="https://github.com/ghostbuster91" target="_blank" rel="noopener noreferrer" class="">ghostbuster91</a>)</li>
<li class="">fix: Account for additional parenthesis around args in convert to named args
<a href="https://github.com/scalameta/metals/pull/6455" target="_blank" rel="noopener noreferrer" class="">#6455</a>
(<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a>)</li>
<li class="">improvement: batch pc references calls
<a href="https://github.com/scalameta/metals/pull/6453" target="_blank" rel="noopener noreferrer" class="">#6453</a>
(<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a>)</li>
<li class="">build(deps): Update scribe, scribe-file, scribe-slf4j2 from 3.13.5 to 3.14.0
<a href="https://github.com/scalameta/metals/pull/6471" target="_blank" rel="noopener noreferrer" class="">#6471</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update guava from 33.2.0-jre to 33.2.1-jre
<a href="https://github.com/scalameta/metals/pull/6469" target="_blank" rel="noopener noreferrer" class="">#6469</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update ammonite-util from 3.0.0-M2-6-38698450 to
3.0.0-M2-8-ba4429a2 <a href="https://github.com/scalameta/metals/pull/6470" target="_blank" rel="noopener noreferrer" class="">#6470</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): bump @easyops-cn/docusaurus-search-local from 0.40.1 to 0.41.0 in
/website <a href="https://github.com/scalameta/metals/pull/6467" target="_blank" rel="noopener noreferrer" class="">#6467</a>
(<a href="https://github.com/dependabot%5Bbot%5D" target="_blank" rel="noopener noreferrer" class="">dependabot[bot]</a>)</li>
<li class="">build(deps): bump @docusaurus/plugin-client-redirects from 3.2.1 to 3.4.0 in
/website <a href="https://github.com/scalameta/metals/pull/6466" target="_blank" rel="noopener noreferrer" class="">#6466</a>
(<a href="https://github.com/dependabot%5Bbot%5D" target="_blank" rel="noopener noreferrer" class="">dependabot[bot]</a>)</li>
<li class="">build(deps): bump @docusaurus/core from 3.2.1 to 3.4.0 in /website
<a href="https://github.com/scalameta/metals/pull/6465" target="_blank" rel="noopener noreferrer" class="">#6465</a>
(<a href="https://github.com/dependabot%5Bbot%5D" target="_blank" rel="noopener noreferrer" class="">dependabot[bot]</a>)</li>
<li class="">build(deps): bump scalacenter/sbt-dependency-submission from 2 to 3
<a href="https://github.com/scalameta/metals/pull/6464" target="_blank" rel="noopener noreferrer" class="">#6464</a>
(<a href="https://github.com/dependabot%5Bbot%5D" target="_blank" rel="noopener noreferrer" class="">dependabot[bot]</a>)</li>
<li class="">build(deps): Update requests from 0.8.2 to 0.8.3
<a href="https://github.com/scalameta/metals/pull/6463" target="_blank" rel="noopener noreferrer" class="">#6463</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">Update faq.md <a href="https://github.com/scalameta/metals/pull/6461" target="_blank" rel="noopener noreferrer" class="">#6461</a>
(<a href="https://github.com/spamegg1" target="_blank" rel="noopener noreferrer" class="">spamegg1</a>)</li>
<li class="">bugfix: Filter out target
<a href="https://github.com/scalameta/metals/pull/6460" target="_blank" rel="noopener noreferrer" class="">#6460</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">fix: pc functions for multiline strings in worksheets in scala 3
<a href="https://github.com/scalameta/metals/pull/6456" target="_blank" rel="noopener noreferrer" class="">#6456</a>
(<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a>)</li>
<li class="">fix: insert missing members in correct place for case classes
<a href="https://github.com/scalameta/metals/pull/6454" target="_blank" rel="noopener noreferrer" class="">#6454</a>
(<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a>)</li>
<li class="">refactor: Don't try to download artifacts in ProblemResolverSuite
<a href="https://github.com/scalameta/metals/pull/6449" target="_blank" rel="noopener noreferrer" class="">#6449</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">improvement: do not cache presentation compilers for find references
<a href="https://github.com/scalameta/metals/pull/6448" target="_blank" rel="noopener noreferrer" class="">#6448</a>
(<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a>)</li>
<li class="">fix: use pc for references when go to def on definition
<a href="https://github.com/scalameta/metals/pull/6447" target="_blank" rel="noopener noreferrer" class="">#6447</a>
(<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a>)</li>
<li class="">improvement: Retry rename tests, since they seem most flaky
<a href="https://github.com/scalameta/metals/pull/6450" target="_blank" rel="noopener noreferrer" class="">#6450</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">bugfix: Use actual method arguments from DAP server interface
<a href="https://github.com/scalameta/metals/pull/6444" target="_blank" rel="noopener noreferrer" class="">#6444</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">bugfix: Fix millw script
<a href="https://github.com/scalameta/metals/pull/6446" target="_blank" rel="noopener noreferrer" class="">#6446</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">build(deps): Update cli_3, scala-cli-bsp from 1.3.1 to 1.3.2
<a href="https://github.com/scalameta/metals/pull/6443" target="_blank" rel="noopener noreferrer" class="">#6443</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">bugfix: Infer correct build target for jars
<a href="https://github.com/scalameta/metals/pull/6437" target="_blank" rel="noopener noreferrer" class="">#6437</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">build(deps): Update xnio-nio from 3.8.14.Final to 3.8.15.Final
<a href="https://github.com/scalameta/metals/pull/6442" target="_blank" rel="noopener noreferrer" class="">#6442</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update org.eclipse.lsp4j, ... from 0.22.0 to 0.23.1
<a href="https://github.com/scalameta/metals/pull/6434" target="_blank" rel="noopener noreferrer" class="">#6434</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">fix: getting top levels for filenames with ```
<a href="https://github.com/scalameta/metals/pull/6430" target="_blank" rel="noopener noreferrer" class="">#6430</a>
(<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a>)</li>
<li class="">build(deps): Update ammonite-util from 3.0.0-M2-5-1c823fef to
3.0.0-M2-6-38698450 <a href="https://github.com/scalameta/metals/pull/6441" target="_blank" rel="noopener noreferrer" class="">#6441</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">bugfix: Don't start mtags with full classpath
<a href="https://github.com/scalameta/metals/pull/6439" target="_blank" rel="noopener noreferrer" class="">#6439</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">chore: Bump Bazel BSP to a version with newest fixes
<a href="https://github.com/scalameta/metals/pull/6438" target="_blank" rel="noopener noreferrer" class="">#6438</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">build(deps): Update org.eclipse.lsp4j, ... from 0.20.1 to 0.22.0
<a href="https://github.com/scalameta/metals/pull/6126" target="_blank" rel="noopener noreferrer" class="">#6126</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update munit from 1.0.0-RC1 to 1.0.0
<a href="https://github.com/scalameta/metals/pull/6435" target="_blank" rel="noopener noreferrer" class="">#6435</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update ammonite-util from 3.0.0-M2-3-b5eb4787 to
3.0.0-M2-5-1c823fef <a href="https://github.com/scalameta/metals/pull/6433" target="_blank" rel="noopener noreferrer" class="">#6433</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update bloop-launcher-core from 1.5.17 to 1.5.18
<a href="https://github.com/scalameta/metals/pull/6431" target="_blank" rel="noopener noreferrer" class="">#6431</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update protobuf-java from 4.26.1 to 4.27.0
<a href="https://github.com/scalameta/metals/pull/6432" target="_blank" rel="noopener noreferrer" class="">#6432</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">fix: look for gradle wrapper at project root
<a href="https://github.com/scalameta/metals/pull/6428" target="_blank" rel="noopener noreferrer" class="">#6428</a>
(<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a>)</li>
<li class="">improvement: use pc for finding references of local symbols and when
semanticdb is missing <a href="https://github.com/scalameta/metals/pull/5940" target="_blank" rel="noopener noreferrer" class="">#5940</a>
(<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a>)</li>
<li class="">Fixed issue where oldPath wasn't using OS specific spelling for Path/PATH
<a href="https://github.com/scalameta/metals/pull/6427" target="_blank" rel="noopener noreferrer" class="">#6427</a>
(<a href="https://github.com/mdelomba" target="_blank" rel="noopener noreferrer" class="">mdelomba</a>)</li>
<li class="">chore: Bump Scala Debug Adapter to latest
<a href="https://github.com/scalameta/metals/pull/6425" target="_blank" rel="noopener noreferrer" class="">#6425</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">fix: <code>targetJarClasspath</code> for <code>mill-bsp</code>
<a href="https://github.com/scalameta/metals/pull/6424" target="_blank" rel="noopener noreferrer" class="">#6424</a>
(<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a>)</li>
<li class="">improvement: Automatically update bazel bsp
<a href="https://github.com/scalameta/metals/pull/6410" target="_blank" rel="noopener noreferrer" class="">#6410</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">bugfix: Fix infinite indexing
<a href="https://github.com/scalameta/metals/pull/6420" target="_blank" rel="noopener noreferrer" class="">#6420</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">build(deps): Update ammonite-util from 3.0.0-M2-2-741e5dbb to
3.0.0-M2-3-b5eb4787 <a href="https://github.com/scalameta/metals/pull/6421" target="_blank" rel="noopener noreferrer" class="">#6421</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">Outline compiler <a href="https://github.com/scalameta/metals/pull/6114" target="_blank" rel="noopener noreferrer" class="">#6114</a>
(<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a>)</li>
<li class="">refactor: Move parts specific for workspace folder from <code>MetalsLspServer</code>
<a href="https://github.com/scalameta/metals/pull/6347" target="_blank" rel="noopener noreferrer" class="">#6347</a>
(<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a>)</li>
<li class="">chore: Bump Bazel BSP and add tests about warnings
<a href="https://github.com/scalameta/metals/pull/6407" target="_blank" rel="noopener noreferrer" class="">#6407</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">improvement: Show actual Scala versions supported by Metals
<a href="https://github.com/scalameta/metals/pull/6417" target="_blank" rel="noopener noreferrer" class="">#6417</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">improvement: suggest scalafix config amend if `OrganizeImports.target…
<a href="https://github.com/scalameta/metals/pull/6389" target="_blank" rel="noopener noreferrer" class="">#6389</a>
(<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a>)</li>
<li class="">build(deps): Update ujson from 3.3.0 to 3.3.1
<a href="https://github.com/scalameta/metals/pull/6422" target="_blank" rel="noopener noreferrer" class="">#6422</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update scalameta from 4.9.3 to 4.9.5
<a href="https://github.com/scalameta/metals/pull/6423" target="_blank" rel="noopener noreferrer" class="">#6423</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">refactor: Add -Xsource:3 flag to easy migration to Scala 3
<a href="https://github.com/scalameta/metals/pull/6411" target="_blank" rel="noopener noreferrer" class="">#6411</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">build(deps): Update ammonite-util from 3.0.0-M1-24-26133e66 to
3.0.0-M2-2-741e5dbb <a href="https://github.com/scalameta/metals/pull/6413" target="_blank" rel="noopener noreferrer" class="">#6413</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">remove unused bloomfilter
<a href="https://github.com/scalameta/metals/pull/6399" target="_blank" rel="noopener noreferrer" class="">#6399</a>
(<a href="https://github.com/Temurlock" target="_blank" rel="noopener noreferrer" class="">Temurlock</a>)</li>
<li class="">docs: Add release notes for Metals 1.3.1
<a href="https://github.com/scalameta/metals/pull/6403" target="_blank" rel="noopener noreferrer" class="">#6403</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
</ul>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Metals v1.3.1 - Thallium]]></title>
            <link>http://scalameta.org/metals/blog/2024/05/16/thallium</link>
            <guid>http://scalameta.org/metals/blog/2024/05/16/thallium</guid>
            <pubDate>Thu, 16 May 2024 00:00:00 GMT</pubDate>
            <description><![CDATA[We're happy to announce the release of Metals v1.3.1, which brings in a couple]]></description>
            <content:encoded><![CDATA[<p>We're happy to announce the release of Metals v1.3.1, which brings in a couple
of useful improvements.</p>
<table><tbody><tr><td>Commits since last release</td><td align="center">74</td></tr><tr><td>Merged PRs</td><td align="center">64</td></tr><tr><td>Contributors</td><td align="center">9</td></tr><tr><td>Closed issues</td><td align="center">27</td></tr><tr><td>New features</td><td align="center">3</td></tr></tbody></table>
<p>For full details:
<a href="https://github.com/scalameta/metals/milestone/67?closed=1" target="_blank" rel="noopener noreferrer" class="">https://github.com/scalameta/metals/milestone/67?closed=1</a></p>
<p>Metals is a language server for Scala that works with VS Code, Vim, Emacs, Zed,
Helix and Sublime Text. Metals is developed at the
<a href="https://scala.epfl.ch/" target="_blank" rel="noopener noreferrer" class="">Scala Center</a> and <a href="https://virtuslab.com/" target="_blank" rel="noopener noreferrer" class="">VirtusLab</a>
with the help from contributors from the community.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="tldr">TL;DR<a href="http://scalameta.org/metals/blog/2024/05/16/thallium#tldr" class="hash-link" aria-label="Direct link to TL;DR" title="Direct link to TL;DR" translate="no">​</a></h2>
<p>Check out <a href="https://scalameta.org/metals/" target="_blank" rel="noopener noreferrer" class="">https://scalameta.org/metals/</a>, and
give Metals a try!</p>
<ul>
<li class=""><a href="http://scalameta.org/metals/blog/2024/05/16/thallium#resolve-classpath-lazily-in-bazel" class="">Resolve classpath lazily in Bazel</a></li>
<li class=""><a href="http://scalameta.org/metals/blog/2024/05/16/thallium#replace-slowtask-with-lsp-progress" class="">Replace <code>slowTask</code> with LSP progress</a></li>
<li class=""><a href="http://scalameta.org/metals/blog/2024/05/16/thallium#no-workspace-support" class="">No workspace support</a></li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="resolve-classpath-lazily-in-bazel">Resolve classpath lazily in Bazel<a href="http://scalameta.org/metals/blog/2024/05/16/thallium#resolve-classpath-lazily-in-bazel" class="hash-link" aria-label="Direct link to Resolve classpath lazily in Bazel" title="Direct link to Resolve classpath lazily in Bazel" translate="no">​</a></h2>
<p>Metals uses <a href="https://github.com/jetBrains/bazel-bsp/" target="_blank" rel="noopener noreferrer" class="">Bazel BSP</a> to interact
with Bazel itself via the Build Server Protocol. Up until this release, we would
eagerly resolve the classpath that is needed for some of the Metals features.
However, this caused indexing times to be huge in large Bazel projects as it is
expensive to calculate it. To avoid that we now only resolve classpath for
targets users are currently working on.</p>
<p>Let us know if you notice any more bottlenecks we can fix!</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="replace-slowtask-with-lsp-progress">Replace <code>slowTask</code> with LSP progress<a href="http://scalameta.org/metals/blog/2024/05/16/thallium#replace-slowtask-with-lsp-progress" class="hash-link" aria-label="Direct link to replace-slowtask-with-lsp-progress" title="Direct link to replace-slowtask-with-lsp-progress" translate="no">​</a></h2>
<p>There are several Language Server Protocol extensions that are used in Metals to
provide features that go outside the LSP standard. This also included
<code>Slow task</code> extension, but since a couple of LSP releases there has been a
proper progress endpoint available. This is now used in Metals.</p>
<p>This means that editors that did not implement the <code>slow task</code> extension will
now properly show the progress of tasks running within Metals. For anything that
did implement it, there might be some visual changes. In Visual Studio Code the
progress will be contained at the bottom in the status bar, which can be clicked
on to see all current progress messages. Since, it will also contain all the
current compilation, we removed <code>Ongoing compilations</code> section from the Metals
view. This is possible thanks to the great work done by
<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a>.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="no-workspace-support">No workspace support<a href="http://scalameta.org/metals/blog/2024/05/16/thallium#no-workspace-support" class="hash-link" aria-label="Direct link to No workspace support" title="Direct link to No workspace support" translate="no">​</a></h2>
<p>Thanks to <a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a> it's now possible to start
Metals for a single file without a workspace. Metals will automatically use
Scala CLI for such single files to provide as much support as possible including
standard LSP features, such as completions, hover and more.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="miscellaneous">Miscellaneous<a href="http://scalameta.org/metals/blog/2024/05/16/thallium#miscellaneous" class="hash-link" aria-label="Direct link to Miscellaneous" title="Direct link to Miscellaneous" translate="no">​</a></h2>
<ul>
<li class="">bugfix: remove stale config files before <code>bloopInstall</code> for gradle
<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a></li>
<li class="">improvement: do not throw on failed java indexing
<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a></li>
<li class="">bugfix: handle <code>type T = Object.type</code> in type hierarchy indexing
<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a></li>
<li class="">fix: retry calculating build tool digest
<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a></li>
<li class="">improvement: don't override bloop java home if version greater or equal
<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a></li>
<li class="">bugfix: obey hover <code>markup kind</code> capability
<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a></li>
<li class="">improvement: add worksheet timeout setting
<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a></li>
<li class="">bugfix: don't show private apply as a completion
<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a></li>
<li class="">fix: try pc symbol before symbol alternatives in go to definition
<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a></li>
<li class="">fix: include <code>inline</code> when printing param names
<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a></li>
<li class="">bugfix: Set Path instead of PATH on windows
<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a></li>
<li class="">improvement: remove unused imports on Scala 3.4+
<a href="https://github.com/bjaglin" target="_blank" rel="noopener noreferrer" class="">bjaglin</a></li>
<li class="">fix: show implicit param when it is an apply
<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a></li>
<li class="">fix: dealias type members in hover <a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a></li>
<li class="">improvement: don't start new metals service for project ref
<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a></li>
<li class="">fix: import from build tools, that aren't build server providers when using
automatic bsp setting <a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a></li>
<li class="">fix: send <code>end progress</code> if future finished with an exception
<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a></li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="contributors">Contributors<a href="http://scalameta.org/metals/blog/2024/05/16/thallium#contributors" class="hash-link" aria-label="Direct link to Contributors" title="Direct link to Contributors" translate="no">​</a></h2>
<p>Big thanks to everybody who contributed to this release or reported an issue!</p>
<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#bfc7d5;--prism-background-color:#292d3e"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#bfc7d5;background-color:#292d3e"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#bfc7d5"><span class="token plain">$ git shortlog -sn --no-merges v1.3.0..v1.3.1</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">    25	Scalameta Bot</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">    22	Tomasz Godzik</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">    21	Katarzyna Marek</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">     1	Brice Jaglin</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">     1	Martin Mauch</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">     1	Vadim Chelyshov</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">     1	dependabot[bot]</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">     1	scalameta-bot</span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">     1	tgodzik</span><br></div></code></pre></div></div>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="merged-prs">Merged PRs<a href="http://scalameta.org/metals/blog/2024/05/16/thallium#merged-prs" class="hash-link" aria-label="Direct link to Merged PRs" title="Direct link to Merged PRs" translate="no">​</a></h2>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="v131-2024-05-14"><a href="https://github.com/scalameta/metals/tree/v1.3.1" target="_blank" rel="noopener noreferrer" class="">v1.3.1</a> (2024-05-14)<a href="http://scalameta.org/metals/blog/2024/05/16/thallium#v131-2024-05-14" class="hash-link" aria-label="Direct link to v131-2024-05-14" title="Direct link to v131-2024-05-14" translate="no">​</a></h2>
<p><a href="https://github.com/scalameta/metals/compare/v1.3.0...v1.3.1" target="_blank" rel="noopener noreferrer" class="">Full Changelog</a></p>
<p><strong>Merged pull requests:</strong></p>
<ul>
<li class="">bugfix: Don't include target option for PC
<a href="https://github.com/scalameta/metals/pull/6405" target="_blank" rel="noopener noreferrer" class="">#6405</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">chore: Report if target root is missing
<a href="https://github.com/scalameta/metals/pull/6401" target="_blank" rel="noopener noreferrer" class="">#6401</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">bugfix: Don't preemptively load scalafix
<a href="https://github.com/scalameta/metals/pull/6404" target="_blank" rel="noopener noreferrer" class="">#6404</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">improvement: Show progress when fetching classpath
<a href="https://github.com/scalameta/metals/pull/6400" target="_blank" rel="noopener noreferrer" class="">#6400</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">build(deps): Update scala-debug-adapter from 4.0.4 to 4.1.0
<a href="https://github.com/scalameta/metals/pull/6394" target="_blank" rel="noopener noreferrer" class="">#6394</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update coursier, ... from 2.1.9 to 2.1.10
<a href="https://github.com/scalameta/metals/pull/6397" target="_blank" rel="noopener noreferrer" class="">#6397</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update cli_3, scala-cli-bsp from 1.3.0 to 1.3.1
<a href="https://github.com/scalameta/metals/pull/6398" target="_blank" rel="noopener noreferrer" class="">#6398</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update scribe, scribe-file, scribe-slf4j2 from 3.13.4 to 3.13.5
<a href="https://github.com/scalameta/metals/pull/6396" target="_blank" rel="noopener noreferrer" class="">#6396</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">fix: send <code>end progress</code> if future finished with an exception
<a href="https://github.com/scalameta/metals/pull/6391" target="_blank" rel="noopener noreferrer" class="">#6391</a>
(<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a>)</li>
<li class="">chore: Bump latest Scala 2.13.x Ammonite version
<a href="https://github.com/scalameta/metals/pull/6392" target="_blank" rel="noopener noreferrer" class="">#6392</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">build(deps): Update ammonite-util from 3.0.0-M1-19-a7973e17 to
3.0.0-M1-24-26133e66 <a href="https://github.com/scalameta/metals/pull/6395" target="_blank" rel="noopener noreferrer" class="">#6395</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">fix: import from build tools, that aren't build server providers when…
<a href="https://github.com/scalameta/metals/pull/6384" target="_blank" rel="noopener noreferrer" class="">#6384</a>
(<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a>)</li>
<li class="">chore: Bump Bazel BSP to nightly with recent fixes
<a href="https://github.com/scalameta/metals/pull/6388" target="_blank" rel="noopener noreferrer" class="">#6388</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">improvement: delete ongoing compilations from tree view
<a href="https://github.com/scalameta/metals/pull/6385" target="_blank" rel="noopener noreferrer" class="">#6385</a>
(<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a>)</li>
<li class="">improvement: don't start new metals service for project ref
<a href="https://github.com/scalameta/metals/pull/6285" target="_blank" rel="noopener noreferrer" class="">#6285</a>
(<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a>)</li>
<li class="">update version in issue template
<a href="https://github.com/scalameta/metals/pull/6386" target="_blank" rel="noopener noreferrer" class="">#6386</a>
(<a href="https://github.com/dos65" target="_blank" rel="noopener noreferrer" class="">dos65</a>)</li>
<li class="">fix: show implicit param when it is an apply
<a href="https://github.com/scalameta/metals/pull/6380" target="_blank" rel="noopener noreferrer" class="">#6380</a>
(<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a>)</li>
<li class="">fix: delias type members in hover
<a href="https://github.com/scalameta/metals/pull/6366" target="_blank" rel="noopener noreferrer" class="">#6366</a>
(<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a>)</li>
<li class="">build(deps): Update ammonite-util from 3.0.0-M1-10-105f9e32 to
3.0.0-M1-19-a7973e17 <a href="https://github.com/scalameta/metals/pull/6375" target="_blank" rel="noopener noreferrer" class="">#6375</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update scalafix-interfaces from 0.12.0 to 0.12.1
<a href="https://github.com/scalameta/metals/pull/6373" target="_blank" rel="noopener noreferrer" class="">#6373</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update guava from 33.1.0-jre to 33.2.0-jre
<a href="https://github.com/scalameta/metals/pull/6374" target="_blank" rel="noopener noreferrer" class="">#6374</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update sbt-scalafix from 0.12.0+5-aba10632-SNAPSHOT to 0.12.1
<a href="https://github.com/scalameta/metals/pull/6372" target="_blank" rel="noopener noreferrer" class="">#6372</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): bump @docusaurus/core from 3.2.0 to 3.2.1 in /website
<a href="https://github.com/scalameta/metals/pull/6368" target="_blank" rel="noopener noreferrer" class="">#6368</a>
(<a href="https://github.com/dependabot%5Bbot%5D" target="_blank" rel="noopener noreferrer" class="">dependabot[bot]</a>)</li>
<li class="">improvement: remove unused imports on Scala 3.4+
<a href="https://github.com/scalameta/metals/pull/6371" target="_blank" rel="noopener noreferrer" class="">#6371</a>
(<a href="https://github.com/bjaglin" target="_blank" rel="noopener noreferrer" class="">bjaglin</a>)</li>
<li class="">chore: Add support for Scala 2.13.14
<a href="https://github.com/scalameta/metals/pull/6364" target="_blank" rel="noopener noreferrer" class="">#6364</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">bugfix: Set Path instead of PATH on windows
<a href="https://github.com/scalameta/metals/pull/6363" target="_blank" rel="noopener noreferrer" class="">#6363</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">docs: fix information on project's JDK resolution [skip ci]
<a href="https://github.com/scalameta/metals/pull/6343" target="_blank" rel="noopener noreferrer" class="">#6343</a>
(<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a>)</li>
<li class="">build(deps): Update cli_3, scala-cli-bsp from 1.2.2 to 1.3.0
<a href="https://github.com/scalameta/metals/pull/6360" target="_blank" rel="noopener noreferrer" class="">#6360</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update munit from 1.0.0-M11 to 1.0.0-RC1
<a href="https://github.com/scalameta/metals/pull/6354" target="_blank" rel="noopener noreferrer" class="">#6354</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">chore: Change mac os to 12, which has sbt enabled
<a href="https://github.com/scalameta/metals/pull/6355" target="_blank" rel="noopener noreferrer" class="">#6355</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">build(deps): Update xnio-nio from 3.8.13.Final to 3.8.14.Final
<a href="https://github.com/scalameta/metals/pull/6353" target="_blank" rel="noopener noreferrer" class="">#6353</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update scribe, scribe-file, scribe-slf4j2 from 3.13.3 to 3.13.4
<a href="https://github.com/scalameta/metals/pull/6352" target="_blank" rel="noopener noreferrer" class="">#6352</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update munit from 1.0.0-M11 to 1.0.0-M12
<a href="https://github.com/scalameta/metals/pull/6335" target="_blank" rel="noopener noreferrer" class="">#6335</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">fix: try pc symbol before symbol alternatives in go to definition
<a href="https://github.com/scalameta/metals/pull/6344" target="_blank" rel="noopener noreferrer" class="">#6344</a>
(<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a>)</li>
<li class="">fix: include <code>inline</code> when printing param names
<a href="https://github.com/scalameta/metals/pull/6342" target="_blank" rel="noopener noreferrer" class="">#6342</a>
(<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a>)</li>
<li class="">bugfix: don't show private apply as a completion
<a href="https://github.com/scalameta/metals/pull/6341" target="_blank" rel="noopener noreferrer" class="">#6341</a>
(<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a>)</li>
<li class="">no workspace support <a href="https://github.com/scalameta/metals/pull/6289" target="_blank" rel="noopener noreferrer" class="">#6289</a>
(<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a>)</li>
<li class="">improvement: add worksheet timeout setting
<a href="https://github.com/scalameta/metals/pull/6338" target="_blank" rel="noopener noreferrer" class="">#6338</a>
(<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a>)</li>
<li class="">fix: obey hover <code>markup kind</code> capability
<a href="https://github.com/scalameta/metals/pull/6303" target="_blank" rel="noopener noreferrer" class="">#6303</a>
(<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a>)</li>
<li class="">build(deps): Update cli_3, scala-cli-bsp from 1.2.0 to 1.2.2
<a href="https://github.com/scalameta/metals/pull/6337" target="_blank" rel="noopener noreferrer" class="">#6337</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">improvement: don't override bloop java home if version greater or equ…
<a href="https://github.com/scalameta/metals/pull/6339" target="_blank" rel="noopener noreferrer" class="">#6339</a>
(<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a>)</li>
<li class="">build(deps): Update scalafmt-core from 3.8.0 to 3.8.1
<a href="https://github.com/scalameta/metals/pull/6336" target="_blank" rel="noopener noreferrer" class="">#6336</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">improvement: Remove nightly tests
<a href="https://github.com/scalameta/metals/pull/6330" target="_blank" rel="noopener noreferrer" class="">#6330</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">build(deps): Update scala-xml from 2.2.0 to 2.3.0
<a href="https://github.com/scalameta/metals/pull/6334" target="_blank" rel="noopener noreferrer" class="">#6334</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">fix: retry calculating build tool digest
<a href="https://github.com/scalameta/metals/pull/6329" target="_blank" rel="noopener noreferrer" class="">#6329</a>
(<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a>)</li>
<li class="">Replace <code>slowTask</code> with LSP progress
<a href="https://github.com/scalameta/metals/pull/6144" target="_blank" rel="noopener noreferrer" class="">#6144</a>
(<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a>)</li>
<li class="">build(deps): Update semanticdb-java from 0.9.9 to 0.9.10
<a href="https://github.com/scalameta/metals/pull/6327" target="_blank" rel="noopener noreferrer" class="">#6327</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">docs: Fix links to Typescript code
<a href="https://github.com/scalameta/metals/pull/6323" target="_blank" rel="noopener noreferrer" class="">#6323</a>
(<a href="https://github.com/nightscape" target="_blank" rel="noopener noreferrer" class="">nightscape</a>)</li>
<li class="">build(deps): Update scribe, scribe-file, scribe-slf4j2 from 3.13.0 to 3.13.3
<a href="https://github.com/scalameta/metals/pull/6326" target="_blank" rel="noopener noreferrer" class="">#6326</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update requests from 0.8.0 to 0.8.2
<a href="https://github.com/scalameta/metals/pull/6324" target="_blank" rel="noopener noreferrer" class="">#6324</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update ujson from 3.1.5 to 3.3.0
<a href="https://github.com/scalameta/metals/pull/6325" target="_blank" rel="noopener noreferrer" class="">#6325</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">fix: handle <code>type T = Object.type</code> in type hierarchy indexing
<a href="https://github.com/scalameta/metals/pull/6322" target="_blank" rel="noopener noreferrer" class="">#6322</a>
(<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a>)</li>
<li class="">improvement: do not throw on failed java indexing
<a href="https://github.com/scalameta/metals/pull/6321" target="_blank" rel="noopener noreferrer" class="">#6321</a>
(<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a>)</li>
<li class="">build(deps): Update ammonite-util from 3.0.0-M1-8-35694880 to
3.0.0-M1-10-105f9e32 <a href="https://github.com/scalameta/metals/pull/6320" target="_blank" rel="noopener noreferrer" class="">#6320</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update protobuf-java from 3.25.3 to 4.26.1
<a href="https://github.com/scalameta/metals/pull/6319" target="_blank" rel="noopener noreferrer" class="">#6319</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update guava from 33.0.0-jre to 33.1.0-jre
<a href="https://github.com/scalameta/metals/pull/6318" target="_blank" rel="noopener noreferrer" class="">#6318</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update sbt-buildinfo from 0.11.0 to 0.12.0
<a href="https://github.com/scalameta/metals/pull/6317" target="_blank" rel="noopener noreferrer" class="">#6317</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">build(deps): Update scala-debug-adapter from 4.0.2 to 4.0.4
<a href="https://github.com/scalameta/metals/pull/6316" target="_blank" rel="noopener noreferrer" class="">#6316</a>
(<a href="https://github.com/scalameta-bot" target="_blank" rel="noopener noreferrer" class="">scalameta-bot</a>)</li>
<li class="">improvement: Lazily resolve classpath
<a href="https://github.com/scalameta/metals/pull/6167" target="_blank" rel="noopener noreferrer" class="">#6167</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">chore: update scala cli tests
<a href="https://github.com/scalameta/metals/pull/6312" target="_blank" rel="noopener noreferrer" class="">#6312</a>
(<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a>)</li>
<li class="">fix: remove stale config files before <code>bloopInstall</code> for gradle
<a href="https://github.com/scalameta/metals/pull/6305" target="_blank" rel="noopener noreferrer" class="">#6305</a>
(<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a>)</li>
<li class="">chore: Update release notes dates
<a href="https://github.com/scalameta/metals/pull/6309" target="_blank" rel="noopener noreferrer" class="">#6309</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">chore: Add release notes for Metals 1.3.0
<a href="https://github.com/scalameta/metals/pull/6301" target="_blank" rel="noopener noreferrer" class="">#6301</a>
(<a href="https://github.com/tgodzik" target="_blank" rel="noopener noreferrer" class="">tgodzik</a>)</li>
<li class="">docs: update java version documentation [skip ci]
<a href="https://github.com/scalameta/metals/pull/6290" target="_blank" rel="noopener noreferrer" class="">#6290</a>
(<a href="https://github.com/kasiaMarek" target="_blank" rel="noopener noreferrer" class="">kasiaMarek</a>)</li>
</ul>]]></content:encoded>
        </item>
    </channel>
</rss>