Metals v0.4 is out!


#1

Metals is a language server for Scala that is developed at the Scala Center along with contributors from the community. You can use it with the text editors Visual Studio Code, Atom, Vim, Sublime Text and Emacs :slight_smile:

Release notes: https://scalameta.org/metals/blog/2019/01/24/tin.html
Accompanying blog post on low-memory symbol indexing with bloom filters: https://scalameta.org/metals/blog/2019/01/22/bloom-filters.html


#2

Is Metals something like ENSIME? If so, how does it compare? Thanks.


#3

Metals is similar to ENSIME. ENSIME has more features at the moment (completions, semantic highlighting, …) and better Emacs support. Metals works best with VS Code, uses less memory on average and you may find the installation simpler (closer to IntelliJ).

The two projects are quite different internally, which may be less directly relevant for end users but impacts how the projects can add new features and evolve. For example, Metals uses Bloop via BSP for compile errors (red squiggles) while ENSIME uses the Scala presentation compiler. For “find symbol references”, Metals uses SemanticDB while ENSIME uses its own indexing solution.


#4

I would add that ENSIME doesn’t seem as active as Metals at the moment.