mirror of
https://github.com/dense-analysis/ale.git
synced 2026-01-09 13:02:28 +08:00
Support an 'stdio' type for linter defintions, and require a command for LSP connections via programs
This commit is contained in:
@@ -370,6 +370,7 @@ Execute(PreProcess should accept tsserver LSP configuration):
|
||||
let g:linter = {
|
||||
\ 'name': 'x',
|
||||
\ 'executable': 'x',
|
||||
\ 'command': 'x',
|
||||
\ 'lsp': 'tsserver',
|
||||
\ 'callback': 'x',
|
||||
\}
|
||||
@@ -379,46 +380,48 @@ Execute(PreProcess should accept tsserver LSP configuration):
|
||||
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 ale#linter#PreProcess(g:linter)
|
||||
|
||||
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 ale#linter#PreProcess(g:linter)
|
||||
|
||||
call remove(g:linter, 'command_callback')
|
||||
let g:linter.command_chain = []
|
||||
Execute(PreProcess should accept stdio LSP configuration):
|
||||
let g:linter = {
|
||||
\ 'name': 'x',
|
||||
\ 'executable': 'x',
|
||||
\ 'command': 'x',
|
||||
\ 'lsp': 'stdio',
|
||||
\ '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
|
||||
AssertEqual 'stdio', ale#linter#PreProcess(g:linter).lsp
|
||||
|
||||
call remove(g:linter, 'executable')
|
||||
let g:linter.executable_callback = 'X'
|
||||
|
||||
call ale#linter#PreProcess(g:linter)
|
||||
|
||||
call remove(g:linter, 'command')
|
||||
let g:linter.command_callback = 'X'
|
||||
|
||||
call ale#linter#PreProcess(g:linter)
|
||||
|
||||
Execute(PreProcess should accept LSP server configurations):
|
||||
let g:linter = {
|
||||
\ 'name': 'x',
|
||||
\ 'lsp': 'lsp',
|
||||
\ 'lsp': 'socket',
|
||||
\ 'callback': 'x',
|
||||
\ 'address_callback': 'X',
|
||||
\}
|
||||
|
||||
AssertEqual 'lsp', ale#linter#PreProcess(g:linter).lsp
|
||||
AssertEqual 'socket', ale#linter#PreProcess(g:linter).lsp
|
||||
|
||||
Execute(PreProcess should require an address_callback for LSP server configurations):
|
||||
Execute(PreProcess should require an address_callback for LSP socket configurations):
|
||||
let g:linter = {
|
||||
\ 'name': 'x',
|
||||
\ 'lsp': 'lsp',
|
||||
\ 'lsp': 'socket',
|
||||
\ 'callback': 'x',
|
||||
\}
|
||||
|
||||
@@ -435,4 +438,4 @@ Execute(PreProcess should complain about address_callback for non-LSP linters):
|
||||
\}
|
||||
|
||||
AssertThrows call ale#linter#PreProcess(g:linter)
|
||||
AssertEqual '`address_callback` cannot be used when lsp != ''lsp''', g:vader_exception
|
||||
AssertEqual '`address_callback` cannot be used when lsp != ''socket''', g:vader_exception
|
||||
|
||||
Reference in New Issue
Block a user