From d5e6399ad0c41cd18750ad629f72d38429f63fe1 Mon Sep 17 00:00:00 2001 From: Pau Ruiz Safont Date: Sun, 16 May 2021 18:00:10 +0100 Subject: [PATCH] Split the ocaml filetype into several filetypes Now ocamlinterface ocamllex and menhir types must be taken into account as well. The filetypes are introduced by https://github.com/ocaml/vim-ocaml/pull/61 --- vim/merlin/dune | 6 +++++ vim/merlin/ftplugin/menhir.vim | 2 ++ vim/merlin/ftplugin/ocamlinterface.vim | 2 ++ vim/merlin/ftplugin/ocamllex.vim | 2 ++ vim/merlin/syntax_checkers/menhir/merlin.vim | 23 ++++++++++++++++ .../syntax_checkers/ocamlinterface/merlin.vim | 23 ++++++++++++++++ .../syntax_checkers/ocamllex/merlin.vim | 26 +++++++++++++++++++ 7 files changed, 84 insertions(+) create mode 100644 vim/merlin/ftplugin/menhir.vim create mode 100644 vim/merlin/ftplugin/ocamlinterface.vim create mode 100644 vim/merlin/ftplugin/ocamllex.vim create mode 100644 vim/merlin/syntax_checkers/menhir/merlin.vim create mode 100644 vim/merlin/syntax_checkers/ocamlinterface/merlin.vim create mode 100644 vim/merlin/syntax_checkers/ocamllex/merlin.vim diff --git a/vim/merlin/dune b/vim/merlin/dune index 40c3348604..cc482a4435 100644 --- a/vim/merlin/dune +++ b/vim/merlin/dune @@ -11,11 +11,17 @@ (autoload/merlin_visual.vim as vim/autoload/merlin_visual.vim) (doc/merlin.txt as vim/doc/merlin.txt) (ftdetect/merlin.vim as vim/ftdetect/merlin.vim) + (ftplugin/menhir.vim as vim/ftplugin/menhir.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/menhir/merlin.vim as vim/syntax_checkers/menhir/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/ocamllex/merlin.vim as vim/syntax_checkers/ocamllex/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/menhir/merlin.vim b/vim/merlin/syntax_checkers/menhir/merlin.vim new file mode 100644 index 0000000000..d499ffd888 --- /dev/null +++ b/vim/merlin/syntax_checkers/menhir/merlin.vim @@ -0,0 +1,23 @@ +" Enable Syntastic support +" Make sure syntax_checkers directory is on runtime path, then set +" :let g:syntastic_ocaml_checkers=['merlin'] + +function! SyntaxCheckers_ocaml_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_ocaml_merlin_GetLocList() + return merlin#ErrorLocList() +endfunction + +call g:SyntasticRegistry.CreateAndRegisterChecker({ + \ 'filetype': 'menhir', + \ 'name': 'merlin'}) diff --git a/vim/merlin/syntax_checkers/ocamlinterface/merlin.vim b/vim/merlin/syntax_checkers/ocamlinterface/merlin.vim new file mode 100644 index 0000000000..764b51f828 --- /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_ocaml_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'}) diff --git a/vim/merlin/syntax_checkers/ocamllex/merlin.vim b/vim/merlin/syntax_checkers/ocamllex/merlin.vim new file mode 100644 index 0000000000..c9f101ace8 --- /dev/null +++ b/vim/merlin/syntax_checkers/ocamllex/merlin.vim @@ -0,0 +1,26 @@ +" Enable Syntastic support +" Make sure syntax_checkers directory is on runtime path, then set +" :let g:syntastic_ocaml_checkers=['merlin'] + +function! SyntaxCheckers_ocaml_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_ocaml_merlin_GetLocList() + return merlin#ErrorLocList() +endfunction + +call g:SyntasticRegistry.CreateAndRegisterChecker({ + \ 'filetype': 'ocamllex', + \ 'name': 'merlin'}) +call g:SyntasticRegistry.CreateAndRegisterChecker({ + \ 'filetype': 'menhir', + \ 'name': 'merlin'})