【发布时间】:2017-08-15 16:21:27
【问题描述】:
你们使用什么工具来使用 Scala?在我的学习阶段,我使用了 Scala REPL 并使用 TextMate 编写了一些代码,并使用 scalac CLI 编译了它。但随着项目规模的扩大,需要更复杂的工具。
我知道 Elipse、IntelliJ 和 Netbeans 的 Scala 插件,我都试过了。最好的是恕我直言 IntelliJ,但离完美还很远。
我遇到的主要问题是缺少自动完成功能。作为一个不那么高级的 Scala 编码器,我仍然不了解整个标准 API,并且必须定期在 Scaladoc 和 IDE 之间切换。这感觉就像“扼杀生产力”。但是它们都无法自动完成方法参数。 (听说编译的scala代码中不包含方法参数,但是附加源代码来自动完成呢?)
另一个非常烦人的问题是构建过程。我正在使用 Maven 构建我的 Scala 项目并管理它们的依赖项。但尽管如此,我必须进行完全重建以测试我的更改。也许我被 Java 世界中可用的 Eclipse 增量重建宠坏了,但这对我来说是个大问题。
我非常喜欢 Scala,并且在编码时感觉效率更高,但缺乏复杂的工具让我感觉效率低下。两者似乎都相互抵消了。
那么,我的问题是什么?我怀疑每个 Scala 程序员都使用良好的 vim 或 emacs 以及 scalac 来完成他们的工作。那么你使用什么工具呢?您开发了哪些工作流程来加快使用 Scala 语言进行开发?
编辑
澄清我对自动完成方法参数的含义。
val myList = "foo" :: "all your base" :: Nil
myList.partition(_.length > 3)
对于上面的代码,IntelliJ 未能向我提供分区要求我必须传递 () => Boolean 函数的信息。事实上,IntelliJ 不会检查这个约束。我可以通过 String 并且 IntelliJ 在我进行编译之前不会指示我的错误。
【问题讨论】:
-
NB Scala 插件的最大优点是速度快,代码补全完美无瑕,所以我很满意。您觉得 IntelliJ 的哪个功能更好?我无法让它工作,所以放弃了尝试。