Как перейти к определению функции в.ml (не.mli) в emacs merlin-mode

Когда я нажимаю M-. или же C-c C-l обычно он переходит к объявлению функции в файле .mli. Часто есть связанный файл .ml, к которому я могу переключиться C-c C-a но тогда мне придется искать реализацию этой функции в нем вручную.

Если есть простой способ перейти непосредственно к определению в файле .ml или как-то позиционировать его в соответствующем месте функции при переключении между .mli и .ml?

1 ответ

Решение

Это регулируется merlin-locate-preference переменная, в документации которой говорится:

Определите, должен ли locate в приоритетном порядке выглядеть в файлах ml или mli.

Таким образом, вы перейдете к реализации, если она доступна, когда переменная будет установлена ​​в 'ml:

(setq merlin-locate-preference 'ml)

Интересно, что по умолчанию 'ml так что либо вы перезаписали его, либо мерлин перешел на mli, потому что он не может найти определение. Если вы хотите перейти к определению в другом проекте, то добавьте соответствующий S а также B пункты к вашему .merlin файл.

Другие вопросы по тегам