ENSIME找不到正确的项目定义



我在Ubuntu 12.04上使用带有Scala 2.9.2和ensime_2.9.2-RC1-0.9.3.RC4的Emacs 24快照。

基本上,我做了与中描述的相同的事情https://groups.google.com/forum/?hl=en&来自组#!主题/ensime/HvvFr5gSwg

  • 我使用sbt ensime generate生成.ensime文件
  • 我用M-x ensime在Emacs上启动ENSIME
  • 它正确地解析所有库等等(自动完成工作正常等等)

然而,当我尝试使用C-c C-v s在Emacs中启动SBT控制台时,它显示以下错误:

[info] Loading project definition from /home/ximyu/.sbt/plugins

[info] Updating {file:/home/ximyu/.sbt/plugins/}default-86f483...

[error] a module is not authorized to depend on itself: default#default-86f483;0.0

[error] {file:/home/ximyu/.sbt/plugins/}default-86f483/*:update:java.lang.IllegalArgumentException: a module is not authorized to depend on itself: default#default-86f483;0.0

很明显,ENSIME正在为项目定义查找错误的目录。不是查看我的项目目录,而是查看~/.sbt。有什么解决办法吗?

我也有同样的问题。我刚从ensime开始,所以我也不知道为什么会这样。此外,我对scala&ensime非常有限,所以这只是一个可能更明显的问题。

无论如何,这就是有问题的ensime函数:

(defun ensime-sbt-project-dir-p (path)
  "Is path an sbt project?"
  (or (not (null (directory-files path nil "\.sbt$")))
      (file-exists-p (concat path "/project/Build.scala" ))
      (file-exists-p (concat path "/project/boot" ))
      (file-exists-p (concat path "/project/build.properties" ))))

基本上,ensime会使用上面的函数在缓冲区上方搜索一个文件夹,在那里你可以点击C-C-Vs来确定根项目文件夹。因此,简单的修复就是简单地一个(空).sbt文件夹添加到包含.ensime项目描述的文件夹中。

相关内容

  • 没有找到相关文章

最新更新