Allow passing options to mix_format
This commit is contained in:
parent
0a0535546f
commit
6320ce6674
@ -1,16 +1,23 @@
|
|||||||
" Author: carakan <carakan@gmail.com>
|
" Author: carakan <carakan@gmail.com>, Fernando Mendes <fernando@mendes.codes>
|
||||||
" Description: Fixing files with elixir formatter 'mix format'.
|
" Description: Fixing files with elixir formatter 'mix format'.
|
||||||
|
|
||||||
call ale#Set('elixir_mix_executable', 'mix')
|
call ale#Set('elixir_mix_executable', 'mix')
|
||||||
|
call ale#Set('elixir_mix_format_options', '')
|
||||||
|
|
||||||
function! ale#fixers#mix_format#GetExecutable(buffer) abort
|
function! ale#fixers#mix_format#GetExecutable(buffer) abort
|
||||||
return ale#Var(a:buffer, 'elixir_mix_executable')
|
return ale#Var(a:buffer, 'elixir_mix_executable')
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
|
function! ale#fixers#mix_format#GetCommand(buffer) abort
|
||||||
|
let l:executable = ale#Escape(ale#fixers#mix_format#GetExecutable(a:buffer))
|
||||||
|
let l:options = ale#Var(a:buffer, 'elixir_mix_format_options')
|
||||||
|
|
||||||
|
return l:executable . ' format ' . l:options . ' %t'
|
||||||
|
endfunction
|
||||||
|
|
||||||
function! ale#fixers#mix_format#Fix(buffer) abort
|
function! ale#fixers#mix_format#Fix(buffer) abort
|
||||||
return {
|
return {
|
||||||
\ 'command': ale#Escape(ale#fixers#mix_format#GetExecutable(a:buffer))
|
\ 'command': ale#fixers#mix_format#GetCommand(a:buffer),
|
||||||
\ . ' format %t',
|
|
||||||
\ 'read_temporary_file': 1,
|
\ 'read_temporary_file': 1,
|
||||||
\}
|
\}
|
||||||
endfunction
|
endfunction
|
||||||
|
@ -13,6 +13,18 @@ g:ale_elixir_mix_options *g:ale_elixir_mix_options*
|
|||||||
|
|
||||||
This variable can be changed to specify the mix executable.
|
This variable can be changed to specify the mix executable.
|
||||||
|
|
||||||
|
===============================================================================
|
||||||
|
mix_format *ale-elixir-mix-format*
|
||||||
|
|
||||||
|
g:ale_elixir_mix_format_options *g:ale_elixir_mix_format_options*
|
||||||
|
*b:ale_elixir_mix_format_options*
|
||||||
|
Type: |String|
|
||||||
|
Default: `''`
|
||||||
|
|
||||||
|
|
||||||
|
This variable can be changed to specify the mix options passed to the
|
||||||
|
mix_format fixer
|
||||||
|
|
||||||
===============================================================================
|
===============================================================================
|
||||||
dialyxir *ale-elixir-dialyxir*
|
dialyxir *ale-elixir-dialyxir*
|
||||||
|
|
||||||
|
@ -59,6 +59,7 @@ CONTENTS *ale-contents*
|
|||||||
hadolint............................|ale-dockerfile-hadolint|
|
hadolint............................|ale-dockerfile-hadolint|
|
||||||
elixir................................|ale-elixir-options|
|
elixir................................|ale-elixir-options|
|
||||||
mix.................................|ale-elixir-mix|
|
mix.................................|ale-elixir-mix|
|
||||||
|
mix_format..........................|ale-elixir-mix-format|
|
||||||
dialyxir............................|ale-elixir-dialyxir|
|
dialyxir............................|ale-elixir-dialyxir|
|
||||||
elm...................................|ale-elm-options|
|
elm...................................|ale-elm-options|
|
||||||
elm-format..........................|ale-elm-elm-format|
|
elm-format..........................|ale-elm-elm-format|
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
Before:
|
Before:
|
||||||
call ale#test#SetDirectory('/testplugin/test/fixers')
|
call ale#test#SetDirectory('/testplugin/test/fixers')
|
||||||
Save g:ale_elixir_mix_executable
|
Save g:ale_elixir_mix_executable
|
||||||
|
Save g:ale_elixir_mix_format_options
|
||||||
|
|
||||||
let g:ale_elixir_mix_executable = 'xxxinvalid'
|
let g:ale_elixir_mix_executable = 'xxxinvalid'
|
||||||
|
|
||||||
@ -14,7 +15,18 @@ Execute(The mix_format callback should return the correct default values):
|
|||||||
\ {
|
\ {
|
||||||
\ 'read_temporary_file': 1,
|
\ 'read_temporary_file': 1,
|
||||||
\ 'command': ale#Escape('xxxinvalid')
|
\ 'command': ale#Escape('xxxinvalid')
|
||||||
\ . ' format %t',
|
\ . ' format %t',
|
||||||
\ },
|
\ },
|
||||||
\ ale#fixers#mix_format#Fix(bufnr(''))
|
\ ale#fixers#mix_format#Fix(bufnr(''))
|
||||||
|
|
||||||
|
Execute(The mix_format callback should include the correct format options):
|
||||||
|
let g:ale_elixir_mix_format_options = 'invalid_options'
|
||||||
|
call ale#test#SetFilename('../elixir-test-files/testfile.ex')
|
||||||
|
|
||||||
|
AssertEqual
|
||||||
|
\ {
|
||||||
|
\ 'read_temporary_file': 1,
|
||||||
|
\ 'command': ale#Escape('xxxinvalid')
|
||||||
|
\ . ' format invalid_options %t',
|
||||||
|
\ },
|
||||||
|
\ ale#fixers#mix_format#Fix(bufnr(''))
|
||||||
|
Loading…
Reference in New Issue
Block a user