mirror of https://github.com/dense-analysis/ale
parent
3ab414de1a
commit
e376f0ae44
|
@ -92,6 +92,11 @@ let s:default_registry = {
|
|||
\ 'suggested_filetypes': ['c', 'cpp'],
|
||||
\ 'description': 'Fix C/C++ files with clang-format.',
|
||||
\ },
|
||||
\ 'gofmt': {
|
||||
\ 'function': 'ale#fixers#gofmt#Fix',
|
||||
\ 'suggested_filetypes': ['go'],
|
||||
\ 'description': 'Fix Go files with go fmt.',
|
||||
\ },
|
||||
\}
|
||||
|
||||
" Reset the function registry to the default entries.
|
||||
|
|
|
@ -0,0 +1,18 @@
|
|||
" Author: aliou <code@aliou.me>
|
||||
" Description: Integration of gofmt with ALE.
|
||||
|
||||
call ale#Set('go_gofmt_executable', 'gofmt')
|
||||
call ale#Set('go_gofmt_options', '')
|
||||
|
||||
function! ale#fixers#gofmt#Fix(buffer) abort
|
||||
let l:executable = ale#Var(a:buffer, 'go_gofmt_executable')
|
||||
let l:options = ale#Var(a:buffer, 'go_gofmt_options')
|
||||
|
||||
return {
|
||||
\ 'command': ale#Escape(l:executable)
|
||||
\ . ' -l -w'
|
||||
\ . (empty(l:options) ? '' : ' ' . l:options)
|
||||
\ . ' %t',
|
||||
\ 'read_temporary_file': 1,
|
||||
\}
|
||||
endfunction
|
|
@ -20,6 +20,16 @@ the benefit of running a number of linters, more than ALE would by default,
|
|||
while ensuring it doesn't run any linters known to be slow or resource
|
||||
intensive.
|
||||
|
||||
===============================================================================
|
||||
gofmt *ale-go-gofmt*
|
||||
|
||||
g:ale_go_gofmt_options *g:ale_go_gofmt_options*
|
||||
*b:ale_go_gofmt_options*
|
||||
Type: |String|
|
||||
Default: `''`
|
||||
|
||||
This variable can be set to pass additional options to the gofmt fixer.
|
||||
|
||||
===============================================================================
|
||||
gometalinter *ale-go-gometalinter*
|
||||
|
||||
|
|
|
@ -62,6 +62,7 @@ CONTENTS *ale-contents*
|
|||
glsl..................................|ale-glsl-options|
|
||||
glslang.............................|ale-glsl-glslang|
|
||||
go....................................|ale-go-options|
|
||||
gofmt...............................|ale-go-gofmt|
|
||||
gometalinter........................|ale-go-gometalinter|
|
||||
graphql...............................|ale-graphql-options|
|
||||
gqlint..............................|ale-graphql-gqlint|
|
||||
|
|
|
@ -0,0 +1,40 @@
|
|||
Before:
|
||||
Save g:ale_go_gofmt_executable
|
||||
Save g:ale_go_gofmt_options
|
||||
|
||||
" Use an invalid global executable, so we don't match it.
|
||||
let g:ale_go_gofmt_executable = 'xxxinvalid'
|
||||
let g:ale_go_gofmt_options = ''
|
||||
|
||||
call ale#test#SetDirectory('/testplugin/test/fixers')
|
||||
|
||||
After:
|
||||
Restore
|
||||
|
||||
call ale#test#RestoreDirectory()
|
||||
|
||||
Execute(The gofmt callback should return the correct default values):
|
||||
call ale#test#SetFilename('../go_files/testfile.go')
|
||||
|
||||
AssertEqual
|
||||
\ {
|
||||
\ 'read_temporary_file': 1,
|
||||
\ 'command': ale#Escape('xxxinvalid')
|
||||
\ . ' -l -w'
|
||||
\ . ' %t',
|
||||
\ },
|
||||
\ ale#fixers#gofmt#Fix(bufnr(''))
|
||||
|
||||
Execute(The gofmt callback should include custom gofmt options):
|
||||
let g:ale_go_gofmt_options = "-r '(a) -> a'"
|
||||
call ale#test#SetFilename('../go_files/testfile.go')
|
||||
|
||||
AssertEqual
|
||||
\ {
|
||||
\ 'read_temporary_file': 1,
|
||||
\ 'command': ale#Escape('xxxinvalid')
|
||||
\ . ' -l -w'
|
||||
\ . ' ' . g:ale_go_gofmt_options
|
||||
\ . ' %t',
|
||||
\ },
|
||||
\ ale#fixers#gofmt#Fix(bufnr(''))
|
Loading…
Reference in New Issue