mirror of
https://github.com/dense-analysis/ale.git
synced 2025-12-06 12:44:23 +08:00
Add erlfmt fixer to the registry and use it with stdin (#4868)
Some checks failed
CI / build_image (push) Has been cancelled
CI / test_ale (--linters-only) (push) Has been cancelled
CI / test_ale (--neovim-06-only) (push) Has been cancelled
CI / test_ale (--neovim-08-only) (push) Has been cancelled
CI / test_ale (--vim-80-only) (push) Has been cancelled
CI / test_ale (--vim-90-only) (push) Has been cancelled
Some checks failed
CI / build_image (push) Has been cancelled
CI / test_ale (--linters-only) (push) Has been cancelled
CI / test_ale (--neovim-06-only) (push) Has been cancelled
CI / test_ale (--neovim-08-only) (push) Has been cancelled
CI / test_ale (--vim-80-only) (push) Has been cancelled
CI / test_ale (--vim-90-only) (push) Has been cancelled
* Add erlfmt fixer to the registry Without this, the fixer will not appear in the list of suggested tools and cannot be used without additional configuration. * Handle stdin in the erlfmt fixer command Previously, the full path to the file being edited was used, which resulted in the loss of unsaved changes. * Add executable selection tests for erlfmt fixer
This commit is contained in:
committed by
GitHub
parent
c9df465148
commit
0551602b19
@@ -1,25 +1,34 @@
|
||||
Before:
|
||||
Save b:ale_elm_format_executable
|
||||
Save b:ale_elm_format_options
|
||||
|
||||
let b:ale_elm_format_executable = 'erlfmt'
|
||||
let b:ale_elm_format_options = ''
|
||||
call ale#assert#SetUpFixerTest('erlang', 'erlfmt')
|
||||
|
||||
After:
|
||||
Restore
|
||||
unlet! b:root
|
||||
|
||||
call ale#assert#TearDownFixerTest()
|
||||
|
||||
Execute(The local erlfmt executable should be used by default):
|
||||
" Not sure if this is a good default though. It seems to imply
|
||||
" that the executable is committed to the repository.
|
||||
|
||||
let b:root = '../test-files/erlang/app_with_erlfmt'
|
||||
|
||||
call ale#test#SetFilename(b:root . '/src/app.erl')
|
||||
AssertFixer {
|
||||
\ 'command': ale#Escape(ale#test#GetFilename(b:root . '/erlfmt')) . ' -',
|
||||
\}
|
||||
|
||||
Execute(The global erlfmt executable should be configurable):
|
||||
let b:root = '../test-files/erlang/app_with_erlfmt'
|
||||
|
||||
let b:ale_erlang_erlfmt_executable = '/path/to/erlfmt'
|
||||
let b:ale_erlang_erlfmt_use_global = 1
|
||||
|
||||
call ale#test#SetFilename(b:root . '/src/app.erl')
|
||||
AssertFixer {'command': ale#Escape('/path/to/erlfmt') . ' -'}
|
||||
|
||||
Execute(The erlfmt command should handle empty options):
|
||||
AssertEqual
|
||||
\ {
|
||||
\ 'command': ale#Escape('erlfmt') . ' %s'
|
||||
\ },
|
||||
\ ale#fixers#erlfmt#Fix(bufnr(''))
|
||||
AssertFixer {'command': ale#Escape('erlfmt') . ' -'}
|
||||
|
||||
Execute(The erlfmt command should handle custom options):
|
||||
let b:ale_erlang_erlfmt_options = '--insert-pragma'
|
||||
|
||||
AssertEqual
|
||||
\ {
|
||||
\ 'command': ale#Escape('erlfmt') . ' --insert-pragma %s'
|
||||
\ },
|
||||
\ ale#fixers#erlfmt#Fix(bufnr(''))
|
||||
AssertFixer {'command': ale#Escape('erlfmt') . ' --insert-pragma -'}
|
||||
|
||||
Reference in New Issue
Block a user