过去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
,以便在我更改源中的内容时自动构建sbt
终端中按Enter,键入run
Ensime甚至更好,也允许自动完成:
sbt gen-ensime
M-x ensime
ensime-typecheck-all
(映射到我的dotfiles中的F7),一切正常... ensime-sbt-do-run
希望我并不孤单 - 并且那里的人也会帮助我进行独立调试......在我完全接受Scala之前的最后一个挑战: - )
答案 0 :(得分:1)
结果ensime
有一个调试模式,我不知何故错过了。与Emacs / evil配对,我在Emacs和Scala中度过了最后几天 - 这一切都完美无缺...自动完成,当我想要运行时,在缓冲区中生成sbt,和调试。
我唯一剩下的问题是从screen
- ed会话中使用Ensime,这是我通常的运作方式(通过SSH连接)。 Ensime调试器的当前行和断点集的标记位于左边缘 - 在图形模式Emacs中工作正常,但不可见在文本模式Emacs中。我opened a ticket和那里的人显然有一个解决方案的计划。