summaryrefslogtreecommitdiff
path: root/ale_linters
diff options
context:
space:
mode:
authorPau Ruiz Safont <unduthegun@gmail.com>2021-05-27 08:33:43 +0100
committerGitHub <noreply@github.com>2021-05-27 16:33:43 +0900
commita02a4f2811f810877f3c3859cca963f9578ff94a (patch)
tree2cf796d557bb86fdaa9bb0a01ee8e897ffed9516 /ale_linters
parentf53431331e2e2030a84de081baec93aad1e62363 (diff)
downloadale-a02a4f2811f810877f3c3859cca963f9578ff94a.zip
ocaml: prepare for filetype separation (#3732)
The ocaml filetype is currently used for several, different file formats. This causes problems as not all tools support all formats. New filetypes are introduced to support this separation, this needs some changes in ale that are fortunately backwards-compatible. These change add ocamlinterface file support for ocp-indent, merlin, ocamlformat and ocaml-lsp. For ocaml-lsp I took the liberty to add all recognised language ids, even if they are not supported. ols has not been changed as the project has been abandoned since 2019.
Diffstat (limited to 'ale_linters')
-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'),
+\})