tslint parameterized executable and config path (#400)
* Allow modifying the location of the tsling executable * Allow definition of config file path * fnameescape configuration file
This commit is contained in:
parent
51729346bf
commit
5122dc498d
@ -1,6 +1,20 @@
|
|||||||
" Author: Prashanth Chandra https://github.com/prashcr
|
" Author: Prashanth Chandra https://github.com/prashcr
|
||||||
" Description: tslint for TypeScript files
|
" Description: tslint for TypeScript files
|
||||||
|
|
||||||
|
let g:ale_typescript_tslint_executable =
|
||||||
|
\ get(g:, 'ale_typescript_tslint_executable', 'tslint')
|
||||||
|
|
||||||
|
let g:ale_typescript_tslint_config_path =
|
||||||
|
\ get(g:, 'ale_typescript_tslint_config_path', '')
|
||||||
|
|
||||||
|
function! ale_linters#typescript#tslint#GetExecutable(buffer) abort
|
||||||
|
return ale#util#ResolveLocalPath(
|
||||||
|
\ a:buffer,
|
||||||
|
\ 'node_modules/.bin/tslint',
|
||||||
|
\ g:ale_typescript_tslint_executable
|
||||||
|
\)
|
||||||
|
endfunction
|
||||||
|
|
||||||
function! ale_linters#typescript#tslint#Handle(buffer, lines) abort
|
function! ale_linters#typescript#tslint#Handle(buffer, lines) abort
|
||||||
" Matches patterns like the following:
|
" Matches patterns like the following:
|
||||||
"
|
"
|
||||||
@ -37,15 +51,24 @@ function! ale_linters#typescript#tslint#Handle(buffer, lines) abort
|
|||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function! ale_linters#typescript#tslint#BuildLintCommand(buffer) abort
|
function! ale_linters#typescript#tslint#BuildLintCommand(buffer) abort
|
||||||
let l:tsconfig_path = ale#util#FindNearestFile(a:buffer, 'tslint.json')
|
let g:ale_typescript_tslint_config_path =
|
||||||
let l:tslint_options = empty(l:tsconfig_path) ? '' : '-c ' . l:tsconfig_path
|
\ empty(g:ale_typescript_tslint_config_path) ?
|
||||||
|
\ ale#util#FindNearestFile(a:buffer, 'tslint.json')
|
||||||
|
\ : g:ale_typescript_tslint_config_path
|
||||||
|
|
||||||
return 'tslint ' . l:tslint_options . ' %t'
|
let l:tslint_options =
|
||||||
|
\ empty(g:ale_typescript_tslint_config_path) ?
|
||||||
|
\ ''
|
||||||
|
\ : '-c ' . fnameescape(g:ale_typescript_tslint_config_path)
|
||||||
|
|
||||||
|
return ale_linters#typescript#tslint#GetExecutable(a:buffer)
|
||||||
|
\ . ' ' . l:tslint_options
|
||||||
|
\ . ' %t'
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
call ale#linter#Define('typescript', {
|
call ale#linter#Define('typescript', {
|
||||||
\ 'name': 'tslint',
|
\ 'name': 'tslint',
|
||||||
\ 'executable': 'tslint',
|
\ 'executable_callback': 'ale_linters#typescript#tslint#GetExecutable',
|
||||||
\ 'command_callback': 'ale_linters#typescript#tslint#BuildLintCommand',
|
\ 'command_callback': 'ale_linters#typescript#tslint#BuildLintCommand',
|
||||||
\ 'callback': 'ale_linters#typescript#tslint#Handle',
|
\ 'callback': 'ale_linters#typescript#tslint#Handle',
|
||||||
\})
|
\})
|
||||||
|
Loading…
Reference in New Issue
Block a user