emacs - Emacs ENSIME - 增量编译
问题描述
我对 ENSIME 很陌生。我正在尝试通过使用 SBT 逐一编译单个文件来在 Emacs 中进行增量编译。假设我有一个文件a.scala
,它在 file 中导入了一个类b.scala
。如果我尝试仅a.scala
使用C-c C-b C
它进行编译,显然会抱怨b.scala
尚未编译。如果我尝试编译b.scala
仍然使用C-c C-b C
它正确编译,但之后我仍然无法编译a.scala
.
我尝试使用相同的编译b.scala
和a.scala
使用 IntelliJ 程序,它工作正常。我错过了什么?
解决方案
浏览 ensime-sbt 的代码,看起来目标类路径不包含在输入类路径中。因此,虽然ensimeCompileOnly
看到 JAR 依赖项,但它不会看到任何对等编译的类(我在 sbt 1.xx 中观察到这一点)。理想情况下,它会而且我认为没有充分的理由不这样做。
查看定义了 compileOnlyTask 的 CompatExtras.scala。另外,也许在 ensime-sbt 上打开一张票,并尝试打开一个讨论。如果实施的是理想的,那么可以更新文档以反映这一点。
请注意,Ensime 目前没有专门的维护者。我们中的一些人偶尔会潜伏以帮助贡献合并。解决这个问题的最大机会是积极主动。我将首先更新在 中找到的测试./src/sbt-test-0.13/sbt-ensime/compile-only/test
以具有项目依赖项(您会注意到 Foo、Baz 和 FooTest 之间没有)。也许您可以让 FooTest 引用 Foo,然后观察测试失败,然后继续进行。
推荐阅读
- html - Materialise 和 Datetime Picker 相互交互
- javascript - 按下回车键时执行操作
- python - Selenium (Python) 模式匹配
- npm - 使用 yarn 工作空间时,如何强制将包安装在相关的 node_modules 中?
- c# - c# ninject 在实例化类中注入依赖项
- c++ - 从函数返回静态固定大小的数组
- linux-kernel - 内核如何跟踪映射到其他进程的帧?
- gridfs - 无法使用 gridfs 将文件存储到 mongodb Atlas
- php - 使用 php 从 URL 获取解码 json 以显示最新版本的 fontawesome
- laravel - Vue组件扩展布局时找不到#app