3

在过去的一年里,我听到越来越多关于 Scala 语言的炒作。我知道有几个现有项目计划将 Scala 支持与 IDE 集成;但是,并不总是很清楚集成到底有多好。

他们目前是否支持 Intellisense 以及 Eclipse 和 Netbeans 对 Java 语言的支持?他们是否也支持即时验证?

4

6 回答 6

5

我不能亲自谈论 IntelliJ 或 NetBeans 插件的稳定性(尽管我听说过好消息),但用于 Eclipse 的 Scala IDE 最近刚刚发布了带有 Scala 2.7.4 的新版本。在架构上,此版本与之前的版本有很大不同,因为它使用 Equinox Aspects,这是官方支持的扩展 JDT(和其他跨插件扩展)的机制。之前 Scala 插件必须使用私有 API 和反射来真正侵入 JDT 内部以欺骗系统正常运行,而现在它能够简单地声明其扩展点并让系统完成其余的工作。甚至很难描述这使事情变得更加稳定。我并不是说这一切都是阳光和玫瑰,但如果你过去曾尝试并拒绝过该插件(就像我一样),它'

至于它是如何堆叠功能的,SDT 没有任何重构支持(IntelliJ 有一些基本的东西,比如“重命名”),编辑器也没有做一些事情,比如“标记出现”。但是,它的 Outline 比 NetBeans 好得多,编译器支持比 IDEA 好,而且语义突出非常好。所有三个插件都支持内容辅助(或 Microsoft 所说的“智能感知”),但目前还没有一个插件在该领域特别可靠。用于 Eclipse 的 Scala IDE 是唯一支持增量编译的(所有 Eclipse 的 Java 工具)。

我的建议:货比三家。尝试所有三个,看看哪一个最适合你。据我所知,Eclipse 的 Scala IDE 凭借其最新版本超越了竞争对手,但其他版本显示出如此稳定的稳定性和稳定的进步,以至于您还不能将它们排除在外。

于 2009-04-28T06:02:43.307 回答
3

这是一个类似的问题: 哪个是 Scala 开发的最佳 IDE?

在我对Scala IDE for EclipseScala Plugin for Netbeans的短暂体验中,Netbeans 插件似乎比 Eclipse 插件更可靠一些。

使用 Scala IDE for Eclipse 时,我在运行 Hello World 类型的 Scala 对象时遇到了问题,有时语法高亮会开始起作用。然后,我试用了 Netbeans 插件,它似乎比 Eclipse 的功能更强大。

两个Scala IDE插件我都没有深入使用过,所以不能多说经验,但是从我的第一印象来看,Netbeans插件似乎比Eclipse稳定一点一。

于 2009-04-28T04:47:44.923 回答
3

目前,所有三个主要 IDE 都处于大致相同的支持级别。

  • IntelliJ - 该插件有一些根本不工作,但在其他方面非常好。自 v8 以来,底层平台运行缓慢(至少在 linux 中)。
  • Eclipse - 该插件得到了很多支持,并且正在积极开发中。
  • NetBeans - 恕我直言,该插件比 Eclipse 工作得好一点,但不能运行任意文件是一个主要的缺点。

以上所有问题都无法在所有上下文中解析 A​​ST。例如,通过将特征与隐式定义混合在一起很容易混淆它们。当 IDE 提示语法错误时,它是不可信的。回退到编译器来确定。

于 2009-04-28T06:07:13.813 回答
3

我很高兴使用 IntelliJ IDEA 8.1 及其Scala 插件,并且可以推荐它。它甚至有一个路线图,您可以通过投票来影响您最喜欢的缺失功能:) 不幸的是,我没有其他 IDE 的 Scala 支持经验。

于 2009-05-05T07:08:03.967 回答
0

我正在使用 Eclipse Scala 插件。它相当不错,但与 Java 工具不同。

于 2009-04-28T06:08:54.417 回答
-2

至于intelliJ,不知道。但是在 Eclipse 和 Netbeans 之间,我必须说 Netbeans,特别是如果你不愿意用 maven 换 sbt 并且你想要一个不会妨碍 maven 的 IDE。

Netbeans maven 支持太好了。

Netbeans scala 编辑器似乎也能很好地工作。我不关心 netbeans 中的集成 scala 开发工具包或编译器插件,或任何此类帮助程序。从 netbeans 我只期望三件事:(a)不要妨碍 maven,让 maven 运行我的构建(b)给我一个像样的编辑器(c)让我从我的 .scala 文件深入到源代码我的 Maven 依赖项引用的库。

我相信,Netebeans 能够很好地提供这三个方面,即使有时感觉有点太慢了。

我能说的是(1)你不会遇到任何编译问题,因为任务取决于 maven。maven 编译器插件有点太慢了。但是编译scala vs java总是这样,很痛苦。不过,如果您尝试过 GWT 将 java 编译为 javascript,甚至会更加痛苦。

(2) Netbeans 完美地为您找出 maven 依赖项的源代码,您可以深入了解最晦涩的 sacala 运算符,例如 lift 的 CSS 映射器。

至于eclipse,eclipse maven集成一直很讨厌。如果您有一个包含太多依赖项和模块的大项目,Netbeans maven 集成可能会变得非常糟糕。然后,netbeans 对外部更改的检查非常缓慢。这是netbeans的缺点。

但是,如果您是 SBT 的粉丝……好吧,那么答案可能是别的东西。

但对我来说,既然 maven 已经成为今天的样子,我再也不想回到那些“Web 应用程序项目”、“库项目”等......当你在IDE。我只是想要“maven 项目”,请通过阅读 pom.xml 来弄清楚我的输出工件是什么。

于 2015-02-15T11:34:56.867 回答