MetaOCaml を触ってみようと思い開発環境をセットアップしようとしたところハマったのでとりあえず雑にメモ。時間があったら手直しますが期待しないでください。
基本的には2019年のこちらの記事に従えばOK: [OCaml] MetaOCaml で IDE (Merlin) を使う方法と簡単な紹介
2019年と今で違う点
- 今は Merlin ではなく ocaml-lsp を使うのが主流になっているらしい。ocaml-lsp は内部的には Merlin を使っているのであまり大きな違いはない
- よってインストールするべきパッケージは以下のようになる
opam install ocaml-lsp-server dot-merlin-reader
-
dot-merlin-reader
は後述の理由で必要
-
- 元記事では
.merlin
ファイルに設定を記述しているが、ocaml-lsp はデフォルトでは.merlin
を読まない設定になっているのでそのままで動かない。ocaml-lsp
の起動オプションに--fallback-read-dot-merlin
を付けることで.merlin
を読ませることができる(dot-merlin-readerはこのために必要)- 起動オプションの変更はEmacsだったら
(setq lsp-ocaml-lsp-server-command '("ocamllsp" "--fallback-read-dot-merlin"))
などで変更できる。
- 起動オプションの変更はEmacsだったら
わざわざMetaOCamlを触ろうという人だったらここまで書いたら後は自力でなんとかなると思います。がんばってください!
(追記) ocamlfmt は MetaOCaml をサポートしていないらしいです。諦めてください → https://github.com/ocaml-ppx/ocamlformat/issues/1211