@@ -9,29 +9,31 @@ We are excited to announce the release of
9
9
[ Metals v0.5] ( https://scalameta.org/metals/blog/2020/04/12/mercury.html ) . Metals
10
10
is a Scala language server that supports code completions, type at point, goto
11
11
definition, fuzzy symbol search and other advanced code editing and navigation
12
- capabilities. Metals can be used in VS Code, Vim, Emacs, Atom and Sublime Text
13
- as well as any other
12
+ capabilities.
13
+
14
+ Metals can be used in VS Code, Vim, Emacs, Atom and Sublime Text as well as any
15
+ other
14
16
[ Language Server Protocol] ( https://microsoft.github.io/language-server-protocol/ )
15
- compatible editor. Metals is developed at the
16
- [ Scala Center] ( https://scala.epfl.ch/ ) along with contributors from the
17
- community.
17
+ compatible editor. Metals works with sbt, Gradle, Maven and Mill thanks to
18
+ [ Bloop] ( https://scalacenter.github.io/bloop/ ) , a fast Scala build server. Adding
19
+ support for other build tools is possible through the
20
+ [ Build Server Protocol] ( https://github.com/scalacenter/bsp/blob/master/docs/bsp.md ) .
21
+
22
+ Metals is developed at the [ Scala Center] ( https://scala.epfl.ch/ ) along with
23
+ contributors from the community.
18
24
19
25
## Features
20
26
21
- This post we are going to demonstrate how to use Metals with VS Code. To get
27
+ In this post we are going to demonstrate how to use Metals with VS Code. To get
22
28
started, install the
23
29
[ Scala (Metals)] ( https://marketplace.visualstudio.com/items?itemName=scalameta.metals )
24
30
extension on the VS Code Marketplace and open an sbt project directory. The
25
31
Metals extension will prompt you to import the build.
26
32
27
33
![ Import sbt build] ( https://i.imgur.com/0VqZWay.png )
28
34
29
- The build import is handled by [ Bloop] ( https://scalacenter.github.io/bloop/ ) , a
30
- Scala build server. Adding support for other build tools is possible through the
31
- [ Build Server Protocol] ( https://github.com/scalacenter/bsp/blob/master/docs/bsp.md ) .
32
-
33
- Importing the project can take a while to run, once complete you can enjoy the
34
- features of Metals.
35
+ The build import step can take a while to run and once complete, you can enjoy
36
+ the features of Metals.
35
37
36
38
### Diagnostics
37
39
@@ -42,7 +44,7 @@ Syntax errors update as you type and type errors are published on file save.
42
44
A
43
45
[ separate ` bloop ` command-line interface] ( https://scalacenter.github.io/bloop/setup )
44
46
can be installed to test and run programs from a terminal using the same
45
- compilation as Metals.
47
+ compilation artifacts as Metals.
46
48
47
49
### Type at point
48
50
@@ -110,11 +112,29 @@ several impressive pull requests:
110
112
of a symbol in the current file.
111
113
- ` textDocument/completion `
112
114
([ #640 ] ( https://github.com/scalameta/metals/pull/640 ) ): override def
113
- completions from without the need to type "override def ".
115
+ completions without the need to type "override def ".
114
116
115
117
It is our pleasure to welcome Marek and Tomasz to the team and we look forward
116
118
to working together with them to improve the Scala code editing experience.
117
119
120
+ ## Future work
121
+
122
+ Metals currently does not support several common IDE features:
123
+
124
+ - Refactorings such as rename symbol, add missing import, add inferred result
125
+ type, move class, extract value.
126
+ - Running a main function or unit test with attached debugger.
127
+ - Triggering code completions, type at point and goto definition in ` *.sbt `
128
+ files.
129
+ - Working with hybrid ` *.scala ` and ` *.java ` projects, although you can try
130
+ using the
131
+ [ Eclipse Java Language Server] ( https://github.com/eclipse/eclipse.jdt.ls ) for
132
+ editing ` *.java ` only projects.
133
+
134
+ Metals may not be a good fit if you frequently rely on these features. You might
135
+ want to try [ IntelliJ IDEA] ( https://www.jetbrains.com/idea/ ) instead, which has
136
+ great Scala support and implements all of the features listed above.
137
+
118
138
## Share your feedback
119
139
120
140
Please give Metals a try and share your feedback on
0 commit comments