Allow configuration of hamllint executable (#2048)

* Allow configuration of hamllint executable

The hamllint executable was hard-coded, preventing it from being
overridden. Fix the executable to be dynamic to allow custom executable
paths.
This commit is contained in:
Justin Howard 2018-11-04 02:35:21 -08:00 committed by w0rp
parent 9171791646
commit 88d328739f
2 changed files with 12 additions and 2 deletions

View File

@ -1,6 +1,12 @@
" Author: Patrick Lewis - https://github.com/patricklewis, thenoseman - https://github.com/thenoseman " Author: Patrick Lewis - https://github.com/patricklewis, thenoseman - https://github.com/thenoseman
" Description: haml-lint for Haml files " Description: haml-lint for Haml files
call ale#Set('haml_hamllint_executable', 'haml-lint')
function! ale_linters#haml#hamllint#GetExecutable(buffer) abort
return ale#Var(a:buffer, 'haml_hamllint_executable')
endfunction
function! ale_linters#haml#hamllint#GetCommand(buffer) abort function! ale_linters#haml#hamllint#GetCommand(buffer) abort
let l:prefix = '' let l:prefix = ''
@ -21,7 +27,7 @@ function! ale_linters#haml#hamllint#GetCommand(buffer) abort
endif endif
return (!empty(l:prefix) ? l:prefix . ' ' : '') return (!empty(l:prefix) ? l:prefix . ' ' : '')
\ . 'haml-lint' \ . ale_linters#haml#hamllint#GetExecutable(a:buffer)
\ . (!empty(l:hamllint_config_file_path) ? ' --config ' . ale#Escape(l:hamllint_config_file_path) : '') \ . (!empty(l:hamllint_config_file_path) ? ' --config ' . ale#Escape(l:hamllint_config_file_path) : '')
\ . ' %t' \ . ' %t'
endfunction endfunction
@ -45,7 +51,7 @@ endfunction
call ale#linter#Define('haml', { call ale#linter#Define('haml', {
\ 'name': 'hamllint', \ 'name': 'hamllint',
\ 'executable': 'haml-lint', \ 'executable_callback': 'ale_linters#haml#hamllint#GetExecutable',
\ 'command_callback': 'ale_linters#haml#hamllint#GetCommand', \ 'command_callback': 'ale_linters#haml#hamllint#GetCommand',
\ 'callback': 'ale_linters#haml#hamllint#Handle' \ 'callback': 'ale_linters#haml#hamllint#Handle'
\}) \})

View File

@ -35,3 +35,7 @@ Execute(The command should include a .rubocop.yml and a .haml-lint if both are f
AssertLinter 'haml-lint', AssertLinter 'haml-lint',
\ ale#Env('HAML_LINT_RUBOCOP_CONF', b:conf_rubocop) \ ale#Env('HAML_LINT_RUBOCOP_CONF', b:conf_rubocop)
\ . 'haml-lint --config ' . ale#Escape(b:conf_hamllint) . ' %t' \ . 'haml-lint --config ' . ale#Escape(b:conf_hamllint) . ' %t'
Execute(The executable can be overridden):
let b:ale_haml_hamllint_executable = 'bin/haml-lint'
AssertLinter 'bin/haml-lint', 'bin/haml-lint %t'