#517 Support linter settings needed for LSP, undocumented for now

This commit is contained in:
w0rp
2017-06-08 13:52:29 +01:00
parent d8d96fb0eb
commit 04190cbcfe
3 changed files with 117 additions and 5 deletions

View File

@@ -365,3 +365,74 @@ Execute(PreProcess should accept `aliases` lists):
let g:linter.aliases = ['foo', 'bar']
AssertEqual ['foo', 'bar'], ale#linter#PreProcess(g:linter).aliases
Execute(PreProcess should accept tsserver LSP configuration):
let g:linter = {
\ 'name': 'x',
\ 'executable': 'x',
\ 'lsp': 'tsserver',
\ 'callback': 'x',
\}
AssertEqual 'tsserver', ale#linter#PreProcess(g:linter).lsp
call remove(g:linter, 'executable')
let g:linter.executable_callback = 'X'
call ale#linter#PreProcess(g:linter).lsp
Execute(PreProcess should complain about commands being set for LSP configurations):
let g:linter = {
\ 'name': 'x',
\ 'executable': 'x',
\ 'lsp': 'tsserver',
\ 'command': 'x',
\ 'callback': 'x',
\}
AssertThrows call ale#linter#PreProcess(g:linter)
AssertEqual '`command` and `command_callback` and `command_chain` cannot be used when `lsp` is set', g:vader_exception
call remove(g:linter, 'command')
let g:linter.command_callback = 'X'
AssertThrows call ale#linter#PreProcess(g:linter)
AssertEqual '`command` and `command_callback` and `command_chain` cannot be used when `lsp` is set', g:vader_exception
call remove(g:linter, 'command_callback')
let g:linter.command_chain = []
AssertThrows call ale#linter#PreProcess(g:linter)
AssertEqual '`command` and `command_callback` and `command_chain` cannot be used when `lsp` is set', g:vader_exception
Execute(PreProcess should accept LSP server configurations):
let g:linter = {
\ 'name': 'x',
\ 'lsp': 'lsp',
\ 'callback': 'x',
\ 'address_callback': 'X',
\}
AssertEqual 'lsp', ale#linter#PreProcess(g:linter).lsp
Execute(PreProcess should require an address_callback for LSP server configurations):
let g:linter = {
\ 'name': 'x',
\ 'lsp': 'lsp',
\ 'callback': 'x',
\}
AssertThrows call ale#linter#PreProcess(g:linter)
AssertEqual '`address_callback` must be defined for getting the LSP address', g:vader_exception
Execute(PreProcess should complain about address_callback for non-LSP linters):
let g:linter = {
\ 'name': 'x',
\ 'callback': 'SomeFunction',
\ 'executable': 'echo',
\ 'command': 'echo',
\ 'address_callback': 'X',
\}
AssertThrows call ale#linter#PreProcess(g:linter)
AssertEqual '`address_callback` cannot be used when lsp != ''lsp''', g:vader_exception