Merge pull request #3576 from cyyever/fish_indent

Fish indent
This commit is contained in:
Horacio Sanson 2021-02-05 22:58:43 +09:00 committed by GitHub
commit f612805801
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
8 changed files with 84 additions and 0 deletions

View file

@ -216,6 +216,11 @@ let s:default_registry = {
\ 'suggested_filetypes': ['cmake'], \ 'suggested_filetypes': ['cmake'],
\ 'description': 'Fix CMake files with cmake-format.', \ 'description': 'Fix CMake files with cmake-format.',
\ }, \ },
\ 'fish_indent': {
\ 'function': 'ale#fixers#fish_indent#Fix',
\ 'suggested_filetypes': ['fish'],
\ 'description': 'Format fish scripts using fish_indent.',
\ },
\ 'gofmt': { \ 'gofmt': {
\ 'function': 'ale#fixers#gofmt#Fix', \ 'function': 'ale#fixers#gofmt#Fix',
\ 'suggested_filetypes': ['go'], \ 'suggested_filetypes': ['go'],

View file

@ -0,0 +1,19 @@
" Author: Chen YuanYuan <cyyever@outlook.com>
" Description: Integration of fish_indent with ALE.
call ale#Set('fish_fish_indent_executable', 'fish_indent')
call ale#Set('fish_fish_indent_options', '')
function! ale#fixers#fish_indent#Fix(buffer) abort
let l:executable = ale#Var(a:buffer, 'fish_fish_indent_executable')
let l:options = ale#Var(a:buffer, 'fish_fish_indent_options')
let l:filename = ale#Escape(bufname(a:buffer))
return {
\ 'command': ale#Escape(l:executable)
\ . ' -w '
\ . (empty(l:options) ? '' : ' ' . l:options)
\ . ' %t',
\ 'read_temporary_file': 1,
\}
endfunction

View file

@ -10,5 +10,22 @@ displaying errors if an error message is not found.
If ALE is not showing any errors but your file does not run as expected, run If ALE is not showing any errors but your file does not run as expected, run
`fish -n <file.fish>` from the command line. `fish -n <file.fish>` from the command line.
===============================================================================
fish_indent *ale-fish-fish_indent*
g:ale_fish_fish_indent_executable *g:ale_fish_fish_indent_executable*
*b:ale_fish_fish_indent_executable*
Type: |String|
Default: `'fish_indent'`
This variable can be changed to use a different executable for fish_indent.
g:ale_fish_fish_indent_options *g:ale_fish_fish_indent_options*
*b:ale_fish_fish_indent_options*
Type: |String|
Default: `''`
This variable can be set to pass additional options to fish_indent.
=============================================================================== ===============================================================================
vim:tw=78:ts=2:sts=2:sw=2:ft=help:norl: vim:tw=78:ts=2:sts=2:sw=2:ft=help:norl:

View file

@ -152,6 +152,7 @@ Notes:
* `erlc` * `erlc`
* Fish * Fish
* `fish` (-n flag) * `fish` (-n flag)
* `fish_indent`
* Fortran * Fortran
* `gcc` * `gcc`
* `language_server` * `language_server`

View file

@ -2699,6 +2699,7 @@ documented in additional help files.
eruby...................................|ale-eruby-options| eruby...................................|ale-eruby-options|
ruumba................................|ale-eruby-ruumba| ruumba................................|ale-eruby-ruumba|
fish....................................|ale-fish-options| fish....................................|ale-fish-options|
fish_indent...........................|ale-fish-fish_indent|
fortran.................................|ale-fortran-options| fortran.................................|ale-fortran-options|
gcc...................................|ale-fortran-gcc| gcc...................................|ale-fortran-gcc|
language_server.......................|ale-fortran-language-server| language_server.......................|ale-fortran-language-server|

View file

@ -161,6 +161,7 @@ formatting.
* [erlc](http://erlang.org/doc/man/erlc.html) * [erlc](http://erlang.org/doc/man/erlc.html)
* Fish * Fish
* fish [-n flag](https://linux.die.net/man/1/fish) * fish [-n flag](https://linux.die.net/man/1/fish)
* [fish_indent](https://fishshell.com/docs/current/cmds/fish_indent.html)
* Fortran * Fortran
* [gcc](https://gcc.gnu.org/) * [gcc](https://gcc.gnu.org/)
* [language_server](https://github.com/hansec/fortran-language-server) * [language_server](https://github.com/hansec/fortran-language-server)

View file

View file

@ -0,0 +1,40 @@
Before:
Save g:ale_fish_fish_indent_executable
Save g:ale_fish_fish_indent_options
" Use an invalid global executable, so we don't match it.
let g:ale_fish_fish_indent_executable = 'xxxinvalid'
let g:ale_fish_fish_indent_options = ''
call ale#test#SetDirectory('/testplugin/test/fixers')
After:
Restore
call ale#test#RestoreDirectory()
Execute(The fish_indent callback should return the correct default values):
call ale#test#SetFilename('../fish_files/testfile.fish')
AssertEqual
\ {
\ 'read_temporary_file': 1,
\ 'command': ale#Escape('xxxinvalid')
\ . ' -w '
\ . ' %t',
\ },
\ ale#fixers#fish_indent#Fix(bufnr(''))
Execute(The fish_indent callback should include custom fish_indent options):
let g:ale_fish_fish_indent_options = "-d"
call ale#test#SetFilename('../fish_files/testfile.fish')
AssertEqual
\ {
\ 'read_temporary_file': 1,
\ 'command': ale#Escape('xxxinvalid')
\ . ' -w '
\ . ' -d'
\ . ' %t',
\ },
\ ale#fixers#fish_indent#Fix(bufnr(''))