dotfiles/dot_vim/filetype.vim
2024-05-18 18:50:38 -07:00

147 lines
4.6 KiB
VimL

" general per-language filetype file
if exists("g:did_load_personal_filetypes")
finish
endif
let g:did_load_personal_filetypes = 1
" Filetype mappingss
augroup markdown
au! BufRead,BufNewFile *.mkd setfiletype markdown
au! BufRead,BufNewFile *.md setfiletype markdown
augroup END
augroup mako
au! BufRead,BufNewFile *.mak,*.mako setfiletype mako
augroup END
augroup csv
au! BufNewFile,BufRead *.csv setf csv
augroup END
augroup lilypond
au! BufNewFile,BufRead *.ly,*.ily setf lilypond
augroup END
augroup java
autocmd BufRead *.java set efm=%A\ %#[javac]\ %f:%l:\ %m,%-Z\ %#[javac]\ %p^,%-C%.%#
autocmd BufRead *.java set makeprg=ant\ -find\ build.xml
autocmd FileType java let b:auto_trim_whitespace=1
augroup END
augroup less
autocmd BufNewFile,BufRead *.less set filetype=less
augroup END
augroup pcal
au BufNewFile,BufRead *.pcal setf tla
augroup END
augroup ragel
au BufNewFile,BufRead *.rl setf ragel
augroup END
au! BufNewFile,BufRead *.pde setf arduino
"augroup org
"" leave these as is:
"au! BufRead,BufWrite,BufWritePost,BufNewFile *.org
""au BufRead,BufNewFile *.org call org#SetOrgFileType()
""au BufRead,BufNewFile *.org :GitGutterDisable
"au BufRead *.org :PreLoadTags
"au BufWrite *.org :PreWriteTags
"au BufWritePost *.org :PostWriteTags
"augroup END
au BufNewFile,BufRead motd.public,/tmp/motd.public.r.* setf motd
au Filetype html,xml,xsl source ~/.vim/closetag.vim
au BufRead,BufNewFile *.go set filetype=go
au FileType cpp let b:delimitMate_matchpairs = "(:),[:],{:}"
autocmd FileType vue syntax sync fromstart
au Filetype vue let b:AutoPairs = {'(':')', '[':']', '{':'}',"'":"'",'"':'"', '`':'`', '<':'>'}
au Filetype html let b:AutoPairs = {'(':')', '[':']', '{':'}',"'":"'",'"':'"', '`':'`', '<':'>'}
"Settings per filetype
augroup python
""autocmd FileType python set omnifunc=pythoncomplete#Complete
""autocmd FileType python call SuperTabSetCompletionType("<C-X><C-O>")
""autocmd FileType python set completeopt-=preview
autocmd FileType python set ts=4
autocmd FileType python set softtabstop=4
autocmd FileType python set shiftwidth=4
autocmd FileType python set expandtab
autocmd FileType python set nosmartindent
"autocmd FileType python let b:auto_trim_whitespace=1
augroup END
"augroup javascript
"autocmd FileType javascript set ts=4
"autocmd FileType javascript set softtabstop=4
"autocmd FileType javascript set shiftwidth=4
"autocmd FileType javascript set expandtab
"autocmd FileType javascript let b:auto_trim_whitespace=1
"augroup END
augroup hs
autocmd FileType hs nnoremap <Leader>ii :GhcModInfo!<CR>
augroup END
augroup mkd
autocmd FileType mkd set ai formatoptions=tcroqn2 comments=n:&gt;
augroup END
augroup mediawiki
autocmd BufRead,BufNewFile *.wiki setfiletype mediawiki
autocmd BufRead,BufNewFile *.wikipedia.org* setfiletype mediawiki
augroup END
augroup go
autocmd FileType go set ts=2
autocmd FileType go set softtabstop=2
autocmd FileType go set shiftwidth=2
autocmd FileType go set noexpandtab
autocmd FileType go imap <buffer> <silent> <Leader>rr <C-o>:GoIfErr<cr>
autocmd FileType go nmap <buffer> <silent> <Leader>rr :GoIfErr<cr>
autocmd FileType go nnoremap <silent> <Leader>im <cmd>lua require('telescope').extensions.goimpl.goimpl{theme = "ivy", layout_config = {height = 10}}<cr>
"autocmd FileType go nmap <Leader>gd <Plug>(go-doc)
"autocmd FileType go nmap gd <Plug>(go-def)
augroup END
augroup idris
autocmd FileType idris nmap <buffer> <LocalLeader>a a?hole<Esc><LocalLeader>t
augroup end
augroup markdown
autocmd FileType markdown imap <buffer> <S-Tab> <C-o><<
augroup end
autocmd FileType go let b:auto_trim_whitespace=1
autocmd FileType cpp let b:auto_trim_whitespace=1
autocmd FileType perl let b:auto_trim_whitespace=1
autocmd FileType borg let b:auto_trim_whitespace=1
autocmd FileType javascript let b:auto_trim_whitespace=1
autocmd FileType python let b:auto_trim_whitespace=1
autocmd FileType proto let b:auto_trim_whitespace=1
autocmd FileType hy let b:auto_trim_whitespace=1
autocmd FileType idris let b:auto_trim_whitespace=1
autocmd FileType java let b:auto_trim_whitespace=1
autocmd FileType lua let b:auto_trim_whitespace=1
augroup templates
autocmd BufNewFile *.vue 0r ~/.vim/skeletons/vue.skel
autocmd BufNewFile *.svelte 0r ~/.vim/skeletons/svelte.skel
augroup end
augroup rust
autocmd FileType rust nnoremap <Leader>lg <cmd>lua rust_where_at_line()<CR>
augroup end
function DetectGoHtmlTmpl()
if expand('%:e') == "html" && search("{{") != 0
setfiletype gohtmltmpl
endif
endfunction
augroup filetypedetect
" gohtmltmpl
au BufRead,BufNewFile *.html call DetectGoHtmlTmpl()
augroup END