ale/ale_linters/nix/statix.vim

19 lines
631 B
VimL
Raw Normal View History

Implement statix Linter and Fixer (#3969) * Add Statix for Linting Add `statix check` as a linter. Provides a simple set of definition tests additionally. Variable names specify "check" to allow for later addition of `statix fix` as a formatter once stream support is added. Signed-off-by: David Houston <houstdav000@gmail.com> * Fixup Supported Tools List I didn't realise there were two separate lists of tools, so add statix to the other list. Also, remembered "S" comes after "R", and so re-ordered it. Signed-off-by: David Houston <houstdav000@gmail.com> * Fix statix Test File I refactored the variables for statix to allow for writing a fixer later, and forgot to update them in the test, so update them now. Also remove a stray "i", add missing space before checks Signed-off-by: David Houston <houstdav000@gmail.com> * Update Output Stream for v0.4.0 statix v0.4.0 provides a breaking change of output stream from stderr to stdout. Signed-off-by: David Houston <houstdav000@gmail.com> * Add statix fix Fixer Implement statix fix as a fixer for simple Nix antipatterns. Signed-off-by: David Houston <houstdav000@gmail.com> * Fix statix Fixer Tests Fix the statix fixer tests by removing the unnecessary 'read_temporary_file' value from the command, since it simply uses the default value. Signed-off-by: David Houston <houstdav000@gmail.com> * Add statix Handler Test Add a test for the statix handler per @hsanson's request. Signed-off-by: David Houston <houstdav000@gmail.com> * Fix to run only on stdin for linting Signed-off-by: David Houston <houstdav000@gmail.com>
2021-11-11 22:34:25 +00:00
scriptencoding utf-8
" Author: David Houston <houstdav000>
" Description: statix analysis and suggestions for Nix files
call ale#Set('nix_statix_check_executable', 'statix')
call ale#Set('nix_statix_check_options', '')
function! ale_linters#nix#statix#GetCommand(buffer) abort
return '%e check -o errfmt --stdin'
\ . ale#Pad(ale#Var(a:buffer, 'nix_statix_check_options'))
endfunction
call ale#linter#Define('nix', {
\ 'name': 'statix',
\ 'executable': {b -> ale#Var(b, 'nix_statix_check_executable')},
\ 'command': function('ale_linters#nix#statix#GetCommand'),
\ 'callback': 'ale#handlers#statix#Handle',
\})