summaryrefslogtreecommitdiff
path: root/ale_linters/ocamlinterface
diff options
context:
space:
mode:
Diffstat (limited to 'ale_linters/ocamlinterface')
-rw-r--r--ale_linters/ocamlinterface/merlin.vim17
-rw-r--r--ale_linters/ocamlinterface/ocamllsp.vim13
2 files changed, 30 insertions, 0 deletions
diff --git a/ale_linters/ocamlinterface/merlin.vim b/ale_linters/ocamlinterface/merlin.vim
new file mode 100644
index 00000000..799490f7
--- /dev/null
+++ b/ale_linters/ocamlinterface/merlin.vim
@@ -0,0 +1,17 @@
+" Author: Andrey Popp -- @andreypopp
+" Description: Report errors in OCaml code with Merlin
+
+if !exists('g:merlin')
+ finish
+endif
+
+function! ale_linters#ocamlinterface#merlin#Handle(buffer, lines) abort
+ return merlin#ErrorLocList()
+endfunction
+
+call ale#linter#Define('ocamlinterface', {
+\ 'name': 'merlin',
+\ 'executable': 'ocamlmerlin',
+\ 'command': 'true',
+\ 'callback': 'ale_linters#ocamlinterface#merlin#Handle',
+\})
diff --git a/ale_linters/ocamlinterface/ocamllsp.vim b/ale_linters/ocamlinterface/ocamllsp.vim
new file mode 100644
index 00000000..cd4bea80
--- /dev/null
+++ b/ale_linters/ocamlinterface/ocamllsp.vim
@@ -0,0 +1,13 @@
+" Author: Risto Stevcev <me@risto.codes>
+" Description: The official language server for OCaml
+
+call ale#Set('ocaml_ocamllsp_use_opam', 1)
+
+call ale#linter#Define('ocamlinterface', {
+\ 'name': 'ocamllsp',
+\ 'lsp': 'stdio',
+\ 'executable': function('ale#handlers#ocamllsp#GetExecutable'),
+\ 'command': function('ale#handlers#ocamllsp#GetCommand'),
+\ 'language': function('ale#handlers#ocamllsp#GetLanguage'),
+\ 'project_root': function('ale#handlers#ocamllsp#GetProjectRoot'),
+\})