|
|
|
@ -5,11 +5,11 @@ After:
|
|
|
|
|
unlet g:linter
|
|
|
|
|
|
|
|
|
|
Execute (PreProcess should throw when the linter object is not a Dictionary):
|
|
|
|
|
AssertThrows call ale#linter#PreProcess('')
|
|
|
|
|
AssertThrows call ale#linter#PreProcess('testft', '')
|
|
|
|
|
AssertEqual 'The linter object must be a Dictionary', g:vader_exception
|
|
|
|
|
|
|
|
|
|
Execute (PreProcess should throw when there is no name):
|
|
|
|
|
AssertThrows call ale#linter#PreProcess({
|
|
|
|
|
AssertThrows call ale#linter#PreProcess('testft', {
|
|
|
|
|
\ 'callback': 'SomeFunction',
|
|
|
|
|
\ 'executable': 'echo',
|
|
|
|
|
\ 'command': 'echo',
|
|
|
|
@ -17,7 +17,7 @@ Execute (PreProcess should throw when there is no name):
|
|
|
|
|
AssertEqual '`name` must be defined to name the linter', g:vader_exception
|
|
|
|
|
|
|
|
|
|
Execute (PreProcess should throw when there is no callback):
|
|
|
|
|
AssertThrows call ale#linter#PreProcess({
|
|
|
|
|
AssertThrows call ale#linter#PreProcess('testft', {
|
|
|
|
|
\ 'name': 'foo',
|
|
|
|
|
\ 'executable': 'echo',
|
|
|
|
|
\ 'command': 'echo',
|
|
|
|
@ -25,7 +25,7 @@ Execute (PreProcess should throw when there is no callback):
|
|
|
|
|
AssertEqual '`callback` must be defined with a callback to accept output', g:vader_exception
|
|
|
|
|
|
|
|
|
|
Execute (PreProcess should throw when then callback is not a function):
|
|
|
|
|
AssertThrows call ale#linter#PreProcess({
|
|
|
|
|
AssertThrows call ale#linter#PreProcess('testft', {
|
|
|
|
|
\ 'name': 'foo',
|
|
|
|
|
\ 'callback': 1,
|
|
|
|
|
\ 'executable': 'echo',
|
|
|
|
@ -34,7 +34,7 @@ Execute (PreProcess should throw when then callback is not a function):
|
|
|
|
|
AssertEqual '`callback` must be defined with a callback to accept output', g:vader_exception
|
|
|
|
|
|
|
|
|
|
Execute (PreProcess should throw when there is no executable or executable_callback):
|
|
|
|
|
AssertThrows call ale#linter#PreProcess({
|
|
|
|
|
AssertThrows call ale#linter#PreProcess('testft', {
|
|
|
|
|
\ 'name': 'foo',
|
|
|
|
|
\ 'callback': 'SomeFunction',
|
|
|
|
|
\ 'command': 'echo',
|
|
|
|
@ -42,7 +42,7 @@ Execute (PreProcess should throw when there is no executable or executable_callb
|
|
|
|
|
AssertEqual 'Either `executable` or `executable_callback` must be defined', g:vader_exception
|
|
|
|
|
|
|
|
|
|
Execute (PreProcess should throw when executable is not a string):
|
|
|
|
|
AssertThrows call ale#linter#PreProcess({
|
|
|
|
|
AssertThrows call ale#linter#PreProcess('testft', {
|
|
|
|
|
\ 'name': 'foo',
|
|
|
|
|
\ 'callback': 'SomeFunction',
|
|
|
|
|
\ 'executable': 123,
|
|
|
|
@ -51,7 +51,7 @@ Execute (PreProcess should throw when executable is not a string):
|
|
|
|
|
AssertEqual '`executable` must be a string if defined', g:vader_exception
|
|
|
|
|
|
|
|
|
|
Execute (PreProcess should throw when executable_callback is not a callback):
|
|
|
|
|
AssertThrows call ale#linter#PreProcess({
|
|
|
|
|
AssertThrows call ale#linter#PreProcess('testft', {
|
|
|
|
|
\ 'name': 'foo',
|
|
|
|
|
\ 'callback': 'SomeFunction',
|
|
|
|
|
\ 'executable_callback': 123,
|
|
|
|
@ -60,7 +60,7 @@ Execute (PreProcess should throw when executable_callback is not a callback):
|
|
|
|
|
AssertEqual '`executable_callback` must be a callback if defined', g:vader_exception
|
|
|
|
|
|
|
|
|
|
Execute (PreProcess should throw when there is no command):
|
|
|
|
|
AssertThrows call ale#linter#PreProcess({
|
|
|
|
|
AssertThrows call ale#linter#PreProcess('testft', {
|
|
|
|
|
\ 'name': 'foo',
|
|
|
|
|
\ 'callback': 'SomeFunction',
|
|
|
|
|
\ 'executable': 'echo',
|
|
|
|
@ -68,7 +68,7 @@ Execute (PreProcess should throw when there is no command):
|
|
|
|
|
AssertEqual 'Either `command`, `executable_callback`, `command_chain` must be defined', g:vader_exception
|
|
|
|
|
|
|
|
|
|
Execute (PreProcess should throw when command is not a string):
|
|
|
|
|
AssertThrows call ale#linter#PreProcess({
|
|
|
|
|
AssertThrows call ale#linter#PreProcess('testft', {
|
|
|
|
|
\ 'name': 'foo',
|
|
|
|
|
\ 'callback': 'SomeFunction',
|
|
|
|
|
\ 'executable': 'echo',
|
|
|
|
@ -77,7 +77,7 @@ Execute (PreProcess should throw when command is not a string):
|
|
|
|
|
AssertEqual '`command` must be a string if defined', g:vader_exception
|
|
|
|
|
|
|
|
|
|
Execute (PreProcess should throw when command_callback is not a callback):
|
|
|
|
|
AssertThrows call ale#linter#PreProcess({
|
|
|
|
|
AssertThrows call ale#linter#PreProcess('testft', {
|
|
|
|
|
\ 'name': 'foo',
|
|
|
|
|
\ 'callback': 'SomeFunction',
|
|
|
|
|
\ 'executable': 'echo',
|
|
|
|
@ -86,7 +86,7 @@ Execute (PreProcess should throw when command_callback is not a callback):
|
|
|
|
|
AssertEqual '`command_callback` must be a callback if defined', g:vader_exception
|
|
|
|
|
|
|
|
|
|
Execute (PreProcess should when the output stream isn't a valid string):
|
|
|
|
|
AssertThrows call ale#linter#PreProcess({
|
|
|
|
|
AssertThrows call ale#linter#PreProcess('testft', {
|
|
|
|
|
\ 'name': 'foo',
|
|
|
|
|
\ 'callback': 'SomeFunction',
|
|
|
|
|
\ 'executable': 'echo',
|
|
|
|
@ -96,7 +96,7 @@ Execute (PreProcess should when the output stream isn't a valid string):
|
|
|
|
|
AssertEqual "`output_stream` must be 'stdout', 'stderr', or 'both'", g:vader_exception
|
|
|
|
|
|
|
|
|
|
Execute (PreProcess should not throw when everything is correct):
|
|
|
|
|
call ale#linter#PreProcess({
|
|
|
|
|
call ale#linter#PreProcess('testft', {
|
|
|
|
|
\ 'name': 'foo',
|
|
|
|
|
\ 'callback': 'SomeFunction',
|
|
|
|
|
\ 'executable': 'echo',
|
|
|
|
@ -104,7 +104,7 @@ Execute (PreProcess should not throw when everything is correct):
|
|
|
|
|
\})
|
|
|
|
|
|
|
|
|
|
Execute (PreProcess should accept an stdout output_stream):
|
|
|
|
|
call ale#linter#PreProcess({
|
|
|
|
|
call ale#linter#PreProcess('testft', {
|
|
|
|
|
\ 'name': 'foo',
|
|
|
|
|
\ 'callback': 'SomeFunction',
|
|
|
|
|
\ 'executable': 'echo',
|
|
|
|
@ -113,7 +113,7 @@ Execute (PreProcess should accept an stdout output_stream):
|
|
|
|
|
\})
|
|
|
|
|
|
|
|
|
|
Execute (PreProcess should accept an stderr output_stream):
|
|
|
|
|
call ale#linter#PreProcess({
|
|
|
|
|
call ale#linter#PreProcess('testft', {
|
|
|
|
|
\ 'name': 'foo',
|
|
|
|
|
\ 'callback': 'SomeFunction',
|
|
|
|
|
\ 'executable': 'echo',
|
|
|
|
@ -122,7 +122,7 @@ Execute (PreProcess should accept an stderr output_stream):
|
|
|
|
|
\})
|
|
|
|
|
|
|
|
|
|
Execute (PreProcess should accept a 'both' output_stream):
|
|
|
|
|
call ale#linter#PreProcess({
|
|
|
|
|
call ale#linter#PreProcess('testft', {
|
|
|
|
|
\ 'name': 'foo',
|
|
|
|
|
\ 'callback': 'SomeFunction',
|
|
|
|
|
\ 'executable': 'echo',
|
|
|
|
@ -137,7 +137,7 @@ Execute(PreProcess should complain if the command_chain is not a List):
|
|
|
|
|
\ 'executable': 'x',
|
|
|
|
|
\ 'command_chain': 'x',
|
|
|
|
|
\}
|
|
|
|
|
AssertThrows call ale#linter#PreProcess(g:linter)
|
|
|
|
|
AssertThrows call ale#linter#PreProcess('testft', g:linter)
|
|
|
|
|
AssertEqual '`command_chain` must be a List', g:vader_exception
|
|
|
|
|
|
|
|
|
|
Execute(PreProcess should complain if the command_chain is empty):
|
|
|
|
@ -147,7 +147,7 @@ Execute(PreProcess should complain if the command_chain is empty):
|
|
|
|
|
\ 'executable': 'x',
|
|
|
|
|
\ 'command_chain': [],
|
|
|
|
|
\}
|
|
|
|
|
AssertThrows call ale#linter#PreProcess(g:linter)
|
|
|
|
|
AssertThrows call ale#linter#PreProcess('testft', g:linter)
|
|
|
|
|
AssertEqual '`command_chain` must contain at least one item', g:vader_exception
|
|
|
|
|
|
|
|
|
|
Execute(PreProcess should complain if the command_chain has no callback):
|
|
|
|
@ -157,7 +157,7 @@ Execute(PreProcess should complain if the command_chain has no callback):
|
|
|
|
|
\ 'executable': 'x',
|
|
|
|
|
\ 'command_chain': [{}],
|
|
|
|
|
\}
|
|
|
|
|
AssertThrows call ale#linter#PreProcess(g:linter)
|
|
|
|
|
AssertThrows call ale#linter#PreProcess('testft', g:linter)
|
|
|
|
|
AssertEqual 'The `command_chain` item 0 must define a `callback` function', g:vader_exception
|
|
|
|
|
|
|
|
|
|
Execute(PreProcess should complain if the command_chain callback is not a function):
|
|
|
|
@ -167,7 +167,7 @@ Execute(PreProcess should complain if the command_chain callback is not a functi
|
|
|
|
|
\ 'executable': 'x',
|
|
|
|
|
\ 'command_chain': [{'callback': 2}],
|
|
|
|
|
\}
|
|
|
|
|
AssertThrows call ale#linter#PreProcess(g:linter)
|
|
|
|
|
AssertThrows call ale#linter#PreProcess('testft', g:linter)
|
|
|
|
|
AssertEqual 'The `command_chain` item 0 must define a `callback` function', g:vader_exception
|
|
|
|
|
|
|
|
|
|
Execute(PreProcess should accept a chain with one callback):
|
|
|
|
@ -177,7 +177,7 @@ Execute(PreProcess should accept a chain with one callback):
|
|
|
|
|
\ 'executable': 'x',
|
|
|
|
|
\ 'command_chain': [{'callback': 'foo'}],
|
|
|
|
|
\}
|
|
|
|
|
call ale#linter#PreProcess(g:linter)
|
|
|
|
|
call ale#linter#PreProcess('testft', g:linter)
|
|
|
|
|
|
|
|
|
|
Execute(PreProcess should complain about invalid output_stream values in the chain):
|
|
|
|
|
let g:linter = {
|
|
|
|
@ -186,7 +186,7 @@ Execute(PreProcess should complain about invalid output_stream values in the cha
|
|
|
|
|
\ 'executable': 'x',
|
|
|
|
|
\ 'command_chain': [{'callback': 'foo', 'output_stream': ''}],
|
|
|
|
|
\}
|
|
|
|
|
AssertThrows call ale#linter#PreProcess(g:linter)
|
|
|
|
|
AssertThrows call ale#linter#PreProcess('testft', g:linter)
|
|
|
|
|
AssertEqual "The `command_chain` item 0 `output_stream` flag must be 'stdout', 'stderr', or 'both'", g:vader_exception
|
|
|
|
|
|
|
|
|
|
Execute(PreProcess should complain about valid output_stream values in the chain):
|
|
|
|
@ -196,11 +196,11 @@ Execute(PreProcess should complain about valid output_stream values in the chain
|
|
|
|
|
\ 'executable': 'x',
|
|
|
|
|
\ 'command_chain': [{'callback': 'foo', 'output_stream': 'stdout'}],
|
|
|
|
|
\}
|
|
|
|
|
call ale#linter#PreProcess(g:linter)
|
|
|
|
|
call ale#linter#PreProcess('testft', g:linter)
|
|
|
|
|
let g:linter.command_chain[0].output_stream = 'stderr'
|
|
|
|
|
call ale#linter#PreProcess(g:linter)
|
|
|
|
|
call ale#linter#PreProcess('testft', g:linter)
|
|
|
|
|
let g:linter.command_chain[0].output_stream = 'both'
|
|
|
|
|
call ale#linter#PreProcess(g:linter)
|
|
|
|
|
call ale#linter#PreProcess('testft', g:linter)
|
|
|
|
|
|
|
|
|
|
Execute(PreProcess should complain about invalid chain items at higher indices):
|
|
|
|
|
let g:linter = {
|
|
|
|
@ -209,7 +209,7 @@ Execute(PreProcess should complain about invalid chain items at higher indices):
|
|
|
|
|
\ 'executable': 'x',
|
|
|
|
|
\ 'command_chain': [{'callback': 'foo'}, {'callback': 123}],
|
|
|
|
|
\}
|
|
|
|
|
AssertThrows call ale#linter#PreProcess(g:linter)
|
|
|
|
|
AssertThrows call ale#linter#PreProcess('testft', g:linter)
|
|
|
|
|
AssertEqual 'The `command_chain` item 1 must define a `callback` function', g:vader_exception
|
|
|
|
|
|
|
|
|
|
Execute(PreProcess should complain when conflicting command options are used):
|
|
|
|
@ -220,19 +220,19 @@ Execute(PreProcess should complain when conflicting command options are used):
|
|
|
|
|
\ 'command': 'foo',
|
|
|
|
|
\ 'command_chain': [{'callback': 'foo'}],
|
|
|
|
|
\}
|
|
|
|
|
AssertThrows call ale#linter#PreProcess(g:linter)
|
|
|
|
|
AssertThrows call ale#linter#PreProcess('testft', g:linter)
|
|
|
|
|
AssertEqual 'Only one of `command`, `command_callback`, or `command_chain` should be set', g:vader_exception
|
|
|
|
|
|
|
|
|
|
unlet g:linter.command
|
|
|
|
|
let g:linter.command_callback = 'foo'
|
|
|
|
|
|
|
|
|
|
AssertThrows call ale#linter#PreProcess(g:linter)
|
|
|
|
|
AssertThrows call ale#linter#PreProcess('testft', g:linter)
|
|
|
|
|
AssertEqual 'Only one of `command`, `command_callback`, or `command_chain` should be set', g:vader_exception
|
|
|
|
|
|
|
|
|
|
let g:linter.command = 'foo'
|
|
|
|
|
unlet g:linter.command_chain
|
|
|
|
|
|
|
|
|
|
AssertThrows call ale#linter#PreProcess(g:linter)
|
|
|
|
|
AssertThrows call ale#linter#PreProcess('testft', g:linter)
|
|
|
|
|
AssertEqual 'Only one of `command`, `command_callback`, or `command_chain` should be set', g:vader_exception
|
|
|
|
|
|
|
|
|
|
Execute(PreProcess should process the read_buffer option correctly):
|
|
|
|
@ -244,35 +244,35 @@ Execute(PreProcess should process the read_buffer option correctly):
|
|
|
|
|
\ 'read_buffer': '0',
|
|
|
|
|
\}
|
|
|
|
|
|
|
|
|
|
AssertThrows call ale#linter#PreProcess(g:linter)
|
|
|
|
|
AssertThrows call ale#linter#PreProcess('testft', g:linter)
|
|
|
|
|
AssertEqual '`read_buffer` must be `0` or `1`', g:vader_exception
|
|
|
|
|
|
|
|
|
|
let g:linter.read_buffer = 0
|
|
|
|
|
|
|
|
|
|
call ale#linter#PreProcess(g:linter)
|
|
|
|
|
call ale#linter#PreProcess('testft', g:linter)
|
|
|
|
|
|
|
|
|
|
let g:linter.read_buffer = 1
|
|
|
|
|
|
|
|
|
|
call ale#linter#PreProcess(g:linter)
|
|
|
|
|
call ale#linter#PreProcess('testft', g:linter)
|
|
|
|
|
|
|
|
|
|
unlet g:linter.read_buffer
|
|
|
|
|
let g:linter.command_chain[0].read_buffer = '0'
|
|
|
|
|
|
|
|
|
|
AssertThrows call ale#linter#PreProcess(g:linter)
|
|
|
|
|
AssertThrows call ale#linter#PreProcess('testft', g:linter)
|
|
|
|
|
AssertEqual 'The `command_chain` item 0 value for `read_buffer` must be `0` or `1`', g:vader_exception
|
|
|
|
|
|
|
|
|
|
let g:linter.command_chain[0].read_buffer = 0
|
|
|
|
|
|
|
|
|
|
call ale#linter#PreProcess(g:linter)
|
|
|
|
|
call ale#linter#PreProcess('testft', g:linter)
|
|
|
|
|
|
|
|
|
|
let g:linter.command_chain[1].read_buffer = '0'
|
|
|
|
|
|
|
|
|
|
AssertThrows call ale#linter#PreProcess(g:linter)
|
|
|
|
|
AssertThrows call ale#linter#PreProcess('testft', g:linter)
|
|
|
|
|
AssertEqual 'The `command_chain` item 1 value for `read_buffer` must be `0` or `1`', g:vader_exception
|
|
|
|
|
|
|
|
|
|
let g:linter.command_chain[1].read_buffer = 1
|
|
|
|
|
|
|
|
|
|
call ale#linter#PreProcess(g:linter)
|
|
|
|
|
call ale#linter#PreProcess('testft', g:linter)
|
|
|
|
|
|
|
|
|
|
Execute(PreProcess should set a default value for read_buffer):
|
|
|
|
|
let g:linter = {
|
|
|
|
@ -282,7 +282,7 @@ Execute(PreProcess should set a default value for read_buffer):
|
|
|
|
|
\ 'command': 'x',
|
|
|
|
|
\}
|
|
|
|
|
|
|
|
|
|
AssertEqual 1, ale#linter#PreProcess(g:linter).read_buffer
|
|
|
|
|
AssertEqual 1, ale#linter#PreProcess('testft', g:linter).read_buffer
|
|
|
|
|
|
|
|
|
|
Execute(PreProcess should process the lint_file option correctly):
|
|
|
|
|
let g:linter = {
|
|
|
|
@ -293,25 +293,25 @@ Execute(PreProcess should process the lint_file option correctly):
|
|
|
|
|
\ 'lint_file': 'x',
|
|
|
|
|
\}
|
|
|
|
|
|
|
|
|
|
AssertThrows call ale#linter#PreProcess(g:linter)
|
|
|
|
|
AssertThrows call ale#linter#PreProcess('testft', g:linter)
|
|
|
|
|
AssertEqual '`lint_file` must be `0` or `1`', g:vader_exception
|
|
|
|
|
|
|
|
|
|
let g:linter.lint_file = 0
|
|
|
|
|
|
|
|
|
|
AssertEqual 0, ale#linter#PreProcess(g:linter).lint_file
|
|
|
|
|
AssertEqual 0, ale#linter#PreProcess('testft', g:linter).lint_file
|
|
|
|
|
" The default for read_buffer should be 1 when lint_file is 0
|
|
|
|
|
AssertEqual 1, ale#linter#PreProcess(g:linter).read_buffer
|
|
|
|
|
AssertEqual 1, ale#linter#PreProcess('testft', g:linter).read_buffer
|
|
|
|
|
|
|
|
|
|
let g:linter.lint_file = 1
|
|
|
|
|
|
|
|
|
|
AssertEqual 1, ale#linter#PreProcess(g:linter).lint_file
|
|
|
|
|
AssertEqual 1, ale#linter#PreProcess('testft', g:linter).lint_file
|
|
|
|
|
" The default for read_buffer should change to 0 when lint_file is 1.
|
|
|
|
|
AssertEqual 0, ale#linter#PreProcess(g:linter).read_buffer
|
|
|
|
|
AssertEqual 0, ale#linter#PreProcess('testft', g:linter).read_buffer
|
|
|
|
|
|
|
|
|
|
let g:linter.read_buffer = 1
|
|
|
|
|
|
|
|
|
|
" We shouldn't be able to set both options to 1 at the same time.
|
|
|
|
|
AssertThrows call ale#linter#PreProcess(g:linter)
|
|
|
|
|
AssertThrows call ale#linter#PreProcess('testft', g:linter)
|
|
|
|
|
AssertEqual 'Only one of `lint_file` or `read_buffer` can be `1`', g:vader_exception
|
|
|
|
|
|
|
|
|
|
Execute(PreProcess should set a default value for lint_file):
|
|
|
|
@ -322,7 +322,7 @@ Execute(PreProcess should set a default value for lint_file):
|
|
|
|
|
\ 'command': 'x',
|
|
|
|
|
\}
|
|
|
|
|
|
|
|
|
|
AssertEqual 0, ale#linter#PreProcess(g:linter).lint_file
|
|
|
|
|
AssertEqual 0, ale#linter#PreProcess('testft', g:linter).lint_file
|
|
|
|
|
|
|
|
|
|
Execute(PreProcess should set a default value for aliases):
|
|
|
|
|
let g:linter = {
|
|
|
|
@ -332,7 +332,7 @@ Execute(PreProcess should set a default value for aliases):
|
|
|
|
|
\ 'command': 'x',
|
|
|
|
|
\}
|
|
|
|
|
|
|
|
|
|
AssertEqual [], ale#linter#PreProcess(g:linter).aliases
|
|
|
|
|
AssertEqual [], ale#linter#PreProcess('testft', g:linter).aliases
|
|
|
|
|
|
|
|
|
|
Execute(PreProcess should complain about invalid `aliases` values):
|
|
|
|
|
let g:linter = {
|
|
|
|
@ -343,12 +343,12 @@ Execute(PreProcess should complain about invalid `aliases` values):
|
|
|
|
|
\ 'aliases': 'foo',
|
|
|
|
|
\}
|
|
|
|
|
|
|
|
|
|
AssertThrows call ale#linter#PreProcess(g:linter)
|
|
|
|
|
AssertThrows call ale#linter#PreProcess('testft', g:linter)
|
|
|
|
|
AssertEqual '`aliases` must be a List of String values', g:vader_exception
|
|
|
|
|
|
|
|
|
|
let g:linter.aliases = [1]
|
|
|
|
|
|
|
|
|
|
AssertThrows call ale#linter#PreProcess(g:linter)
|
|
|
|
|
AssertThrows call ale#linter#PreProcess('testft', g:linter)
|
|
|
|
|
AssertEqual '`aliases` must be a List of String values', g:vader_exception
|
|
|
|
|
|
|
|
|
|
Execute(PreProcess should accept `aliases` lists):
|
|
|
|
@ -360,11 +360,11 @@ Execute(PreProcess should accept `aliases` lists):
|
|
|
|
|
\ 'aliases': [],
|
|
|
|
|
\}
|
|
|
|
|
|
|
|
|
|
AssertEqual [], ale#linter#PreProcess(g:linter).aliases
|
|
|
|
|
AssertEqual [], ale#linter#PreProcess('testft', g:linter).aliases
|
|
|
|
|
|
|
|
|
|
let g:linter.aliases = ['foo', 'bar']
|
|
|
|
|
|
|
|
|
|
AssertEqual ['foo', 'bar'], ale#linter#PreProcess(g:linter).aliases
|
|
|
|
|
AssertEqual ['foo', 'bar'], ale#linter#PreProcess('testft', g:linter).aliases
|
|
|
|
|
|
|
|
|
|
Execute(PreProcess should accept tsserver LSP configuration):
|
|
|
|
|
let g:linter = {
|
|
|
|
@ -376,17 +376,17 @@ Execute(PreProcess should accept tsserver LSP configuration):
|
|
|
|
|
\ 'project_root_callback': 'x',
|
|
|
|
|
\}
|
|
|
|
|
|
|
|
|
|
AssertEqual 'tsserver', ale#linter#PreProcess(g:linter).lsp
|
|
|
|
|
AssertEqual 'tsserver', ale#linter#PreProcess('testft', g:linter).lsp
|
|
|
|
|
|
|
|
|
|
call remove(g:linter, 'executable')
|
|
|
|
|
let g:linter.executable_callback = 'X'
|
|
|
|
|
|
|
|
|
|
call ale#linter#PreProcess(g:linter)
|
|
|
|
|
call ale#linter#PreProcess('testft', g:linter)
|
|
|
|
|
|
|
|
|
|
call remove(g:linter, 'command')
|
|
|
|
|
let g:linter.command_callback = 'X'
|
|
|
|
|
|
|
|
|
|
call ale#linter#PreProcess(g:linter)
|
|
|
|
|
call ale#linter#PreProcess('testft', g:linter)
|
|
|
|
|
|
|
|
|
|
Execute(PreProcess should accept stdio LSP configuration):
|
|
|
|
|
let g:linter = {
|
|
|
|
@ -398,17 +398,17 @@ Execute(PreProcess should accept stdio LSP configuration):
|
|
|
|
|
\ 'project_root_callback': 'x',
|
|
|
|
|
\}
|
|
|
|
|
|
|
|
|
|
AssertEqual 'stdio', ale#linter#PreProcess(g:linter).lsp
|
|
|
|
|
AssertEqual 'stdio', ale#linter#PreProcess('testft', g:linter).lsp
|
|
|
|
|
|
|
|
|
|
call remove(g:linter, 'executable')
|
|
|
|
|
let g:linter.executable_callback = 'X'
|
|
|
|
|
|
|
|
|
|
call ale#linter#PreProcess(g:linter)
|
|
|
|
|
call ale#linter#PreProcess('testft', g:linter)
|
|
|
|
|
|
|
|
|
|
call remove(g:linter, 'command')
|
|
|
|
|
let g:linter.command_callback = 'X'
|
|
|
|
|
|
|
|
|
|
call ale#linter#PreProcess(g:linter)
|
|
|
|
|
call ale#linter#PreProcess('testft', g:linter)
|
|
|
|
|
|
|
|
|
|
Execute(PreProcess should accept LSP server configurations):
|
|
|
|
|
let g:linter = {
|
|
|
|
@ -419,7 +419,7 @@ Execute(PreProcess should accept LSP server configurations):
|
|
|
|
|
\ 'project_root_callback': 'x',
|
|
|
|
|
\}
|
|
|
|
|
|
|
|
|
|
AssertEqual 'socket', ale#linter#PreProcess(g:linter).lsp
|
|
|
|
|
AssertEqual 'socket', ale#linter#PreProcess('testft', g:linter).lsp
|
|
|
|
|
|
|
|
|
|
Execute(PreProcess should accept let you specify the language as just a string):
|
|
|
|
|
let g:linter = {
|
|
|
|
@ -430,7 +430,7 @@ Execute(PreProcess should accept let you specify the language as just a string):
|
|
|
|
|
\ 'project_root_callback': 'x',
|
|
|
|
|
\}
|
|
|
|
|
|
|
|
|
|
AssertEqual 'foobar', ale#linter#PreProcess(g:linter).language_callback(0)
|
|
|
|
|
AssertEqual 'foobar', ale#linter#PreProcess('testft', g:linter).language_callback(0)
|
|
|
|
|
|
|
|
|
|
Execute(PreProcess should complain about using language and language_callback together):
|
|
|
|
|
let g:linter = {
|
|
|
|
@ -442,16 +442,26 @@ Execute(PreProcess should complain about using language and language_callback to
|
|
|
|
|
\ 'project_root_callback': 'x',
|
|
|
|
|
\}
|
|
|
|
|
|
|
|
|
|
AssertThrows call ale#linter#PreProcess(g:linter)
|
|
|
|
|
AssertThrows call ale#linter#PreProcess('testft', g:linter)
|
|
|
|
|
AssertEqual 'Only one of `language` or `language_callback` should be set', g:vader_exception
|
|
|
|
|
|
|
|
|
|
Execute(PreProcess should use the filetype as the language string by default):
|
|
|
|
|
let g:linter = {
|
|
|
|
|
\ 'name': 'x',
|
|
|
|
|
\ 'lsp': 'socket',
|
|
|
|
|
\ 'address_callback': 'X',
|
|
|
|
|
\ 'project_root_callback': 'x',
|
|
|
|
|
\}
|
|
|
|
|
|
|
|
|
|
AssertEqual 'testft', ale#linter#PreProcess('testft', g:linter).language_callback(0)
|
|
|
|
|
|
|
|
|
|
Execute(PreProcess should require an address_callback for LSP socket configurations):
|
|
|
|
|
let g:linter = {
|
|
|
|
|
\ 'name': 'x',
|
|
|
|
|
\ 'lsp': 'socket',
|
|
|
|
|
\}
|
|
|
|
|
|
|
|
|
|
AssertThrows call ale#linter#PreProcess(g:linter)
|
|
|
|
|
AssertThrows call ale#linter#PreProcess('testft', 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):
|
|
|
|
@ -463,7 +473,7 @@ Execute(PreProcess should complain about address_callback for non-LSP linters):
|
|
|
|
|
\ 'address_callback': 'X',
|
|
|
|
|
\}
|
|
|
|
|
|
|
|
|
|
AssertThrows call ale#linter#PreProcess(g:linter)
|
|
|
|
|
AssertThrows call ale#linter#PreProcess('testft', g:linter)
|
|
|
|
|
AssertEqual '`address_callback` cannot be used when lsp != ''socket''', g:vader_exception
|
|
|
|
|
|
|
|
|
|
Execute(PreProcess should complain about using initialization_options and initialization_options_callback together):
|
|
|
|
@ -477,11 +487,11 @@ Execute(PreProcess should complain about using initialization_options and initia
|
|
|
|
|
\ 'initialization_options_callback': 'x',
|
|
|
|
|
\}
|
|
|
|
|
|
|
|
|
|
AssertThrows call ale#linter#PreProcess(g:linter)
|
|
|
|
|
AssertThrows call ale#linter#PreProcess('testft', g:linter)
|
|
|
|
|
AssertEqual 'Only one of `initialization_options` or `initialization_options_callback` should be set', g:vader_exception
|
|
|
|
|
|
|
|
|
|
Execute (PreProcess should throw when initialization_options_callback is not a callback):
|
|
|
|
|
AssertThrows call ale#linter#PreProcess({
|
|
|
|
|
AssertThrows call ale#linter#PreProcess('testft', {
|
|
|
|
|
\ 'name': 'foo',
|
|
|
|
|
\ 'lsp': 'socket',
|
|
|
|
|
\ 'address_callback': 'X',
|
|
|
|
|