Unit tests

To run the unit tests open an sbt shell and run unit/test

sbt
# Run once in the beginning and run again for every change in the sbt plugin.
> sbt-metals/publishLocal
# (recommended) run specific test suite, great for edit/test/debug workflows.
> metals/testOnly -- tests.DefinitionSuite
# run unit tests, modestly fast but still a bit too slow for edit/test/debug workflows.
> unit/test# run slow integration tests, takes several minutes.
> slow/test# (not recommended) run all tests, slow. It's better to target individual projects.
> test

Manual tests

Some functionality is best to manually test through an editor. A common workflow
while iterating on a new feature is to run publishLocal and then open an
editor in a small demo build.

Visual Studio Code

Install the Metals extension from the Marketplace, search for "Metals".