Scala工作表在Intellij中不起作用

时间:2014-04-22 17:35:30

标签: scala intellij-idea

我有Intellij-IDEA 13.1.2。 [编辑,之前为13.0.2] 我使用scala-plugin。 我正在尝试使用工作表来评估代码。

但我得到的只有两个错误:

bad macro impl binding: versionFormat is supposed to be there
Unable to read an event from: rO0ABXNyADVvcmcuamV0YnJhaW5zLmpwcy5pbmNyZW1lbnRhbC...

我可以正常运行scala控制台并在其中执行我的代码, 但工作表不起作用。 如果我的代码不正确,它会输出一个错误,指示解释器无法解析我的代码。只有在我的代码正确的情况下,我才会收到“错误的宏impl绑定”错误。

我尝试创建一个新项目,但它没有用。 我按照教程在intellij中配置了scala,但它也没有帮助。

我可能错过了重要的配置步骤吗?这个错误意味着什么?

编辑:我在我的工作表中尝试过最简单的事情,如1或var x = 1或println(“Hello World!”)

EDIT2:我不确定我改变了什么,但现在又出现了另一个错误:     错误:加载MacroPrinter时出错,缺少MacroPrinter所需的类文件。     包反射的参考值宏指的是不存在的符号。

更新:现在它在Intellij 13.1.5,Scala插件0.41.2下使用scala-2.10和2.11正常工作

4 个答案:

答案 0 :(得分:3)

我有“无法读取事件”的问题,从Scala 2.11.0切换到Scala 2.10.4为我修复了它。

答案 1 :(得分:2)

我在a similar question中分享了一种解决方法,我认为它也适用于这个问题:

我在使用最新的Idea和Scala插件时遇到了同样的问题 似乎工作表在执行任何评估为Unit的行时出现问题。分配是单位,这就是你的tableTest(0) = "zero"失败的原因。

我暂时通过以下解决方法解决了这个问题:

此行将失败,错误为Error:Unable to read an event from:...

println("Will fail")

您可以通过定义此帮助程序方法并将其用于任何单位表达式来修复它:

def unit(f: => Unit): String = {f; ""}
unit(println("Will work"))

您只需忽略它在res0: String =输出面板中生成的行 您还可以将此方法放在某个对象中并导入所需的任何WS。

答案 2 :(得分:1)

我使用的是IntelliJIDEA 13.1.2和Scala Plugin 0.36.431。我尝试创建一个Scala Non-SBT项目并创建了一个工作表文件,然后我遇到了"糟糕的宏impl绑定"问题。但是,如果我使用工作表文件创建了Scala SBT项目,那么它运行良好。

答案 3 :(得分:1)

使用JRE 1.7.0_60和Scala 2.11.0更新到IntelliJ 13.1.5 build 135.1289后,我遇到了同样的问题。

我通过禁用设置中的复选框修复了问题 - > IDE设置 - > Scala - > “运行编译服务器”。