diff --git a/vim/merlin/autoload/neomake/makers/ft/ocamlinterface.vim b/vim/merlin/autoload/neomake/makers/ft/ocamlinterface.vim new file mode 100644 index 0000000000..61772ca8da --- /dev/null +++ b/vim/merlin/autoload/neomake/makers/ft/ocamlinterface.vim @@ -0,0 +1,11 @@ +function! neomake#makers#ft#ocamlinterface#EnabledMakers() abort + return ['merlin'] +endfunction + +function! neomake#makers#ft#ocamlinterface#merlin() abort + let maker = {} + function! maker.get_list_entries(jobinfo) + return merlin#ErrorLocList() + endfunction + return maker +endfunction diff --git a/vim/merlin/autoload/neomake/makers/ft/ocamllex.vim b/vim/merlin/autoload/neomake/makers/ft/ocamllex.vim new file mode 100644 index 0000000000..9e6e96bc5e --- /dev/null +++ b/vim/merlin/autoload/neomake/makers/ft/ocamllex.vim @@ -0,0 +1,11 @@ +function! neomake#makers#ft#ocamllex#EnabledMakers() abort + return ['merlin'] +endfunction + +function! neomake#makers#ft#ocamllex#merlin() abort + let maker = {} + function! maker.get_list_entries(jobinfo) + return merlin#ErrorLocList() + endfunction + return maker +endfunction diff --git a/vim/merlin/dune b/vim/merlin/dune index 40c3348604..e9c55d1788 100644 --- a/vim/merlin/dune +++ b/vim/merlin/dune @@ -13,9 +13,12 @@ (ftdetect/merlin.vim as vim/ftdetect/merlin.vim) (ftplugin/merlin.vim as vim/ftplugin/merlin.vim) (ftplugin/ocaml.vim as vim/ftplugin/ocaml.vim) + (ftplugin/ocamlinterface.vim as vim/ftplugin/ocamlinterface.vim) + (ftplugin/ocamllex.vim as vim/ftplugin/ocamllex.vim) (ftplugin/omlet.vim as vim/ftplugin/omlet.vim) (ftplugin/reason.vim as vim/ftplugin/reason.vim) (plugin/merlin.vim as vim/plugin/merlin.vim) (syntax_checkers/ocaml/merlin.vim as vim/syntax_checkers/ocaml/merlin.vim) + (syntax_checkers/ocamlinterface/merlin.vim as vim/syntax_checkers/ocamlinterface/merlin.vim) (syntax_checkers/omlet/merlin.vim as vim/syntax_checkers/omlet/merlin.vim) (syntax/merlin.vim as vim/syntax/merlin.vim))) diff --git a/vim/merlin/ftplugin/menhir.vim b/vim/merlin/ftplugin/menhir.vim new file mode 100644 index 0000000000..2e33e14808 --- /dev/null +++ b/vim/merlin/ftplugin/menhir.vim @@ -0,0 +1,2 @@ +" Activate merlin on current buffer +call merlin#Register() diff --git a/vim/merlin/ftplugin/ocamlinterface.vim b/vim/merlin/ftplugin/ocamlinterface.vim new file mode 100644 index 0000000000..2e33e14808 --- /dev/null +++ b/vim/merlin/ftplugin/ocamlinterface.vim @@ -0,0 +1,2 @@ +" Activate merlin on current buffer +call merlin#Register() diff --git a/vim/merlin/ftplugin/ocamllex.vim b/vim/merlin/ftplugin/ocamllex.vim new file mode 100644 index 0000000000..2e33e14808 --- /dev/null +++ b/vim/merlin/ftplugin/ocamllex.vim @@ -0,0 +1,2 @@ +" Activate merlin on current buffer +call merlin#Register() diff --git a/vim/merlin/syntax_checkers/ocamlinterface/merlin.vim b/vim/merlin/syntax_checkers/ocamlinterface/merlin.vim new file mode 100644 index 0000000000..e5702ac482 --- /dev/null +++ b/vim/merlin/syntax_checkers/ocamlinterface/merlin.vim @@ -0,0 +1,23 @@ +" Enable Syntastic support +" Make sure syntax_checkers directory is on runtime path, then set +" :let g:syntastic_ocamlinterface_checkers=['merlin'] + +function! SyntaxCheckers_ocamlinterface_merlin_IsAvailable() + if !exists("*merlin#SelectBinary") + return 0 + endif + try + let l:path = merlin#SelectBinary() + return executable(l:path) + catch + return 0 + endtry +endfunction + +function! SyntaxCheckers_ocamlinterface_merlin_GetLocList() + return merlin#ErrorLocList() +endfunction + +call g:SyntasticRegistry.CreateAndRegisterChecker({ + \ 'filetype': 'ocamlinterface', + \ 'name': 'merlin'})