/metals

🚧 WIP Language Server for Scala 🚧

Primary LanguageScalaApache License 2.0Apache-2.0

Metals

Join the chat at https://gitter.im/scalameta/metals

This project is an experiment to implement a Language Server for Scala using Scalameta projects such as Scalafmt, Scalafix and SemanticDB.

⚠️ This project is under development and is not intended to be used for day-to-day coding. Expect bugs and incomplete documentation. Installation instructions are primarily intended for project contributors.

Contributing

See the contributing guide.

Overview

See here for an overview of a what features are supported or not supported by Metals.

Team

The current maintainers (people who can merge pull requests) are:

Acknowledgement

Huge thanks to @dragos for his work on a Scala implementation of the LSP (see: https://github.com/dragos/dragos-vscode-scala). This project helped us get quickly started with LSP. Since then, we have refactored the project's original sources to the point where only a few simple case classes remain.

Alternatives

  • IntelliJ IDEA: the most widely used IDE for Scala using a re-implementation of the Scala typechecker.
  • ENSIME: brings Scala and Java IDE-like features to editors like Emacs and Sublime Text using the Scala Presentation Compiler.
  • Scala IDE: Eclipse-based IDE using the Scala Presentation Compiler.

Why Metals?

Metals = Meta (from Scalameta) + LS (from Language Server)