Skip to content

Commit d6f468a

Browse files
committed
Add the Dotty Language Server
This is an implementation of the Language Server Protocol for Dotty, which allows us to provide rich IDE features in every editor supporting this protocol, a Visual Studio Code extension demonstrating this is part of the next commit. For more information on the LSP, see https://github.com/Microsoft/language-server-protocol Fully supported features: - Typechecking as you type to show compiler errors/warnings - Type information on hover - Go to definition (in the current project) - Find all references Partially working features: - Completion - Renaming - Go to definition in external projects Unimplemented features: - Documentation on hover - Formatting code (requires integrating with scalafmt) - Quick fixes (probably by integrating with scalafix) Current limitations, to be fixed: - Projects should be compiled with sbt before starting the IDE, this is automatically done for you if you run `sbt launchIDE`. - Once the IDE is started, source files that are not opened in the IDE should not be modified in some other editor, the IDE won't pick up these changes. - Not all compiler errors/warnings are displayed, just those occuring during typechecking.
1 parent c9a449f commit d6f468a

File tree

5 files changed

+562
-0
lines changed

5 files changed

+562
-0
lines changed

build.sbt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ val `dotty-library-bootstrapped` = Build.`dotty-library-bootstrapped`
1212
val `dotty-sbt-bridge` = Build.`dotty-sbt-bridge`
1313
val `dotty-sbt-bridge-bootstrapped` = Build.`dotty-sbt-bridge-bootstrapped`
1414
val `dotty-sbt-scripted-tests` = Build.`dotty-sbt-scripted-tests`
15+
val `dotty-language-server` = Build.`dotty-language-server`
1516
val sjsSandbox = Build.sjsSandbox
1617
val `dotty-bench` = Build.`dotty-bench`
1718
val `scala-library` = Build.`scala-library`

0 commit comments

Comments
 (0)