mirror of
https://github.com/amix/vimrc
synced 2025-07-07 00:15:00 +08:00
Add support with Go language.
This commit is contained in:
43
sources_non_forked/vim-go/ftdetect/gofiletype.vim
Normal file
43
sources_non_forked/vim-go/ftdetect/gofiletype.vim
Normal file
@ -0,0 +1,43 @@
|
||||
" vint: -ProhibitAutocmdWithNoGroup
|
||||
|
||||
" don't spam the user when Vim is started in Vi compatibility mode
|
||||
let s:cpo_save = &cpo
|
||||
set cpo&vim
|
||||
|
||||
" Note: should not use augroup in ftdetect (see :help ftdetect)
|
||||
au BufRead,BufNewFile *.go setfiletype go
|
||||
au BufRead,BufNewFile *.s setfiletype asm
|
||||
au BufRead,BufNewFile *.tmpl set filetype=gohtmltmpl
|
||||
au BufRead,BufNewFile go.sum set filetype=gosum
|
||||
au BufRead,BufNewFile go.work.sum set filetype=gosum
|
||||
au BufRead,BufNewFile go.work set filetype=gowork
|
||||
|
||||
" remove the autocommands for modsim3, and lprolog files so that their
|
||||
" highlight groups, syntax, etc. will not be loaded. *.MOD is included, so
|
||||
" that on case insensitive file systems the module2 autocmds will not be
|
||||
" executed.
|
||||
au! BufRead,BufNewFile *.mod,*.MOD
|
||||
" Set the filetype if the first non-comment and non-blank line starts with
|
||||
" 'module <path>'.
|
||||
au BufRead,BufNewFile go.mod call s:gomod()
|
||||
|
||||
fun! s:gomod()
|
||||
for l:i in range(1, line('$'))
|
||||
let l:l = getline(l:i)
|
||||
if l:l ==# '' || l:l[:1] ==# '//'
|
||||
continue
|
||||
endif
|
||||
|
||||
if l:l =~# '^module .\+'
|
||||
setfiletype gomod
|
||||
endif
|
||||
|
||||
break
|
||||
endfor
|
||||
endfun
|
||||
|
||||
" restore Vi compatibility settings
|
||||
let &cpo = s:cpo_save
|
||||
unlet s:cpo_save
|
||||
|
||||
" vim: sw=2 ts=2 et
|
Reference in New Issue
Block a user