mirror of https://github.com/dense-analysis/ale
Adding support for Odin language server (ols). (#4679)
This commit is contained in:
parent
38c31302da
commit
8b8ddea6e5
|
@ -0,0 +1,19 @@
|
|||
" Author: Benjamin Block <https://github.com/benjamindblock>
|
||||
" Description: A language server for Odin.
|
||||
|
||||
function! ale_linters#odin#ols#GetProjectRoot(buffer) abort
|
||||
return fnamemodify('', ':h')
|
||||
endfunction
|
||||
|
||||
call ale#Set('odin_ols_executable', 'ols')
|
||||
call ale#Set('odin_ols_config', {})
|
||||
|
||||
call ale#linter#Define('odin', {
|
||||
\ 'name': 'ols',
|
||||
\ 'lsp': 'stdio',
|
||||
\ 'language': 'odin',
|
||||
\ 'lsp_config': {b -> ale#Var(b, 'odin_ols_config')},
|
||||
\ 'executable': {b -> ale#Var(b, 'odin_ols_executable')},
|
||||
\ 'command': '%e',
|
||||
\ 'project_root': function('ale_linters#odin#ols#GetProjectRoot'),
|
||||
\})
|
|
@ -0,0 +1,29 @@
|
|||
===============================================================================
|
||||
ALE Odin Integration *ale-odin-options*
|
||||
*ale-integration-odin*
|
||||
|
||||
===============================================================================
|
||||
Integration Information
|
||||
|
||||
Currently, the only supported linter for Odin is ols.
|
||||
|
||||
===============================================================================
|
||||
ols *ale-odin-ols*
|
||||
|
||||
g:ale_odin_ols_executable *g:ale_odin_ols_executable*
|
||||
*b:ale_odin_ols_executable*
|
||||
Type: |String|
|
||||
Default: `'ols'`
|
||||
|
||||
This variable can be modified to change the executable path for `ols`.
|
||||
|
||||
|
||||
g:ale_odin_ols_config *g:ale_odin_ols_config*
|
||||
*b:ale_odin_ols_config*
|
||||
Type: |Dictionary|
|
||||
Default: `{}`
|
||||
|
||||
Dictionary with configuration settings for ols.
|
||||
|
||||
===============================================================================
|
||||
vim:tw=78:ts=2:sts=2:sw=2:ft=help:norl:
|
|
@ -422,6 +422,8 @@ Notes:
|
|||
* `ocamllsp`
|
||||
* `ocp-indent`
|
||||
* `ols`
|
||||
* Odin
|
||||
* `ols`
|
||||
* OpenApi
|
||||
* `ibm_validator`
|
||||
* `prettier`
|
||||
|
|
|
@ -3224,6 +3224,8 @@ documented in additional help files.
|
|||
ols...................................|ale-ocaml-ols|
|
||||
ocamlformat...........................|ale-ocaml-ocamlformat|
|
||||
ocp-indent............................|ale-ocaml-ocp-indent|
|
||||
odin....................................|ale-odin-options|
|
||||
ols...................................|ale-odin-ols|
|
||||
openapi.................................|ale-openapi-options|
|
||||
ibm_validator.........................|ale-openapi-ibm-validator|
|
||||
prettier..............................|ale-openapi-prettier|
|
||||
|
|
|
@ -431,6 +431,8 @@ formatting.
|
|||
* [ocamllsp](https://github.com/ocaml/ocaml-lsp)
|
||||
* [ocp-indent](https://github.com/OCamlPro/ocp-indent)
|
||||
* [ols](https://github.com/freebroccolo/ocaml-language-server)
|
||||
* Odin
|
||||
* [ols](https://github.com/DanielGavin/ols)
|
||||
* OpenApi
|
||||
* [ibm_validator](https://github.com/IBM/openapi-validator)
|
||||
* [prettier](https://github.com/prettier/prettier)
|
||||
|
|
|
@ -0,0 +1,16 @@
|
|||
Before:
|
||||
call ale#assert#SetUpLinterTest('odin', 'ols')
|
||||
|
||||
After:
|
||||
call ale#assert#TearDownLinterTest()
|
||||
|
||||
Execute(The default executable path should be correct):
|
||||
AssertLinter 'ols', ale#Escape('ols')
|
||||
|
||||
Execute(The LSP values should be set correctly):
|
||||
call ale#test#SetFilename('../test-files/odin/main.odin')
|
||||
|
||||
AssertLSPLanguage 'odin'
|
||||
AssertLSPOptions {}
|
||||
AssertLSPConfig {}
|
||||
AssertLSPProject '.'
|
Loading…
Reference in New Issue