mirror of
https://github.com/amix/vimrc
synced 2025-07-06 07:55:00 +08:00
prefinal close
This commit is contained in:
75
sources_non_forked/syntastic/syntax_checkers/go/go.vim
Normal file
75
sources_non_forked/syntastic/syntax_checkers/go/go.vim
Normal file
@ -0,0 +1,75 @@
|
||||
"============================================================================
|
||||
"File: go.vim
|
||||
"Description: Check go syntax using 'gofmt -l' followed by 'go [build|test]'
|
||||
"Maintainer: Kamil Kisiel <kamil@kamilkisiel.net>
|
||||
"License: This program is free software. It comes without any warranty,
|
||||
" to the extent permitted by applicable law. You can redistribute
|
||||
" it and/or modify it under the terms of the Do What The Fuck You
|
||||
" Want To Public License, Version 2, as published by Sam Hocevar.
|
||||
" See http://sam.zoy.org/wtfpl/COPYING for more details.
|
||||
"
|
||||
" This syntax checker does not reformat your source code.
|
||||
" Use a BufWritePre autocommand to that end:
|
||||
" autocmd FileType go autocmd BufWritePre <buffer> Fmt
|
||||
"============================================================================
|
||||
if exists("g:loaded_syntastic_go_go_checker")
|
||||
finish
|
||||
endif
|
||||
let g:loaded_syntastic_go_go_checker=1
|
||||
|
||||
function! SyntaxCheckers_go_go_IsAvailable()
|
||||
return executable('go')
|
||||
endfunction
|
||||
|
||||
function! SyntaxCheckers_go_go_GetLocList()
|
||||
" Check with gofmt first, since `go build` and `go test` might not report
|
||||
" syntax errors in the current file if another file with syntax error is
|
||||
" compiled first.
|
||||
let makeprg = syntastic#makeprg#build({
|
||||
\ 'exe': 'gofmt',
|
||||
\ 'args': '-l',
|
||||
\ 'tail': '1>' . syntastic#util#DevNull(),
|
||||
\ 'filetype': 'go',
|
||||
\ 'subchecker': 'go' })
|
||||
|
||||
let errorformat =
|
||||
\ '%f:%l:%c: %m,' .
|
||||
\ '%-G%.%#'
|
||||
|
||||
let errors = SyntasticMake({
|
||||
\ 'makeprg': makeprg,
|
||||
\ 'errorformat': errorformat,
|
||||
\ 'defaults': {'type': 'e'} })
|
||||
if !empty(errors)
|
||||
return errors
|
||||
endif
|
||||
|
||||
" Test files, i.e. files with a name ending in `_test.go`, are not
|
||||
" compiled by `go build`, therefore `go test` must be called for those.
|
||||
if match(expand('%'), '_test.go$') == -1
|
||||
let makeprg = 'go build ' . syntastic#c#GetNullDevice()
|
||||
else
|
||||
let makeprg = 'go test -c ' . syntastic#c#GetNullDevice()
|
||||
endif
|
||||
|
||||
let errorformat =
|
||||
\ '%f:%l:%c:%m,' .
|
||||
\ '%f:%l%m,' .
|
||||
\ '%-G#%.%#'
|
||||
|
||||
" The go compiler needs to either be run with an import path as an
|
||||
" argument or directly from the package directory. Since figuring out
|
||||
" the proper import path is fickle, just cwd to the package.
|
||||
|
||||
let errors = SyntasticMake({
|
||||
\ 'makeprg': makeprg,
|
||||
\ 'errorformat': errorformat,
|
||||
\ 'cwd': expand('%:p:h'),
|
||||
\ 'defaults': {'type': 'e'} })
|
||||
|
||||
return errors
|
||||
endfunction
|
||||
|
||||
call g:SyntasticRegistry.CreateAndRegisterChecker({
|
||||
\ 'filetype': 'go',
|
||||
\ 'name': 'go'})
|
42
sources_non_forked/syntastic/syntax_checkers/go/gofmt.vim
Normal file
42
sources_non_forked/syntastic/syntax_checkers/go/gofmt.vim
Normal file
@ -0,0 +1,42 @@
|
||||
"============================================================================
|
||||
"File: gofmt.vim
|
||||
"Description: Check go syntax using 'gofmt -l'
|
||||
"Maintainer: Brandon Thomson <bt@brandonthomson.com>
|
||||
"License: This program is free software. It comes without any warranty,
|
||||
" to the extent permitted by applicable law. You can redistribute
|
||||
" it and/or modify it under the terms of the Do What The Fuck You
|
||||
" Want To Public License, Version 2, as published by Sam Hocevar.
|
||||
" See http://sam.zoy.org/wtfpl/COPYING for more details.
|
||||
"
|
||||
" This syntax checker does not reformat your source code.
|
||||
" Use a BufWritePre autocommand to that end:
|
||||
" autocmd FileType go autocmd BufWritePre <buffer> Fmt
|
||||
"============================================================================
|
||||
if exists("g:loaded_syntastic_go_gofmt_checker")
|
||||
finish
|
||||
endif
|
||||
let g:loaded_syntastic_go_gofmt_checker=1
|
||||
|
||||
function! SyntaxCheckers_go_gofmt_IsAvailable()
|
||||
return executable('gofmt')
|
||||
endfunction
|
||||
|
||||
function! SyntaxCheckers_go_gofmt_GetLocList()
|
||||
let makeprg = syntastic#makeprg#build({
|
||||
\ 'exe': 'gofmt',
|
||||
\ 'args': '-l',
|
||||
\ 'tail': '1>' . syntastic#util#DevNull(),
|
||||
\ 'filetype': 'go',
|
||||
\ 'subchecker': 'gofmt' })
|
||||
|
||||
let errorformat = '%f:%l:%c: %m,%-G%.%#'
|
||||
|
||||
return SyntasticMake({
|
||||
\ 'makeprg': makeprg,
|
||||
\ 'errorformat': errorformat,
|
||||
\ 'defaults': {'type': 'e'} })
|
||||
endfunction
|
||||
|
||||
call g:SyntasticRegistry.CreateAndRegisterChecker({
|
||||
\ 'filetype': 'go',
|
||||
\ 'name': 'gofmt'})
|
37
sources_non_forked/syntastic/syntax_checkers/go/golint.vim
Normal file
37
sources_non_forked/syntastic/syntax_checkers/go/golint.vim
Normal file
@ -0,0 +1,37 @@
|
||||
"============================================================================
|
||||
"File: golint.vim
|
||||
"Description: Check go syntax using 'golint'
|
||||
"Maintainer: Hiroshi Ioka <hirochachacha@gmail.com>
|
||||
"License: This program is free software. It comes without any warranty,
|
||||
" to the extent permitted by applicable law. You can redistribute
|
||||
" it and/or modify it under the terms of the Do What The Fuck You
|
||||
" Want To Public License, Version 2, as published by Sam Hocevar.
|
||||
" See http://sam.zoy.org/wtfpl/COPYING for more details.
|
||||
"
|
||||
"============================================================================
|
||||
if exists("g:loaded_syntastic_go_golint_checker")
|
||||
finish
|
||||
endif
|
||||
let g:loaded_syntastic_go_golint_checker=1
|
||||
|
||||
function! SyntaxCheckers_go_golint_IsAvailable()
|
||||
return executable('golint')
|
||||
endfunction
|
||||
|
||||
function! SyntaxCheckers_go_golint_GetLocList()
|
||||
let makeprg = syntastic#makeprg#build({
|
||||
\ 'exe': 'golint',
|
||||
\ 'filetype': 'go',
|
||||
\ 'subchecker': 'golint' })
|
||||
|
||||
let errorformat = '%f:%l:%c: %m,%-G%.%#'
|
||||
|
||||
return SyntasticMake({
|
||||
\ 'makeprg': makeprg,
|
||||
\ 'errorformat': errorformat,
|
||||
\ 'subtype': 'Style' })
|
||||
endfunction
|
||||
|
||||
call g:SyntasticRegistry.CreateAndRegisterChecker({
|
||||
\ 'filetype': 'go',
|
||||
\ 'name': 'golint'})
|
40
sources_non_forked/syntastic/syntax_checkers/go/govet.vim
Normal file
40
sources_non_forked/syntastic/syntax_checkers/go/govet.vim
Normal file
@ -0,0 +1,40 @@
|
||||
"============================================================================
|
||||
"File: govet.vim
|
||||
"Description: Perform static analysis of Go code with the vet tool
|
||||
"Maintainer: Kamil Kisiel <kamil@kamilkisiel.net>
|
||||
"License: This program is free software. It comes without any warranty,
|
||||
" to the extent permitted by applicable law. You can redistribute
|
||||
" it and/or modify it under the terms of the Do What The Fuck You
|
||||
" Want To Public License, Version 2, as published by Sam Hocevar.
|
||||
" See http://sam.zoy.org/wtfpl/COPYING for more details.
|
||||
"
|
||||
"============================================================================
|
||||
if exists("g:loaded_syntastic_go_govet_checker")
|
||||
finish
|
||||
endif
|
||||
let g:loaded_syntastic_go_govet_checker=1
|
||||
|
||||
function! SyntaxCheckers_go_govet_IsAvailable()
|
||||
return executable('go')
|
||||
endfunction
|
||||
|
||||
function! SyntaxCheckers_go_govet_GetLocList()
|
||||
let makeprg = 'go vet'
|
||||
let errorformat = '%Evet: %.%\+: %f:%l:%c: %m,%W%f:%l: %m,%-G%.%#'
|
||||
|
||||
" The go compiler needs to either be run with an import path as an
|
||||
" argument or directly from the package directory. Since figuring out
|
||||
" the proper import path is fickle, just cwd to the package.
|
||||
|
||||
let errors = SyntasticMake({
|
||||
\ 'makeprg': makeprg,
|
||||
\ 'errorformat': errorformat,
|
||||
\ 'cwd': expand('%:p:h'),
|
||||
\ 'defaults': {'type': 'w'} })
|
||||
|
||||
return errors
|
||||
endfunction
|
||||
|
||||
call g:SyntasticRegistry.CreateAndRegisterChecker({
|
||||
\ 'filetype': 'go',
|
||||
\ 'name': 'govet'})
|
Reference in New Issue
Block a user