2014年1月26日日曜日

[OCaml][Emacs]merlin での モジュール指定

Emacs + tuareg + merlin の開発環境で、複数モジュールからなるOCamlのプロジェクトで、Unbound module 〜 エラーが発生し、モジュールを参照するコード部分がエラーと判定されて、赤くなってしまった。
外部モジュールを認識しない場合、M-x merlin-use でモジュール名を指定すれば、認識するようになるが、プロジェクトに含まれるモジュールの場合は、.merlinファイルで、モジュールの場所を指定する。
これに対処するには、以下の内容の.merlinファイルをプロジェクトディレクトリに作成する。

以下は .merlinファイルの例

B _build
PKG core


B で モジュールのcmiファイルがあるディレクトリを指定する。
PKG で 使用する外部モジュールを指定する。

なお、インストールされている外部モジュールの名称は、以下のコマンドで確認できる。
$ ocamlfind list

参考