【发布时间】:2020-07-24 02:41:38
【问题描述】:
生态系统中有无数的开发工具和术语,例如语言服务器、构建服务器、Metals、BSP、LSP、Bloop、Zinc、Coursier、增量编译器、演示编译器等。
我想知道是否有人可以演示它们如何组合在一起并简要解释关系和差异。具体来说,我希望有一个图表并按照Making sense of Scala FP Libraries 的方式回答。例如,这是我的尝试
(Concept) (Example implementation)
--------------------------------------------------------------------
IDE Visual Studio Code
| |
Scala IDE plugin Metals Visual Studio Extension
| |
Language Server Protocol Microsoft LSP
| |
Scala language server Metals
| |
Build Server Protocol BSP from JetBrains and Scala Center
| |
Scala build server Bloop
| |
Build tool sbt
| |
Dependency resolution Coursier
| |
Incremental compiler Zinc
| |
Presentation compiler parser and typer phases of scalac
| |
Bytecode generation remaining compiler phases
【问题讨论】:
-
实际目标是什么?还是只是好奇?我用 Grade 构建它,用 IntelliJ + scala 插件编辑它。还不需要太在意其他任何事情。
-
@bobah 试图了解组成元素如何组合在一起。
标签: scala development-environment build-tools incremental-build scala-metals