mirror of
https://github.com/dense-analysis/ale.git
synced 2026-01-09 21:12:31 +08:00
Merge pull request #2035 from jparise/lsp_config_callback
Add a `lsp_config_callback` linter option
This commit is contained in:
@@ -26,4 +26,5 @@ Execute(should set correct LSP values):
|
||||
|
||||
AssertLSPLanguage 'elixir'
|
||||
AssertLSPOptions {}
|
||||
AssertLSPConfig {}
|
||||
AssertLSPProject ale#path#Simplify(g:dir . '/mix_paths/wrapped_project')
|
||||
|
||||
@@ -56,7 +56,7 @@ Execute(should set go-langserver for go app1):
|
||||
call ale#test#SetFilename('go_paths/go1/prj1/file.go')
|
||||
|
||||
AssertLSPLanguage 'go'
|
||||
AssertLSPOptions {}
|
||||
AssertLSPConfig {}
|
||||
AssertLSPProject ale#path#Simplify(g:dir . '/go_paths/go1')
|
||||
|
||||
Execute(should set go-langserver for go app2):
|
||||
@@ -64,4 +64,5 @@ Execute(should set go-langserver for go app2):
|
||||
|
||||
AssertLSPLanguage 'go'
|
||||
AssertLSPOptions {}
|
||||
AssertLSPConfig {}
|
||||
AssertLSPProject ale#path#Simplify(g:dir . '/go_paths/go2')
|
||||
|
||||
@@ -9,11 +9,13 @@ Execute(should set sbtserver for sbt project with build.sbt):
|
||||
call ale#test#SetFilename('../scala_fixtures/valid_sbt_project/Main.scala')
|
||||
AssertLSPLanguage 'scala'
|
||||
AssertLSPOptions {}
|
||||
AssertLSPConfig {}
|
||||
AssertLSPProject ale#path#Simplify(g:dir . 'command_callback/../scala_fixtures/valid_sbt_project')
|
||||
AssertLSPAddress '127.0.0.1:4273'
|
||||
Execute(should not set sbtserver for sbt project without build.sbt):
|
||||
call ale#test#SetFilename('../scala_fixtures/invalid_sbt_project/Main.scala')
|
||||
AssertLSPLanguage 'scala'
|
||||
AssertLSPOptions {}
|
||||
AssertLSPConfig {}
|
||||
AssertLSPProject ''
|
||||
AssertLSPAddress '127.0.0.1:4273'
|
||||
|
||||
@@ -7,6 +7,7 @@ Before:
|
||||
\ 'initialized': 0,
|
||||
\ 'init_request_id': 0,
|
||||
\ 'init_options': {},
|
||||
\ 'config': {},
|
||||
\ 'callback_list': [],
|
||||
\ 'message_queue': [],
|
||||
\ 'capabilities_queue': [],
|
||||
|
||||
17
test/lsp/test_update_config.vader
Normal file
17
test/lsp/test_update_config.vader
Normal file
@@ -0,0 +1,17 @@
|
||||
Before:
|
||||
runtime autoload/ale/lsp.vim
|
||||
|
||||
let g:conn_id = ale#lsp#Register('executable', '/foo/bar', {})
|
||||
|
||||
After:
|
||||
Restore
|
||||
|
||||
unlet! g:conn_id
|
||||
|
||||
runtime autoload/ale/lsp.vim
|
||||
|
||||
Execute(Only send updates when the configuration dictionary changes):
|
||||
AssertEqual 0, ale#lsp#UpdateConfig(g:conn_id, bufnr(''), {})
|
||||
AssertEqual 1, ale#lsp#UpdateConfig(g:conn_id, bufnr(''), {'a': 1})
|
||||
AssertEqual 0, ale#lsp#UpdateConfig(g:conn_id, bufnr(''), {'a': 1})
|
||||
AssertEqual 1, ale#lsp#UpdateConfig(g:conn_id, bufnr(''), {})
|
||||
@@ -501,6 +501,31 @@ Execute(PreProcess should throw when initialization_options_callback is not a ca
|
||||
\})
|
||||
AssertEqual '`initialization_options_callback` must be a callback if defined', g:vader_exception
|
||||
|
||||
Execute(PreProcess should complain about using lsp_config and lsp_config_callback together):
|
||||
let g:linter = {
|
||||
\ 'name': 'x',
|
||||
\ 'lsp': 'socket',
|
||||
\ 'address_callback': 'X',
|
||||
\ 'language': 'x',
|
||||
\ 'project_root_callback': 'x',
|
||||
\ 'lsp_config': 'x',
|
||||
\ 'lsp_config_callback': 'x',
|
||||
\}
|
||||
|
||||
AssertThrows call ale#linter#PreProcess('testft', g:linter)
|
||||
AssertEqual 'Only one of `lsp_config` or `lsp_config_callback` should be set', g:vader_exception
|
||||
|
||||
Execute(PreProcess should throw when lsp_config_callback is not a callback):
|
||||
AssertThrows call ale#linter#PreProcess('testft', {
|
||||
\ 'name': 'foo',
|
||||
\ 'lsp': 'socket',
|
||||
\ 'address_callback': 'X',
|
||||
\ 'language': 'x',
|
||||
\ 'project_root_callback': 'x',
|
||||
\ 'lsp_config_callback': {},
|
||||
\})
|
||||
AssertEqual '`lsp_config_callback` must be a callback if defined', g:vader_exception
|
||||
|
||||
Execute(PreProcess should accept LSP configuration options via lsp_config):
|
||||
let g:ale_lsp_configuration = {
|
||||
\ 'foo': 'bar'
|
||||
@@ -517,7 +542,6 @@ Execute(PreProcess should accept LSP configuration options via lsp_config):
|
||||
|
||||
AssertEqual {'foo': 'bar'}, ale#linter#PreProcess('testft', g:linter).lsp_config
|
||||
|
||||
|
||||
Execute(PreProcess should throw when lsp_config is not a Dictionary):
|
||||
AssertThrows call ale#linter#PreProcess('testft', {
|
||||
\ 'name': 'foo',
|
||||
@@ -528,4 +552,3 @@ Execute(PreProcess should throw when lsp_config is not a Dictionary):
|
||||
\ 'lsp_config': 'x',
|
||||
\})
|
||||
AssertEqual '`lsp_config` must be a Dictionary', g:vader_exception
|
||||
|
||||
|
||||
Reference in New Issue
Block a user