Skip to content
Work-in-progress language server for Scala
Branch: master
Clone or download
olafurpg Add Google Analytics.
Previously, we had no tracking enabled on the website. I'd like to
experiment with adding Chinese/Japanese/Spanish translations to the
Metals website to help beginners get started with writing Scala in their
favorite editor.

Installing an IDE is usually the first thing people do when learning a
new programming language. Many Metals users might be taking their first
steps in programming and might not be fluent in English so I think it
might be helpful to make the Metals installation instructions available
in more langauges.

Adding translations for multiple languages will require a lot of effort.
I'm hoping the analytics will help us measure how impactful this work
will be.
Latest commit f28c35a May 14, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github/ISSUE_TEMPLATE Add question template Apr 26, 2019
bin Update test release script to include full cross-build Apr 26, 2019
docs Use CocRequestAsync in Vim docs May 9, 2019
metals-bench Undo s/diagnostics/diagnosticsForDebuggingPurposes/ rename Apr 15, 2019
metals-docs/src/main Make bloop versions customizable via server properties. May 6, 2019
metals Set timeout for shutdown procedure, fixes #715. May 9, 2019
mtags-interfaces/src/main/java/scala/meta/pc Make tests pass with the new goto definition fallback. Apr 12, 2019
mtags/src/main Miscellaneous improvements Apr 30, 2019
project Implement goto definition fallback with the presentation compiler. Apr 10, 2019
sbt-metals/src/main/scala/scala/meta/metals Implement fast and low-overhead find references. Jan 13, 2019
test-workspace Add gradle support to imports in metals and refactor build tool support. May 7, 2019
tests Add gradle support to imports in metals and refactor build tool support. May 7, 2019
travis Add missing encrypted keys Apr 5, 2018
website Add Google Analytics. May 14, 2019
.gitignore Implement `override def` completions. Mar 18, 2019
.jvmopts Revert jmvopts changes Mar 7, 2019
.scalafix.conf Fix bug in handling of Java source files on disk. Oct 9, 2018
.scalafmt.conf Implement hover, completions and signature help. Mar 7, 2019
.travis.yml Fetch git tags before ci-release Apr 3, 2019
CHANGELOG.md Add release notes for v0.5.1 Apr 26, 2019
CONTRIBUTING.md Update CONTRIBUTING.md Nov 29, 2018
LICENSE Add license Nov 8, 2017
NOTICE.md Refactor and document code. Mar 8, 2019
README.md Update badges in README and website footer Apr 30, 2019
RELEASING.md Replace assets with external links Feb 14, 2019
appveyor.yml appveyor: remove -XX:+CMSClassUnloadingEnabled option Jan 7, 2019
azure-pipelines.yml Run only unit/test on Azure. Mar 9, 2019
build.sbt
sbt Configure Azure pipeline. Mar 7, 2019

README.md

Metals

Join the chat on Gitter

Documentation

See the website: https://scalameta.org/metals/

Contributing

See the contributing guide: https://scalameta.org/metals/docs/contributors/getting-started.html

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)

You can’t perform that action at this time.