Make markdown vale linter command configurable with options (#3594)
* Make vale command user-configurable * Add test for vale options * Typo in test Co-authored-by: David Balatero <dbalatero@stripe.com>
This commit is contained in:
parent
88d052b5a9
commit
0b35c3a5b9
2 changed files with 49 additions and 2 deletions
|
@ -1,9 +1,24 @@
|
||||||
" Author: chew-z https://github.com/chew-z
|
" Author: chew-z https://github.com/chew-z
|
||||||
" Description: vale for Markdown files
|
" Description: vale for Markdown files
|
||||||
|
|
||||||
|
call ale#Set('markdown_vale_executable', 'vale')
|
||||||
|
call ale#Set('markdown_vale_input_file', '%t')
|
||||||
|
call ale#Set('markdown_vale_options', '')
|
||||||
|
|
||||||
|
function! ale_linters#markdown#vale#GetCommand(buffer) abort
|
||||||
|
let l:executable = ale#Var(a:buffer, 'markdown_vale_executable')
|
||||||
|
let l:input_file = ale#Var(a:buffer, 'markdown_vale_input_file')
|
||||||
|
|
||||||
|
" Defaults to `vale --output=JSON %t`
|
||||||
|
return ale#Escape(l:executable)
|
||||||
|
\ . ' --output=JSON '
|
||||||
|
\ . ale#Var(a:buffer, 'markdown_vale_options')
|
||||||
|
\ . ' ' . l:input_file
|
||||||
|
endfunction
|
||||||
|
|
||||||
call ale#linter#Define('markdown', {
|
call ale#linter#Define('markdown', {
|
||||||
\ 'name': 'vale',
|
\ 'name': 'vale',
|
||||||
\ 'executable': 'vale',
|
\ 'executable': {b -> ale#Var(b, 'markdown_vale_executable')},
|
||||||
\ 'command': 'vale --output=JSON %t',
|
\ 'command': function('ale_linters#markdown#vale#GetCommand'),
|
||||||
\ 'callback': 'ale#handlers#vale#Handle',
|
\ 'callback': 'ale#handlers#vale#Handle',
|
||||||
\})
|
\})
|
||||||
|
|
|
@ -0,0 +1,32 @@
|
||||||
|
Before:
|
||||||
|
call ale#assert#SetUpLinterTest('markdown', 'vale')
|
||||||
|
call ale#test#SetFilename('dummy.md')
|
||||||
|
|
||||||
|
let g:ale_markdown_vale_executable = 'vale'
|
||||||
|
let g:ale_markdown_vale_input_file = '%t'
|
||||||
|
let g:ale_markdown_vale_options = ''
|
||||||
|
|
||||||
|
After:
|
||||||
|
call ale#assert#TearDownLinterTest()
|
||||||
|
|
||||||
|
Execute(Executable should default to vale):
|
||||||
|
AssertLinter 'vale', ale#Escape('vale')
|
||||||
|
\ . ' --output=JSON %t'
|
||||||
|
|
||||||
|
Execute(Should be able to set a custom executable):
|
||||||
|
let g:ale_markdown_vale_executable = 'bin/vale'
|
||||||
|
|
||||||
|
AssertLinter 'bin/vale' , ale#Escape('bin/vale')
|
||||||
|
\ . ' --output=JSON %t'
|
||||||
|
|
||||||
|
Execute(Should be able to set custom options):
|
||||||
|
let g:ale_markdown_vale_options = '--foo --bar'
|
||||||
|
|
||||||
|
AssertLinter 'vale', ale#Escape('vale')
|
||||||
|
\ . ' --output=JSON --foo --bar %t'
|
||||||
|
|
||||||
|
Execute(Should be able to set a custom input file):
|
||||||
|
let g:ale_markdown_vale_input_file = '%s'
|
||||||
|
|
||||||
|
AssertLinter 'vale', ale#Escape('vale')
|
||||||
|
\ . ' --output=JSON %s'
|
Reference in a new issue