0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Windows10上のSpacemacsでScalaの補完や定義ジャンプを効かせる (Ensime)

Last updated at Posted at 2019-12-21

基本的には 公式のdevelopブランチのドキュメントに従う感じで。

SpacemacsのScala設定

scala-backendとして Ensimeを使う。Spacemacsでensimeをダウンロードし、Scala Layerでensimeを指定する。

.spacemacs(抜粋)
dotspacemacs-configuration-layers
'(sql
  markdown
  ;; 上のsqlやmarkdownみたいな感じで以下を追記
  (scala :variables
         scala-backend 'scala-ensime
         scala-auto-start-backend t)
 )

(defun dotspacemacs/user-init ()
  ;; melpaからのインストールはstable (安定版)を指定
  (add-to-list 'configuration-layer-elpa-archives '("melpa-stable" . "stable.melpa.org/packages/"))

  ;; Scala backend
  (add-to-list 'package-pinned-packages '(ensime . "melpa-stable"))
)

sbtインストール

(JDK8以上が必要だが、その案内もリンク先に書かれている)

Ensimeの準備

  • ユーザディレクトリ直下にあるはずの .sbtディレクトリから辿って、 ~/.sbt/1.0/plugins/plugins.sbtとなるように plugins.sbtを作る
  • plugins.sbtには addSbtPlugin("org.ensime" % "sbt-ensime" % "2.5.1")を書いとく
  • sbtを起動して ensimeConfigコマンドを打つ

.classファイルの取得?

設定しただけでは、他プロジェクトのパッケージをimportできないらしい。 object xxx is not a member of packageみたいなエラーが出る。

どうも .classファイルを作ると良いらしい?ターミナルを立ち上げ、プロジェクト直下で sbt test:compileすると解決した。
https://github.com/ensime/ensime-emacs/issues/236#issuecomment-138700317

定義ジャンプが一部壊れているっぽい

こちらで議論されているように、直接ジャンプできない部分がある。
https://github.com/syl20bnr/spacemacs/issues/7144

具体的には 関数が定義されたファイルをSpacemacsで開いていない場合。というのは議論にもコメントされていた

Spacemacsで開く、というのは、つまりバッファとして存在するという意味 ( Space b bでバッファ一覧に存在する状態)

ちなみに、定義したファイルを開いていない状態でも、参照元から 関数ではなく その関数が定義されているオブジェクト自体に定義ジャンプすることはできる模様?

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?