merilnの補完パッケージ初期化スクリプト
merilnは便利だがプロジェクト毎に一々書くのもだるい。 そう思って前に調べたら調度良いタイミングでそういうスクリプトを書いてくれている人が居た。
このgistのスクリプトはopam内のパッケージ全てを入れてしまうので、コメントにて他の方が手を加えてくれた指定版を用いると良い。 埋もれてしまうには勿体無いので、分散としてここでも言及しておく。
#!/bin/sh # Add PKG's: ocamlfind list \ | awk '{ print "PKG "$1 }' # See https://github.com/the-lambda-church/merlin/wiki/Letting-merlin-locate-go-to-stuff-in-.opam find ~/.opam -name '*.cmt' -print0 \ | xargs -0 -I{} dirname '{}' \ | sort -u \ | awk '{ print "S "$0"\nB "$0 }' # e.g.) merlin-init.sh | grep batteries > .merlin
私の環境では以下のようになる。
PKG batteries S /Users/nnwww/.opam/4.02.3/build/batteries.2.4.0/_build B /Users/nnwww/.opam/4.02.3/build/batteries.2.4.0/_build S /Users/nnwww/.opam/4.02.3/build/batteries.2.4.0/_build/build B /Users/nnwww/.opam/4.02.3/build/batteries.2.4.0/_build/build S /Users/nnwww/.opam/4.02.3/build/batteries.2.4.0/_build/src B /Users/nnwww/.opam/4.02.3/build/batteries.2.4.0/_build/src
単純な方法なのでこれでcoreを指定するとppx_core等も対象に入れてしまうが、実用には十分だろう。