Scala VSCode,金属智能感知无法正常工作

use*_*e12 5 scala visual-studio-code mill scala-metals

此代码确实使用 mill 进行编译和运行,但智能感知显示错误“object pwd is not a member of package foo.os bloop”

//main.scala
package foo

object Exercise{
    def main(args: Array[String]): Unit = {
        println(os.pwd)
    }
}

Run Code Online (Sandbox Code Playgroud)
//build.sc
import mill._, scalalib._

object foo extends ScalaModule {
  def scalaVersion = "2.13.1"

  def ivyDeps = Agg(
    ivy"com.lihaoyi::os-lib:0.7.8"
  )
}
Run Code Online (Sandbox Code Playgroud)

我有 Metals vscode 扩展,它确实可以识别项目库中的 os-lib 。它确实显示了 os.pwd 的类型,但仍然显示错误。

Sam*_*awi 5

有时 VS Code 的 Scala 插件 Metals 突然停止工作,我在所有内容下都出现红线,并且智能感知停止工作,即使sbt compile工作正常。

我找到了一个简单的修复方法,可以让 VS Code 下的 Metals 重新恢复工作:

# Exit VS Code
cd your/project/dir
rm -rf .bloop
rm -rf .metals

# Sometimes a running bloop can cause problems so find and stop it
ps -ef | grep -i bloop

kill <bloop process id>

code .
Run Code Online (Sandbox Code Playgroud)

Bloop 和 Metals 似乎进入了不一致的状态,删除隐藏目录将迫使两者重新启动。