Chris Kipp
@ckipp01
Scala language server with rich IDE features
https://microsoft.github.io/language-server-protocol/
Tomasz
Godzik
Ólafur Geirsson
Gabriele Petronella
Plus many more
https://github.com/scalameta/metals/graphs/contributors
Support in...
Show implicits and type decorations
Show implicit conversions and classes.
Type decorations for definitions.
https://github.com/scalameta/nvim-metals
https://github.com/mfussenegger/nvim-dap
https://github.com/scalameta/coc-metals
This is a fantastic way to contribute to Metals
I wanted fully open source solution
I wanted a lighter weight alternative to other IDEs
I wanted more accurate compiler errors
I wanted to use my favorite editor
Metals has features other IDE's don't
BUILD TOOL | VOTES |
---|---|
Bazel | 17 |
Fury | 12 |
Pants | 3 |
Seed | 1 |
Ammonite | 1 |
Generic workspace containing .bloop/ | 1 |
Make | 1 |
BUILD TOOL | VOTES |
---|---|
Bazel | 17 |
BUILD TOOL | VOTES |
---|---|
Bazel | 17 |
Your editor
Build definition
LSP
BSP
Language
Server
Build
Server
BUILD TOOL | VOTES |
---|---|
Fury | 12 |
Seed | 1 |
Generic workspace containing .bloop/ | 1 |
I want
❯ metap Main.scala.semanticdb
src/main/scala/example/Main.scala
---------------------------------
Summary:
Schema => SemanticDB v4
Uri => src/main/scala/example/Main.scala
Text => empty
Language => Scala
Symbols => 3 entries
Occurrences => 10 entries
Symbols:
example/Main. => final object Main extends AnyRef with App { +2 decls }
example/Main.x. => val method x: Int
example/Main.z. => val method z: Int
Occurrences:
[0:8..0:15) <= example/
[2:7..2:11) <= example/Main.
[2:20..2:23) => scala/App#
[2:24..2:24) => java/lang/Object#`<init>`().
[3:6..3:7) <= example/Main.x.
[5:6..5:7) <= example/Main.z.
[5:10..5:11) => example/Main.x.
[5:12..5:13) => scala/Int#`*`(+3).
[7:2..7:9) => scala/Predef.println(+1).
[7:10..7:11) => example/Main.z.
but time...
workspace/workspaceFolders
.
├── myAwesomeProject
│ ├── build.sbt
│ └── src
├── myOtherProject
│ ├── build.sbt
│ └── src
└── yetAnotherProject
├── build.sbt
└── src
Plus the community