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
|
||||
" 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', {
|
||||
\ 'name': 'vale',
|
||||
\ 'executable': 'vale',
|
||||
\ 'command': 'vale --output=JSON %t',
|
||||
\ 'executable': {b -> ale#Var(b, 'markdown_vale_executable')},
|
||||
\ 'command': function('ale_linters#markdown#vale#GetCommand'),
|
||||
\ '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