3

私は Ubuntu 12.04 で Scala 2.9.2 とensime_2.9.2-RC1-0.9.3.RC4.

基本的にはhttps://groups.google.com/forum/?hl=en&fromgroups#!topic/ensime/HvvvFr5gSwgで説明されているのと同じことをしました

  • sbt を使用して .ensime ファイルを生成しますensime generate
  • で Emacs の ENSIME を起動しM-x ensimeます。
  • すべてのライブラリなどを正しく解析します (オートコンプリートが正しく動作するなど)。

ただし、を使用して Emacs 内で SBT コンソールを起動しようとするとC-c C-v s、次のエラーが表示されます。

[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

明らかに、ENIME はプロジェクト定義の間違ったディレクトリを参照しています。私のプロジェクトディレクトリを見る代わりに、実際に見てい~/.sbtます。これに対する解決策はありますか?

4

1 に答える 1

2

同じ問題があります。私はエンシムを始めたばかりなので、なぜこれが当てはまるのかよくわかりません。また、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 は上記の関数を使用して、Cc Cv s を押したバッファーの上のフォルダーを検索し、ルート プロジェクト フォルダーを決定します。そのため、簡単な修正は、(空の) .sbtフォルダーを .ensime プロジェクトの説明を含むフォルダーに追加することです。

于 2012-11-15T21:32:06.650 に答える