0x00 Intro

为了参加某个奇怪的比赛,突然开始暴学 Scala

然后既然是 VSCode 信徒,那么自然也想用 VSCode 来写 Scala

结果遇上了不少麻烦……在这里记录一下吧w

0x01 Install sbt

首先需要安装项目构建工具 sbt

$ sudo pacman -S sbt

sbt 位于 community 仓库,可以说非常友好了。

接下来用 sbt 创建一个项目。

$ sbt new sbt/scala-seed.g8
....
name [My Something Project]: 

输入 hello_world

然后项目就被创建好了。

试着运行一下。执行:

$ cd hello_world
$ sbt run

应该能看到 hello 的输出。

至此,sbt 就安装完毕了。

0x02 Install ENSIME

接下来,安装解析工具 ENSIME

ENSIME 可以作为构建工具 sbt 的插件安装。

$ mkdir -p ~/.sbt/1.0/plugins
$ vim ~/.sbt/1.0/plugins/plugins.sbt

输入

addSbtPlugin("org.ensime" % "sbt-ensime" % "2.1.0")

保存退出。

接着回到之前的 hello_world 目录下,执行:

$ sbt ensimeConfig

生成 .ensime 文件。

至此, ENSIME 的配置就结束了。

0x03 Install VSCode Plugin

接下来就要安装对应的插件了。

MarketPlace 中搜索 scala ,安装 Scala Language Server

接下来修改配置文件 (File-Preferences-Settings):

{
  "scalaLanguageServer.heapSize" : "4G"
}

这里 VSCode 会提示未知的配置项。我们不用管它。

然后 Reload

接下来会执行漫长的语言服务器初始化过程,至少在我的 Intel i7-7500U 上很漫长(其实我的CPU也不算好= =)。

之后就可以正常地 Completion + Error Hint as Typing 了。

0x04 What messed up

这个过程最蛋疼的是最后一步。因为就算是 hello worldLanguage Server 也要消耗掉大约 2.7G 的内存。如果你的内存不足……

如果没有更改 heapSize ,会导致 Language Server 无法加载。表现为 CPU 风扇疯狂转动,但是并没有效果……