{"slug": "metals", "name": "Metals", "category": "editors", "category_name": "Editors and IDEs", "description": "", "recommenders": 4, "commenters": 6, "warners": 0, "score": 4.013, "rising": 0.02, "first": "2025-12-09", "latest": "2026-08-22", "why": "The Metals documentation includes instructions for setting it up with Emacs. I followed them, and everything works", "why_is_quote": true, "has_verdict": false, "sentiment": {"recommend": 4, "neutral": 2, "compare": 1, "warn": 0}, "spark": [0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0], "listed": true, "loved": [], "caveat": "", "short_quote": "The Metals documentation includes instructions for setting it up with Emacs. I followed them, and everything works", "kind": "", "icon": true, "domain": "metals-lsp.org", "github_repo": null, "official_url": "https://scalameta.org/metals/", "pricing": "", "aliases": ["Metals"], "verdict": null, "praise": [{"label": "", "summary": "", "quotes": [{"id": 790337328, "item_id": 49396083, "url": "https://news.ycombinator.com/item?id=49396083", "by": "AdieuToLogic", "date": "2026-08-22", "version": null, "stance": "recommend", "quote": "For example, see Metals[0].", "excerpt": "> Not if an LLM writes your code. I get thousands of lines of high quality Rust per day without ever stepping into VScode. LSPs are orthogonal to both LLMs and VSCode. For example, see Metals[0]. 0 - https://metals-lsp.org/", "context": "", "use_case": "", "switched_from": "", "story": "Rust Glancer: Rust LSP using 100x less RAM"}, {"id": 784295984, "item_id": 49018499, "url": "https://news.ycombinator.com/item?id=49018499", "by": "phmx", "date": "2026-07-23", "version": null, "stance": "recommend", "quote": "The Metals documentation includes instructions for setting it up with Emacs. I followed them, and everything works", "excerpt": "The Metals documentation includes instructions for setting it up with Emacs. I followed them, and everything works, including worksheets. https://scalameta.org/metals/docs/editors/emacs", "context": "", "use_case": "Scala language server", "switched_from": "", "story": "Escape IntelliJ: Scala and Kotlin LSPs on Emacs Eglot"}, {"id": 747510368, "item_id": 46719398, "url": "https://news.ycombinator.com/item?id=46719398", "by": "davidee", "date": "2026-01-22", "version": null, "stance": "recommend", "quote": "Metals + Neovim to be truly wonderful", "excerpt": "I'm partial to Scala. It's the first language I've tried to start to master. I have fallen in love with a number of libraries that dramatically expedite the kinds of projects I work on (mostly the work of Typelevel). For whatever reason, the FP-first approach it allows me to use, matches how I like to think about problems. For comprehensions for handling complex types, easily, feel like a superpower. When I started (", "context": "", "use_case": "Scala language server", "switched_from": "", "story": "I am moving away from Scala"}, {"id": 739368656, "item_id": 46210541, "url": "https://news.ycombinator.com/item?id=46210541", "by": "still_grokking", "date": "2025-12-09", "version": null, "stance": "recommend", "quote": "The most reliable Scala IDE is currently Metals", "excerpt": "There's still a working Eclipse plugin? Does Eclipse now support LSP servers? The most reliable Scala IDE is currently Metals (in VSCode, but other editors work, too). Metals uses directly the compiler for all code intelligence so it's as reliable as the compiler itself. https://scalameta.org/metals/ https://scalameta.org/metals/docs/#editor-support", "context": "", "use_case": "Scala IDE language server", "switched_from": "", "story": "Scala 3 slowed us down?"}]}], "caveats": [], "who": [], "tags": [], "use_cases": ["scala language server", "scala ide language server"], "compared": [{"slug": "intellij-idea", "name": "IntelliJ IDEA", "co": 2, "switched_from": 0, "switched_to": 0}], "makers": [], "threads": [{"url": "https://news.ycombinator.com/item?id=48990219", "title": "Escape IntelliJ: Scala and Kotlin LSPs on Emacs Eglot", "mentions": 2}, {"url": "https://news.ycombinator.com/item?id=49393052", "title": "Rust Glancer: Rust LSP using 100x less RAM", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=48859673", "title": "Scarf has moved away from Haskell", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=47416548", "title": "Java 26 is here, and with it a solid foundation for the future", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=46718556", "title": "I am moving away from Scala", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=46182202", "title": "Scala 3 slowed us down?", "mentions": 1}], "sentiment_by_month": {"2025-11": {}, "2025-12": {"recommend": 1}, "2026-01": {"recommend": 1}, "2026-02": {}, "2026-03": {"neutral": 1}, "2026-04": {}, "2026-05": {}, "2026-06": {}, "2026-07": {"compare": 1, "recommend": 1, "neutral": 1}, "2026-08": {"recommend": 1}, "2026-09": {}, "2026-10": {}}, "versions": [], "version_unnamed": 0, "family_ref": null, "runs_on": null, "lines": [], "quotes": [{"id": 790337328, "item_id": 49396083, "url": "https://news.ycombinator.com/item?id=49396083", "by": "AdieuToLogic", "date": "2026-08-22", "version": null, "stance": "recommend", "quote": "For example, see Metals[0].", "excerpt": "> Not if an LLM writes your code. I get thousands of lines of high quality Rust per day without ever stepping into VScode. LSPs are orthogonal to both LLMs and VSCode. For example, see Metals[0]. 0 - https://metals-lsp.org/", "context": "", "use_case": "", "switched_from": "", "story": "Rust Glancer: Rust LSP using 100x less RAM"}, {"id": 784365456, "item_id": 49022841, "url": "https://news.ycombinator.com/item?id=49022841", "by": "hocuspocus", "date": "2026-07-23", "version": null, "stance": "neutral", "quote": "Metals is architectured in a completely different way, see the BSP", "excerpt": "Java LSPs are essentially the same approach, headless Eclipse JDT or NetBeans. While Metals for Scala was an overhaul from the former Eclipse plugin (and Ensime) plus early experiments embedded in the Scala 3 compiler. And Metals v2 is yet another rewrite. Metals is architectured in a completely different way, see the BSP: https://build-server-protocol.github.io", "context": "", "use_case": "", "switched_from": "", "story": "Escape IntelliJ: Scala and Kotlin LSPs on Emacs Eglot"}, {"id": 784295984, "item_id": 49018499, "url": "https://news.ycombinator.com/item?id=49018499", "by": "phmx", "date": "2026-07-23", "version": null, "stance": "recommend", "quote": "The Metals documentation includes instructions for setting it up with Emacs. I followed them, and everything works", "excerpt": "The Metals documentation includes instructions for setting it up with Emacs. I followed them, and everything works, including worksheets. https://scalameta.org/metals/docs/editors/emacs", "context": "", "use_case": "Scala language server", "switched_from": "", "story": "Escape IntelliJ: Scala and Kotlin LSPs on Emacs Eglot"}, {"id": 781799329, "item_id": 48862458, "url": "https://news.ycombinator.com/item?id=48862458", "by": "pjmlp", "date": "2026-07-10", "version": null, "stance": "compare", "quote": "InteliJ plugin is much further than Metals", "excerpt": "They introduced a new Python like syntax, and pushed to move away from the curly based syntax. There were other breaking changes as well. https://docs.scala-lang.org/scala3/guides/migration/compatibility-intro.html This naturally broke all the tooling. Then you have Metals for VSCode InteliJ plugins, while the Eclipse plugin was dropped. InteliJ plugin is much further than Metals, however there is the conflict of int", "context": "", "use_case": "", "switched_from": "", "story": "Scarf has moved away from Haskell"}, {"id": 758703760, "item_id": 47418985, "url": "https://news.ycombinator.com/item?id=47418985", "by": "hocuspocus", "date": "2026-03-17", "version": null, "stance": "neutral", "quote": "the upcoming Metals v2 that's using another compiler frontend optimized for performance", "excerpt": "Java LSP backends are basically headless Eclipse and NetBeans, they definitely go beyond syntactical errors. There's also the upcoming Metals v2 that's using another compiler frontend optimized for performance, Google Turbine: https://metals-lsp.org Actionable diagnostics for Java aren't implemented yet though.", "context": "", "use_case": "", "switched_from": "", "story": "Java 26 is here, and with it a solid foundation for the future"}, {"id": 747510368, "item_id": 46719398, "url": "https://news.ycombinator.com/item?id=46719398", "by": "davidee", "date": "2026-01-22", "version": null, "stance": "recommend", "quote": "Metals + Neovim to be truly wonderful", "excerpt": "I'm partial to Scala. It's the first language I've tried to start to master. I have fallen in love with a number of libraries that dramatically expedite the kinds of projects I work on (mostly the work of Typelevel). For whatever reason, the FP-first approach it allows me to use, matches how I like to think about problems. For comprehensions for handling complex types, easily, feel like a superpower. When I started (", "context": "", "use_case": "Scala language server", "switched_from": "", "story": "I am moving away from Scala"}, {"id": 739368656, "item_id": 46210541, "url": "https://news.ycombinator.com/item?id=46210541", "by": "still_grokking", "date": "2025-12-09", "version": null, "stance": "recommend", "quote": "The most reliable Scala IDE is currently Metals", "excerpt": "There's still a working Eclipse plugin? Does Eclipse now support LSP servers? The most reliable Scala IDE is currently Metals (in VSCode, but other editors work, too). Metals uses directly the compiler for all code intelligence so it's as reliable as the compiler itself. https://scalameta.org/metals/ https://scalameta.org/metals/docs/#editor-support", "context": "", "use_case": "Scala IDE language server", "switched_from": "", "story": "Scala 3 slowed us down?"}]}