Metals

Metals

  • Docs
  • Blog
  • GitHub

›Build Tools

Text Editors

  • Overview
  • Visual Studio Code
  • Atom
  • Vim
  • Sublime Text
  • Emacs
  • Eclipse

Build Tools

  • Overview
  • Bloop
  • Gradle
  • Maven
  • Mill
  • sbt

Contributing

  • Integrating a new build tool
  • Integrating a new editor
  • Tree View Protocol
  • Project Goals
  • Contributing to Metals
  • Contributing to the website
  • Making a release
Edit

Build Tools Overview

Metals works with the following build tools with varying degree of functionality.

Build toolInstallationGoto library dependenciesFind references
sbtAutomaticAutomaticAutomatic
BloopAutomaticSemi-automaticSemi-automatic
MavenAutomaticAutomaticSemi-automatic
GradleAutomaticAutomaticAutomatic
MillAutomaticAutomaticAutomatic

Installation

Automatic: you can import the build directly from the language server without the need for running custom steps in the terminal. To use automatic installation start the Metals language server in the root directory of your build.

Manual: setting up Metals requires a few manual steps to generate Bloop JSON files. In addition to normal Bloop installation, Metals requires that the project sources are compiled with the semanticdb-scalac compiler plugin and -Yrangepos option enabled.

Goto library dependencies

Automatic: it is possible to navigate Scala+Java library dependencies using "Goto definition".

Semi-automatic: navigation in library dependency sources works as long as the Bloop JSON files are populated with *-sources.jar.

Find references

Automatic: it is possible to find all references to a symbol in the project

Semi-automatic: it is possible to 'Find symbol references' as soon the SemanticDB compiler plugin is manually enabled in the build, check separate build tool pages for details.

Integrating a new build tool

Metals works with any build tool that supports the Build Server Protocol. For more information, see the guide to integrate new build tools.

← EclipseBloop →
  • Installation
  • Goto library dependencies
  • Find references
  • Integrating a new build tool
Metals
Overview
Text EditorsBuild ToolsProject GoalsContributing
Editors
Visual Studio CodeAtomVimSublime TextEmacsEclipse
Social
Copyright © 2019 Metals