LoginSignup
0
0

More than 1 year has passed since last update.

Spacemacsのmetalsで1度間違えるとsbtサブプロジェクトを永遠に紐付けなくなるのを直す

Posted at

それって

sbtのマルチプロジェクトを使っていて、

. topOkimochi/ <- ここで全てのサブプロジェクトをまとめている
├ nandemo/ <- サブプロジェクト: 共通で使うやつはなんでもぶち込んでやるぜ~
├ okimochiApi/ <- サブプロジェクト: nandemoを使う
└ okimochiLogic/ <- サブプロジェクト: okimochiApiを使う
  • ふつうに使ってれば okimochiLogicのscalaファイルを開いた時metalsによるビルドが始まって okiomchiApinandemoへの定義ジャンプとかが効くようになる
  • たまに okimochiLogicのファイルを開いた時にmetalsから "New sbt workspace detected"みたいなことを言われて詰む
    • うっかり build importすると okimochiLogictopOkimochiと無関係の独立したプロジェクトのように扱われてしまう
    • 無関係扱いなので okimochiApinandemoへの定義ジャンプは当然できず、むしろ存在しないモジュールとしてエラーが出ている
    • Spacemacsを閉じて .bloop/, .metals/, project/を削除して何度繰り返しても世界線は収束する (過ちが記録されているのだろうか)

こうする

  • ~/.emacs.d/.cache/lsp/.lsp-session-v1を開いて、 okimochiLogicの記録を消す
    • "/home/okimochi/develop/top-okimochi/okimochi-logic"みたいなのがあると思う
  • Spacemacsを落とす
  • ~/.emacs.d/.lsp-session-v1に同じ記録があったらそれも消す
  • okimochiLogic/から .bloop/, .metals/, project/を消す
    • 「待ってくれprojectは要るんだ!」なら project/metals.sbtproject/project/を消せばいいかも
  • Spacemacsを再び起動する
  • まず topOkimochiのファイルを開いてmetalsにビルドさせる
  • そして okimochiLogicのファイルを開いてmetalsにビルドさせる

たぶんnew sbt projectとか言われず紐付いてくれる

べつに

  • SpacemacsだからとかではなくEmacsならそうかも
  • キャッシュが切れる頃にはふつうに直ってるのかも (なお待つ時間はない模様)
  • 1回目にnew sbt project扱いされる原因は結局特定してない
  • 直せなかったらごめんて
0
0
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
0