调试器源代码行同步在IntelliJ IDEA Scala插件中不起作用

时间:2013-05-24 02:39:45

标签: scala intellij-idea

我在Windows 8上使用Scala插件0.7.264运行IntelliJ IDEA 12.1.3。 Scala安装在C:\Apps\Scala\scala-2.10.1中,该目录位于我的PATH中。 Scala文档位于C:\Apps\Scala\scala-2.10.1\doc\scala-devel-docs\api。这些是来自.zip文件的手动安装。

除了两件事之外,一切似乎都很好:

首先,如果启用了“运行编译服务器(在外部构建模式下)”设置(默认情况下),我会收到此错误:

enter image description here

暂时关闭该设置会修复此问题,但还有另一个问题。我可以在调试器中运行我的代码,并在单步执行代码时看到调试器面板中的值更改,但是当我单步执行时它不会同步源文件视图。

通常情况下,我希望看到正在执行的当前行变为绿色,当我按F10或F11逐步执行时,绿色突出显示将跟随,但事实并非如此。我可以在源代码行上设置断点并让它运行,并在预期的每个断点处停止。当它到达那里时,它不会突出显示绿色的源代码行。

同样,如果源文件未打开(我的源代码或库文件),并且我进入该代码,它似乎正确地单步执行但根本不打开源文件。

其他所有工作正常,例如自动填充和Shift + F1,以查看光标所在的Scala文档。

真奇怪的是我完全调试了一下。起初我从.msi文件安装了Scala,因此它将Scala安装到C:\Program Files (x86)\scala。当我设置IntelliJ以使用Scala安装时,我在源代码行中获得了绿色突出显示的代码。

该设置的唯一问题是当我设置Scala项目时,IntelliJ抱怨缺少doc\scala-devel-docs\api目录,因为.msi安装使用API​​文档的不同子目录。在Global Liraries设置中手动修复它很容易,但我想我会尝试.zip安装,所以我可以使用更像IntelliJ所期望的目录布局。

我应该独自离开!我甚至尝试回到那种安排,仍然没有让源线同步再次工作。

有一次,我也试过让IntelliJ做Scala安装,但这也给出了相同的结果:除调试器中的源代码行同步外,一切正常。

肯定会有一些明显的错误,但我不确定它是什么。有没有人有任何想法?

以下是调试会话的屏幕截图:

enter image description here

程序在第3行停止,正如分配给xy但尚未z的值以及“框架”面板中的<init>():3, Main$$anon$1所示。所以第3行应以绿色突出显示,但不是。

以下是相关的设置对话框:

enter image description here

enter image description here

enter image description here

enter image description here

以上是“运行编译服务器”;如上所述,我最终关闭了这个设置。字段值是默认值,包括-server -Xss1m -XX:MaxPermSize=256m JVM参数。

enter image description here

enter image description here

1 个答案:

答案 0 :(得分:1)

我使用相同版本的IDEA和Scala插件(但是在OS X和JDK 6上),我没有这个问题。这是出现在您的任何项目中还是仅出现在某个项目中?


假设操作系统不应该负责,不同之处在于我使用sbt来构建我的项目。因此,如果您愿意为IDEA设置build.sbt并安装SBT插件,这可能值得一试。

虽然理想的新编译服务器理论上应该像sbt一样快速和流畅,但我发现使用sbt插件非常愉快。您可以在“设置”中安装它 - &gt; IDE设置 - &gt;插件。下一步我还强烈建议使用sbt-idea插件,这就像IDEA SBT插件的补充 - 这将允许您从sbt生成完整的IDEA项目文件(您可以只有一个如果您不需要管理依赖项,scalaVersion中的build.sbt条目,那么您首先不需要了解sbt。

然后最后一步是进入运行/调试配置,并将“发布前”部分从“制造”更改为“SBT”。


最后,您可以通过JetBrains online forum获得更好的问题支持。