Allow custom filters for the jq fixer (#1980)

* Allow the jq filters to receive custom filters.
* Update documentation.
This commit is contained in:
Aliou Diallo 2018-10-12 10:15:32 +02:00 committed by w0rp
parent e5b5ce9f51
commit b7ec11c93d
3 changed files with 28 additions and 2 deletions

View file

@ -1,5 +1,6 @@
call ale#Set('json_jq_executable', 'jq')
call ale#Set('json_jq_options', '')
call ale#Set('json_jq_filters', '.')
function! ale#fixers#jq#GetExecutable(buffer) abort
return ale#Var(a:buffer, 'json_jq_executable')
@ -7,9 +8,15 @@ endfunction
function! ale#fixers#jq#Fix(buffer) abort
let l:options = ale#Var(a:buffer, 'json_jq_options')
let l:filters = ale#Var(a:buffer, 'json_jq_filters')
if empty(l:filters)
return 0
endif
return {
\ 'command': ale#Escape(ale#fixers#jq#GetExecutable(a:buffer))
\ . ' . ' . l:options,
\ . ' ' . l:filters . ' '
\ . l:options,
\}
endfunction

View file

@ -73,6 +73,13 @@ g:ale_json_jq_options *g:ale_json_jq_options*
This option can be changed to pass extra options to `jq`.
g:ale_json_jq_filters *g:ale_json_jq_filters*
*b:ale_json_jq_filters*
Type: |String|
Default: `'.'`
This option can be changed to pass custom filters to `jq`.
===============================================================================
prettier *ale-json-prettier*

View file

@ -1,6 +1,7 @@
Before:
Save g:ale_json_jq_executable
Save g:ale_json_jq_options
Save g:ale_json_jq_filters
After:
Restore
@ -8,7 +9,18 @@ After:
Execute(The jq fixer should use the options you set):
let g:ale_json_jq_executable = 'foo'
let g:ale_json_jq_options = '--bar'
let g:ale_json_jq_filters = '.baz'
AssertEqual
\ {'command': ale#Escape('foo') . ' . --bar'},
\ {'command': ale#Escape('foo') . ' .baz --bar'},
\ ale#fixers#jq#Fix(bufnr(''))
Execute(The jq fixer should return 0 when there are no filters):
let g:ale_json_jq_executable = 'jq'
let g:ale_json_jq_options = ''
let g:ale_json_jq_filters = ''
AssertEqual
\ 0,
\ ale#fixers#jq#Fix(bufnr(''))