【问题标题】:Which IDE for Scala 2.8? [closed]哪个 IDE 适合 Scala 2.8? [关闭]
【发布时间】:2011-02-06 14:18:27
【问题描述】:

This 对于旧版本的 Scala 也是同样的问题,但他们说 Eclipse 插件已经得到了很大的改进。它是现在最好的 IDE 吗?今天不同的Scala IDE如何比较?

【问题讨论】:

  • IDEA 获得了最好的评价,但我很难让它发挥作用:stackoverflow.com/questions/2668153/…
  • Same question 从 2010 年 1 月开始。
  • Eclipse Scala IDE 现在得到了 Odersky 的 Scala Solutions 的支持,所以 Eclipse 越来越符合我的期望了!我更喜欢 Eclipse。!

标签: ide scala scala-2.8


【解决方案1】:

我在 IDEA 9 上取得了相当大的成功。我曾短暂尝试过 Netbeans 和 Eclipse,但都没有得到我想要的。 Eclipse 的代码完成功能不如我所愿,而且我找不到让 Netbeans 处理 Scala 脚本的方法;它只是抱怨该文件不是一个类。

需要说明的是,我在 Java 上使用 IDEA 已经有几年了,所以请记住这一点:)

【讨论】:

  • 你能记住你想要什么没有得到吗?
  • @Łukasz -- 在 Netbeans 中,它似乎无法处理 scala 脚本,只能处理类。 Eclipse 的代码完整和语法突出显示有点不稳定。有效的 scala 语句被标记为错误。同样,由于我对 Netbeans 或 Eclipse 不是特别熟悉,因此我可能配置错误。
  • 我目前推荐将最新的 IDEA 9.0.2 和可从此处下载的 Scala 插件的夜间构建之一:confluence.jetbrains.net/display/SCA/… 例如构建 #1289)
【解决方案2】:

目前,IntelliJ IDEA 中的 Scala 插件是最好的。它可以很好地处理 Scala 2.8。 IntelliJ IDEA 社区版现在是免费和开源的(并且可以与 Scala 一起使用),所以我看不出有任何不使用它的理由。

该插件仍然有些错误(许多“误报”,即没有红色下划线的代码可能无法成功编译;但几乎没有“误报”),但完全可用。最好的事情是您可以将 IDEA 出色的调试器与 Scala 一起使用(并非没有一些问题,但它确实有效!)。

最新版本也支持 FSC(快速 Scala 编译器)。节省大量时间。

插件开发团队反应迅速。有些人直接在 JetBrains 工作,对 IDEA 平台有深入的了解,所以开发进展很快。

【讨论】:

    【解决方案3】:

    JetBrains IDEA 的 Scala 插件同样可以很好地处理 2.7 和 2.8。

    我无法进行任何比较,因为我只使用过 IDEA。

    【讨论】:

      【解决方案4】:

      将 Eclipse Helios 与新 Scala(2.8) 插件的开发版本一起使用,因为还没有正式发布。这测试版,绝对是——但我无法证实经常表达的观点,即这个插件非常可怕;-)

      我想说,体验已经不错了,而且确实比目前使用 Groovy 插件的情况要好。 OTOH,使用纯 Java 的体验要顺畅得多(有时感觉就像在飞翔),而当前的 CDT 则介于两者之间。

      增量编译和错误高亮对我来说效果很好;只需不断地重写代码直到错误标记消失,就可以将 DSL 实现调整为形式——无需测试运行你的程序——非常有趣,并且再次表明 FP / 静态类型非常棒!

      不时遇到的问题: - 其他编译单元(尤其是嵌套/超级包)中的隐式和嵌套类型在仍有其他错误时不会被拾取;它们将在完整构建后被拾取 - 我现在使用的版本(从 2010 年 8 月下旬开始)似乎存在内存泄漏,需要在工作几个小时后重新启动工作台 - 当你使用 AspectJ 时要小心,以确保你得到一个依赖于 JDT weaving bundle 版本的 Scala 插件版本,该版本也适用于 AJDT

      PS:我在所有项目中都使用 maven 构建,并使用 eclipse-maven-plugin 生成了 eclipse 项目,然后将它们作为普通 eclipse 项目导入。我可以强烈建议每个人远离当前(2010)状态的 M2-eclipse 插件(用于 maven),它使你的工作台非常缓慢,有很多几乎不可预测的行为,因为它不断尝试做幕后的神奇事物(除此之外,aspectj 支持从今年春天就被打破了)

      【讨论】:

        【解决方案5】:

        我同时使用eclipse和IDEA

        1. eclipse 支持的类型检测是 比 IDEA 好(非常 如果你想要程序,必要的东西 功能风格,你可以 从表达式的类型和 变量。)


          Edit1:IDEA 支持像 eclipse 这样的类型检测,但你有 在你的函数中定义一个值 例如:def testTs[A](a:List[String],b:List[A]) = for{ ai <- a bi <- b } yield (ai,bi) } 应转换为 def testTs[A](a:List[String],b:List[A]):List[(String,A)]={ val result = for{ ai <- a bi <- b } yield (ai,bi) },而不是将鼠标悬停在变量上,当鼠标悬停在该变量上时必须按 ctrl+q

        2. eclipse代码有问题 完成(当您使用变量时 在下一行,你想得到一个 这个变量 eclipse 的属性 显示错误的代码建议)
        3. 在 IDEA 中破坏了 Scala 应用程序 比 Eclipse 慢 5 秒(对于 bust IDEA 运行时间有一些解决方案,但这些有副作用有一些问题) 在想法中有一个众所周知的双击速度问题,在许多情况下会显示出来,例如打开文件或在源代码中选择字符串......您可以通过创建(或编辑)/home/.Xresources 和添加这一行:*.multiClickTime: 400

        Edit1: 总的来说,我更喜欢使用 IDEA 而不是 eclipse

        【讨论】:

          【解决方案6】:

          我的经验清楚地指向 IntelliJ IDEA:

          大约六个月前,当我开始一个严肃的 Scala(多模块)项目时,我不得不放弃 Eclipse 作为我最喜欢的 Java IDE,转而使用 IntelliJ (9.0.x)。 Eclipse Scala IDE 是一种错误的方式,并且经常在某些时候停止响应,即使对于最简单的项目也是如此。对于 CI(Hudson)和命令行构建,我依赖 Maven(带有 Scala 插件)。 IntelliJ 很好地拾取了 Maven 依赖项(包括 Scala 库)。

          几天前,我使用当前插件(夜间构建)更新到 IDEA X (CE),工作变得更加顺畅。虽然 fsc 在不活动时仍然会在一段时间后终止。

          据我所知,我想补充一点,IntelliJ 方面似乎有更多的活动来响应错误并不断改进插件。如果我错了,请纠正我,但 Eclipse Scala IDE 开发似乎几乎停滞不前。仍然没有“正式”的 Helios 版本!

          NB:只是为了提供一些上下文(不是吹牛,真的):上述项目由大约 25 个 Scala 模块(POM)、5 个 Java 模块、325 个 Scala 文件组成,总共大约 360 个 Scala 类、案例类和特征(> 19 kLOC,包括 cmets)。我的平台是 OS X 10.6、Scala 2.8.1、Java 1.6。

          更新:在需要进行相当广泛的重构(主要是移动类、重命名包)之后,我发现最近的 IDEA 10.0.1 插件 0.4.413(也可能是旧版本)在正确处理内容方面存在相当大的问题.我不想解释细节,但我(几乎曾经)最终手动修复了未解析的引用或其他混乱的代码。你可以看看http://youtrack.jetbrains.net 来了解一下。

          对于真正考虑使用 Scala 进行一些认真开发的每个人,我强烈建议在基础知识之外评估有问题的 IDE。当您采用敏捷方法时,在我的选择中需要无痛的重构支持而不会出现意外(尤其是在多模块项目中),目前情况非常紧张。

          如果有人提出了一个独立于 IDE 规范的重构列表(和期望的结果),那将非常简洁,可用于验证 IDE 的重构支持。

          【讨论】:

          【解决方案7】:

          无答案:无。

          根据大多数人的看法,IDEA 可能是当今最好的 Scala IDE。它(阅读:Scala 插件)很糟糕。它不能很好地处理 fsc,类型推断是一团糟,很多错误没有显示,一些非错误被标记为错误,它很慢(当检查打开时),测试运行器默默地吞下 aborting (!=失败)测试,...

          所以我切换到一个简单的文本编辑器,其中一个具有语法高亮显示,另一个屏幕具有 SBT(简单构建工具)的最大化外壳。惊人的! SBT 具有响应性(您可以让文件更改触发受影响代码的重新编译,甚至重新运行测试),非常顺利地管理依赖关系并具有有用的输出(尤其是用于测试;使用 ScalaTest)。与 IDEA 相比,SBT 大大提高了我的工作效率。

          当然,尽管 geany 为我提供了已识别的符号,但您会丢失代码完成功能。但是,只要 IDE 没有获得类型推断以正常工作,代码完成就无济于事。

          有些人非常关心代码重构。好吧,IDE 显然在那里也做得不好。即使他们愿意,我也宁愿只为这个特定任务打开它们,而不是一直使用它们。

          【讨论】:

          • SBT 和 IDEA 有一个插件,实际上是两个。我做了一个修改版本,将错误注入到文档中,您可以在此处查看代码:github.com/null77/idea-sbt-plugin
          【解决方案8】:

          我认为目前最好的选择是 ScalaIDE for Eclipse。你可以去 ScalaIDE 网站自己看看。 http://scala-ide.org/

          我看到的重点是:

          • 文档,
          • 教程,
          • 不断发布,
          • 来自 Typesafe 的支持。

          以下是主要功能的摘要:

          Scala IDE 支持在 Eclipse 平台上开发 Scala 应用程序。它的主要目标是支持 Scala 语言以及与 Eclipse Java 工具的集成。它提供了 Eclipse 用户所期待的许多功能,包括:

          • 支持混合 Scala/Java 项目和 Scala/Java 项目依赖项的任意组合。类型驱动的操作在 Scala 和 Java 文件和项目中是透明的,允许从 Scala 直接引用 Java,反之亦然。
          • 一个 Scala 编辑器,具有语法突出显示、推断类型、定义超链接、代码完成、错误和警告标记、缩进、大括号匹配。
          • 项目和源导航,包括包资源管理器视图中的 Scala 支持,具有嵌入式大纲、大纲视图、快速大纲、开放类型、开放类型层次结构。
          • 增量编译、使用集成调试器启动应用程序、从堆栈跟踪超链接到 Scala 源代码、交互式控制台。
          • 支持 Eclipse 插件和 OSGi 开发,包括从 plugin.xml 和清单文件超链接到 Scala 源代码。

          更新:此答案中提到的功能和优势适用于 Scala 的 2.9 和 2.10 版本,因为它已经停产。看这里:

          "2.0.1 版本仅适用于 Scala 2.9,如果您想将 Scala IDE 与 Scala 2.8 一起使用,请安装 2.0.0 版本 (在 2.0 之后已停止对 Scala 2.8 的支持.0 版本)

          【讨论】:

            【解决方案9】:

            Scala 2.9 的官方认可和支持(由 Typesafe)是 Eclipse。当前版本远远优于以前的版本,包括上下文感知 REPL、功能齐全的调试器,甚至可以调试 REPL 语句。我认为这个问题需要更新并重新审视答案。

            【讨论】:

              【解决方案10】:

              我不推荐 Scala IDE/Eclipse。它没有很多甚至可用于带有 Java 的 Eclipse 的特性。还有bug。

              【讨论】:

                【解决方案11】:

                我使用的是最新的 NetBeans,没有尝试过其他任何东西。在使用 Scala 编码时,我在 NetBeans 中遇到了至少 2 个值得注意的错误:

                一:NB偶尔来个程序无法运行,挂在classpath扫描上。
                解决方案:创建一个新项目,将代码复制到那里并继续。
                评论:This bug is more than 10 years old.

                二:有时 NB can't see members 特定命名空间或类并在您使用它们时抱怨。
                解决方案:忽略并继续 - 编译器没有发现错误并且程序可以正常工作。

                【讨论】:

                • 对于#2,我认为这可能有效:右键单击编辑器中的任何 .scala 文件并选择“reset scala parser”,然后转到任何其他 .scala 文件,单击窗口内的任意位置并回到原来的窗口。这应该是固定的。
                【解决方案12】:

                我现在推荐 IDEA 的插件。

                NetBeans 的 Scala 插件也很不错。不过,它还不支持最新版本的 NetBeans 6.9,您仍然需要手动下载它,而不是直接从 NetBeans 中的插件管理器安装它。

                但是,它与 Maven 项目的集成比 IDEA 的插件更好(在我看来,这对于 NB 和 IDEA 来说一般都是如此)。

                【讨论】:

                  【解决方案13】:

                  这部分取决于您的工作方式,因为所有选项都有优点和缺点。

                  如果您需要跨混合 java/scala 项目进行重构,那么 IntelliJ 是您唯一的选择。

                  如果您想对编译器或编译器插件进行任何工作,那么 Eclipse 的优势在于能够使用自定义编译器构建(包括断点)启动运行时工作区。它还在 Scala 2.8 版本中得到了大幅改进。

                  如果您已经非常熟悉该平台,Netbeans 是一个不错的选择,学习新环境的成本可能远远超过任何收益,并且所有三种解决方案都在迅速改进。

                  【讨论】:

                    【解决方案14】:

                    我还没有尝试过 netbeans scala 插件,但我发现 Intellij IDEA 插件在任何方面都比 Scala eclipse 插件好得多,后者太慢了,让我发疯。 虽然 Swing 应用程序不能很好地与我的平铺窗口管理器配合使用。

                    【讨论】:

                      【解决方案15】:

                      试试 IDEAX 最新的 Intellij IDEA 社区版(版本 10),它改进了 scala 插件,除了它有更快的代码编译和执行之外 Maven3 和 SBT 支持,我们可以使用它们开发 Lift 应用程序。

                      【讨论】:

                        【解决方案16】:

                        IntelliJ IDEA 社区版 + Scala 插件 + SBT 插件

                        【讨论】:

                          【解决方案17】:

                          对于最近的版本(2021 年),哪个 ide 占据主页大部分的问题https://scala-lang.org/

                          【讨论】:

                          • 主页更改。链接过时了。为了使这个答案保持相关和有用,您应该将一些相关的链接文本复制到答案文本中。
                          猜你喜欢
                          • 1970-01-01
                          • 2014-07-17
                          • 2020-05-01
                          • 2011-06-11
                          • 2011-11-25
                          • 1970-01-01
                          • 1970-01-01
                          • 2023-03-12
                          相关资源
                          最近更新 更多