Scala - 基于控制台的开发工作流程

时间:2014-12-09 17:32:59

标签: scala

过去10天,我一直在阅读" Scala编程"并编写一些Scala代码。

正如你在GitHub Scala playground中看到的那样,我开始非常喜欢这种语言 - 它和OCaml一样快(感谢JVM的HotSpot技术),保护我免受错别字(以及错误) !)具有强大的静态类型系统,最重要的是:在企业方面,它不会生活在一个偏远的岛屿中。 (比如Haskell和OCaml)......因为它拥有JVM的庞大生态系统。

到目前为止我唯一的问题是:

即使我已经知道如何使用sbt-quickfix在VIM下开发我的Scala代码,或者在使用Ensime的Emacs下进行开发(因此具有自动完成和错误导航),我到目前为止还未能找到方法调试我的代码,与我为Python做的相同:

bash$ python -m pdb ./someCode.py

Google指出的所有条目基本上都在说:"使用我真正喜欢的IDE ..."

但是有理由 - 没有必要列举它们,你要么知道它们,要么你们不要 - 像我这样的人更喜欢(a)programmable editors和(b)一个独立的调试器,可以在他们之外使用编辑器。

如果你是少数志同道合的人之一,不喜欢IDE并碰巧使用Scala,我真的很想知道你如何调试 - 实际上我有兴趣听你的全部工作流程。

我到目前为止是:

  • sbt-quickfix添加到我的SBT项目/文件夹(此GitHub回购中仅look at my code
  • 在终端中生成sbt,然后运行~compile,以便在我更改源中的内容时自动构建
  • VIM会自动收到错误并显示错误。
  • 当编译为绿色时,在sbt终端中按Enter,键入run

Ensime甚至更好,也允许自动完成:

  • sbt gen-ensime
  • 编辑emacs编辑我的.scala文件和M-x ensime
  • 使用ensime-typecheck-all(映射到我的dotfiles中的F7),一切正常...
  • ensime-sbt-do-run

希望我并不孤单 - 并且那里的人也会帮助我进行独立调试......在我完全接受Scala之前的最后一个挑战: - )

1 个答案:

答案 0 :(得分:1)

结果ensime有一个调试模式,我不知何故错过了。与Emacs / evil配对,我在Emacs和Scala中度过了最后几天 - 这一切都完美无缺...自动完成,当我想要运行时,在缓冲区中生成sbt,调试。

我唯一剩下的问题是从screen - ed会话中使用Ensime,这是我通常的运作方式(通过SSH连接)。 Ensime调试器的当前行断点集的标记位于左边缘 - 在图形模式Emacs中工作正常,但不可见在文本模式Emacs中。我opened a ticket和那里的人显然有一个解决方案的计划。