gpt4 book ai didi

scala - 如何使用Scala提高生产力? (工具,IDE)

转载 作者:行者123 更新时间:2023-12-03 11:52:29 26 4
gpt4 key购买 nike

您使用什么工具与Scala一起使用?在学习阶段,我使用了Scala REPL,并使用TextMate破解了一些代码,并使用scalac CLI对其进行了编译。但是随着项目规模的扩大,需要更加复杂的工具。

我知道Elipse,IntelliJ和Netbeans的Scala插件,我都尝试了全部。最好的是IMHO IntelliJ,但离完美还很遥远。

我遇到的主要问题是缺乏自动完成功能。作为不太高级的Scala编码器,我仍然不了解整个标准API,因此必须定期在Scaladoc和IDE之间切换。感觉就像是“杀死生产力”。但是它们都无法自动完成方法参数。 (我听说方法参数不包含在已编译的scala代码中,但是如何附加源代码以自动完成呢?)

另一个非常烦人的问题是构建过程。我正在使用Maven构建我的Scala项目并管理其依赖项。但是,尽管如此,我仍必须进行全面重建以测试我的更改。也许我对Java世界中可用的Eclipse增量重建感到宠爱,但这对我来说是一个大问题。

我非常喜欢Scala,在编码时感觉效率更高,但是缺乏先进的工具使我的生产力下降。而且两者似乎都抵消了自己。

那么,我的问题是什么?我怀疑每个Scala程序员都使用良好的vimemacs以及scalac来完成工作。那么,您使用什么工具?您开发了哪些工作流程来加快使用Scala语言进行开发的速度?

编辑

澄清方法参数自动完成的意义。

val myList = "foo" :: "all your base" :: Nil
myList.partition(_.length > 3)

对于上面的代码,IntelliJ无法为我提供分区要求我必须传递 () => Boolean函数的信息。实际上,IntelliJ不会检查此约束。我可以传递 String,并且IntelliJ在进行编译之前不会指示我的错误。

最佳答案

scalac

熟悉Scalac的命令行选项。

  • -deprecation
  • -Xprint:all:观察编译器阶段的代码进度,这对于查看应用了哪些隐式函数非常有用。
  • -help / -X' / -Y`列出所有选项。

  • scalac的最新夜间版本包括一个bash完成文件,使这些文件更易于使用。

    IntelliJ IDEA

    用Javadoc(CTRL-Space,CTRL-Q / Apple-J) Screenshot完成方法

    问题(CTRL-P) Screenshot中的示例的参数信息

    方法参数完成(CTRL-SHIFT-空格)。 Screenshot

    您需要将源代码或javadocs链接到IntelliJ中的依赖项才能查看Javadoc。

    由于复杂代码中仍然存在过多的假阳性,因此它目前无法即时突出显示类型错误。不过,这即将到来。

    简单的构建工具

    SBT使编译器保持驻留状态,并分析类之间的依赖关系以允许增量重新编译。它还可以监视源文件的更改,并自动触发重新编译和/或测试执行。
  • 连续编译:>~compile
  • 连续编译+测试:~test-quick

  • 我在 http://github.com/scalaz/scalaz中配置了SBT和IntelliJ项目,您可以将其用作引用。

    关于scala - 如何使用Scala提高生产力? (工具,IDE),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2348204/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com