diff options
author | David Balatero <dbalatero@gmail.com> | 2021-02-17 20:10:49 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-02-18 10:10:49 +0900 |
commit | 0b35c3a5b9d5f9d3bb1021d89c1bdb9dbbf8a958 (patch) | |
tree | 0b109e10fff464fe616bb12fc893333b292d7503 | |
parent | 88d052b5a9ee3a41364497e1b98f01305d01df35 (diff) | |
download | ale-0b35c3a5b9d5f9d3bb1021d89c1bdb9dbbf8a958.zip |
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>
-rw-r--r-- | ale_linters/markdown/vale.vim | 19 | ||||
-rw-r--r-- | test/command_callback/test_markdown_vale_command_callback.vader | 32 |
2 files changed, 49 insertions, 2 deletions
diff --git a/ale_linters/markdown/vale.vim b/ale_linters/markdown/vale.vim index 838c4db2..06a64416 100644 --- a/ale_linters/markdown/vale.vim +++ b/ale_linters/markdown/vale.vim @@ -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', \}) diff --git a/test/command_callback/test_markdown_vale_command_callback.vader b/test/command_callback/test_markdown_vale_command_callback.vader new file mode 100644 index 00000000..5300805b --- /dev/null +++ b/test/command_callback/test_markdown_vale_command_callback.vader @@ -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' |