如何在vs code中为Scala程序设置断点

11

我想使用VSCode调试我的Scala应用程序。

我的Gradle运行任务看起来很简单:

task run(type: JavaExec, dependsOn: build) {
    debug true
    main = mainClassFile
    classpath sourceSets.main.runtimeClasspath
    classpath configurations.runtime
}

启动项:

{
    "type": "java",
    "name": "Debug (Attach)",
    "request": "attach",
    "hostName": "localhost",
    "port": 5005
 }

现在当我启动调试器时,它会等待vscode客户端。但是我无法在vscode中设置任何断点,以停止调试器。暂时运行直到vscode连接后结束。

我正在使用Scala和Scala语言服务器。

有人知道如何添加断点吗?


嗨@Matthias,你解决了吗? - realharry
很遗憾,不行 :( 这也是我们考虑不再使用Scala的原因之一。 - Matthias
@mattias :( 我和你一样。我尝试了所有在vscode上的Scala扩展,但没有一个真正可用/好用的。(Scala可能是vscode中支持最差的语言)。我发现最好的一个实际上是“dotty language server”(适用于Scala 3)。作者在YouTube上有一个演示(ScalaDays 2018),他展示了如何调试Scala代码。但不幸的是,我无法弄清楚他是如何做到的。无论如何,感谢您的回复。 - realharry
1个回答

2
Scala Metals的最新版本(0.8.0) 增加了调试支持 - 该版本提供了一个动画演示在Visual Studio Code中使用调试,与其他语言中的调试方式相同。
这是一个初始支持,因此某些情况可能不受支持(请参见Metals 0.8.0发布说明中的“已知限制”),但您应该能够开始使用它们。
在此之前,Scala Metals根本不支持调试,所有编写Scala代码需要此功能的人都被建议使用带有Scala插件的IntelliJ。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接