diff options
Diffstat (limited to 'ftplugin')
-rw-r--r-- | ftplugin/julia.vim | 7 | ||||
-rw-r--r-- | ftplugin/mustache.vim | 4 | ||||
-rw-r--r-- | ftplugin/rust.vim | 276 | ||||
-rw-r--r-- | ftplugin/terraform.vim | 4 | ||||
-rw-r--r-- | ftplugin/vue.vim | 5 |
5 files changed, 148 insertions, 148 deletions
diff --git a/ftplugin/julia.vim b/ftplugin/julia.vim index caddabaf..bed55a8f 100644 --- a/ftplugin/julia.vim +++ b/ftplugin/julia.vim @@ -34,7 +34,10 @@ if exists("loaded_matchit") " note: begin_keywords must contain all blocks in order " for nested-structures-skipping to work properly let b:julia_begin_keywords = '\%(\%(\.\s*\)\@<!\|\%(@\s*.\s*\)\@<=\)\<\%(\%(staged\)\?function\|macro\|begin\|mutable\s\+struct\|\%(mutable\s\+\)\@<!struct\|\%(abstract\|primitive\)\s\+type\|\%(\(abstract\|primitive\)\s\+\)\@<!type\|immutable\|let\|do\|\%(bare\)\?module\|quote\|if\|for\|while\|try\)\>' - let s:macro_regex = '@\%(#\@!\S\)\+\s\+' + " note: the following regex not only recognizes macros, but also local/global keywords. + " the purpose is recognizing things like `@inline myfunction()` + " or `global myfunction(...)` etc, for matchit and block movement functionality + let s:macro_regex = '\%(@\%(#\@!\S\)\+\|\<\%(local\|global\)\)\s\+' let s:nomacro = '\%(' . s:macro_regex . '\)\@<!' let s:yesmacro = s:nomacro . '\%('. s:macro_regex . '\)\+' let b:julia_begin_keywordsm = '\%(' . s:yesmacro . b:julia_begin_keywords . '\)\|' @@ -46,7 +49,7 @@ if exists("loaded_matchit") let [l,c] = [line('.'),col('.')] let attr = synIDattr(synID(l, c, 1),"name") let c1 = c - while attr == 'juliaMacro' + while attr == 'juliaMacro' || expand('<cword>') =~# '\<\%(global\|local\)\>' normal! W if line('.') > l || col('.') == c1 call cursor(l, c) diff --git a/ftplugin/mustache.vim b/ftplugin/mustache.vim index 69b53620..a057c092 100644 --- a/ftplugin/mustache.vim +++ b/ftplugin/mustache.vim @@ -1,9 +1,9 @@ if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'handlebars') == -1 -if exists('g:loaded_mustache_handlebars') && g:loaded_mustache_handlebars +if exists('b:loaded_mustache_handlebars') finish endif -let g:loaded_mustache_handlebars = 1 +let b:loaded_mustache_handlebars = 1 let s:cpo_save = &cpo set cpo&vim diff --git a/ftplugin/rust.vim b/ftplugin/rust.vim index ead86d13..cdc318f1 100644 --- a/ftplugin/rust.vim +++ b/ftplugin/rust.vim @@ -17,176 +17,178 @@ let s:save_cpo = &cpo set cpo&vim " vint: +ProhibitAbbreviationOption -augroup rust.vim - autocmd! - - if get(b:, 'current_compiler', '') ==# '' - if strlen(findfile('Cargo.toml', '.;')) > 0 - compiler cargo - else - compiler rustc - endif - endif - - " Variables {{{1 - - " The rust source code at present seems to typically omit a leader on /*! - " comments, so we'll use that as our default, but make it easy to switch. - " This does not affect indentation at all (I tested it with and without - " leader), merely whether a leader is inserted by default or not. - if get(g:, 'rust_bang_comment_leader', 0) - " Why is the `,s0:/*,mb:\ ,ex:*/` there, you ask? I don't understand why, - " but without it, */ gets indented one space even if there were no - " leaders. I'm fairly sure that's a Vim bug. - setlocal comments=s1:/*,mb:*,ex:*/,s0:/*,mb:\ ,ex:*/,:///,://!,:// +if get(b:, 'current_compiler', '') ==# '' + if strlen(findfile('Cargo.toml', '.;')) > 0 + compiler cargo else - setlocal comments=s0:/*!,m:\ ,ex:*/,s1:/*,mb:*,ex:*/,:///,://!,:// - endif - setlocal commentstring=//%s - setlocal formatoptions-=t formatoptions+=croqnl - " j was only added in 7.3.541, so stop complaints about its nonexistence - silent! setlocal formatoptions+=j - - " smartindent will be overridden by indentexpr if filetype indent is on, but - " otherwise it's better than nothing. - setlocal smartindent nocindent - - if get(g:, 'rust_recommended_style', 1) - let b:rust_set_style = 1 - setlocal tabstop=8 shiftwidth=4 softtabstop=4 expandtab - setlocal textwidth=99 + compiler rustc endif +endif - " This includeexpr isn't perfect, but it's a good start - setlocal includeexpr=substitute(v:fname,'::','/','g') +" Variables {{{1 + +" The rust source code at present seems to typically omit a leader on /*! +" comments, so we'll use that as our default, but make it easy to switch. +" This does not affect indentation at all (I tested it with and without +" leader), merely whether a leader is inserted by default or not. +if get(g:, 'rust_bang_comment_leader', 0) + " Why is the `,s0:/*,mb:\ ,ex:*/` there, you ask? I don't understand why, + " but without it, */ gets indented one space even if there were no + " leaders. I'm fairly sure that's a Vim bug. + setlocal comments=s1:/*,mb:*,ex:*/,s0:/*,mb:\ ,ex:*/,:///,://!,:// +else + setlocal comments=s0:/*!,m:\ ,ex:*/,s1:/*,mb:*,ex:*/,:///,://!,:// +endif +setlocal commentstring=//%s +setlocal formatoptions-=t formatoptions+=croqnl +" j was only added in 7.3.541, so stop complaints about its nonexistence +silent! setlocal formatoptions+=j + +" smartindent will be overridden by indentexpr if filetype indent is on, but +" otherwise it's better than nothing. +setlocal smartindent nocindent + +if get(g:, 'rust_recommended_style', 1) + let b:rust_set_style = 1 + setlocal tabstop=8 shiftwidth=4 softtabstop=4 expandtab + setlocal textwidth=99 +endif + +" This includeexpr isn't perfect, but it's a good start +setlocal includeexpr=substitute(v:fname,'::','/','g') - setlocal suffixesadd=.rs +setlocal suffixesadd=.rs - if exists("g:ftplugin_rust_source_path") - let &l:path=g:ftplugin_rust_source_path . ',' . &l:path +if exists("g:ftplugin_rust_source_path") + let &l:path=g:ftplugin_rust_source_path . ',' . &l:path +endif + +if exists("g:loaded_delimitMate") + if exists("b:delimitMate_excluded_regions") + let b:rust_original_delimitMate_excluded_regions = b:delimitMate_excluded_regions endif - if exists("g:loaded_delimitMate") - if exists("b:delimitMate_excluded_regions") - let b:rust_original_delimitMate_excluded_regions = b:delimitMate_excluded_regions - endif + augroup rust.vim.DelimitMate + autocmd! autocmd User delimitMate_map :call rust#delimitmate#onMap() autocmd User delimitMate_unmap :call rust#delimitmate#onUnmap() - endif + augroup END +endif - " Integration with auto-pairs (https://github.com/jiangmiao/auto-pairs) - if exists("g:AutoPairsLoaded") && !get(g:, 'rust_keep_autopairs_default', 0) - let b:AutoPairs = {'(':')', '[':']', '{':'}','"':'"', '`':'`'} - endif +" Integration with auto-pairs (https://github.com/jiangmiao/auto-pairs) +if exists("g:AutoPairsLoaded") && !get(g:, 'rust_keep_autopairs_default', 0) + let b:AutoPairs = {'(':')', '[':']', '{':'}','"':'"', '`':'`'} +endif - if has("folding") && get(g:, 'rust_fold', 0) - let b:rust_set_foldmethod=1 - setlocal foldmethod=syntax - if g:rust_fold == 2 - setlocal foldlevel< - else - setlocal foldlevel=99 - endif +if has("folding") && get(g:, 'rust_fold', 0) + let b:rust_set_foldmethod=1 + setlocal foldmethod=syntax + if g:rust_fold == 2 + setlocal foldlevel< + else + setlocal foldlevel=99 endif +endif - if has('conceal') && get(g:, 'rust_conceal', 0) - let b:rust_set_conceallevel=1 - setlocal conceallevel=2 - endif +if has('conceal') && get(g:, 'rust_conceal', 0) + let b:rust_set_conceallevel=1 + setlocal conceallevel=2 +endif - " Motion Commands {{{1 +" Motion Commands {{{1 - " Bind motion commands to support hanging indents - nnoremap <silent> <buffer> [[ :call rust#Jump('n', 'Back')<CR> - nnoremap <silent> <buffer> ]] :call rust#Jump('n', 'Forward')<CR> - xnoremap <silent> <buffer> [[ :call rust#Jump('v', 'Back')<CR> - xnoremap <silent> <buffer> ]] :call rust#Jump('v', 'Forward')<CR> - onoremap <silent> <buffer> [[ :call rust#Jump('o', 'Back')<CR> - onoremap <silent> <buffer> ]] :call rust#Jump('o', 'Forward')<CR> +" Bind motion commands to support hanging indents +nnoremap <silent> <buffer> [[ :call rust#Jump('n', 'Back')<CR> +nnoremap <silent> <buffer> ]] :call rust#Jump('n', 'Forward')<CR> +xnoremap <silent> <buffer> [[ :call rust#Jump('v', 'Back')<CR> +xnoremap <silent> <buffer> ]] :call rust#Jump('v', 'Forward')<CR> +onoremap <silent> <buffer> [[ :call rust#Jump('o', 'Back')<CR> +onoremap <silent> <buffer> ]] :call rust#Jump('o', 'Forward')<CR> - " Commands {{{1 +" Commands {{{1 - " See |:RustRun| for docs - command! -nargs=* -complete=file -bang -buffer RustRun call rust#Run(<bang>0, <q-args>) +" See |:RustRun| for docs +command! -nargs=* -complete=file -bang -buffer RustRun call rust#Run(<bang>0, <q-args>) - " See |:RustExpand| for docs - command! -nargs=* -complete=customlist,rust#CompleteExpand -bang -buffer RustExpand call rust#Expand(<bang>0, <q-args>) +" See |:RustExpand| for docs +command! -nargs=* -complete=customlist,rust#CompleteExpand -bang -buffer RustExpand call rust#Expand(<bang>0, <q-args>) - " See |:RustEmitIr| for docs - command! -nargs=* -buffer RustEmitIr call rust#Emit("llvm-ir", <q-args>) +" See |:RustEmitIr| for docs +command! -nargs=* -buffer RustEmitIr call rust#Emit("llvm-ir", <q-args>) - " See |:RustEmitAsm| for docs - command! -nargs=* -buffer RustEmitAsm call rust#Emit("asm", <q-args>) +" See |:RustEmitAsm| for docs +command! -nargs=* -buffer RustEmitAsm call rust#Emit("asm", <q-args>) - " See |:RustPlay| for docs - command! -range=% RustPlay :call rust#Play(<count>, <line1>, <line2>, <f-args>) +" See |:RustPlay| for docs +command! -range=% RustPlay :call rust#Play(<count>, <line1>, <line2>, <f-args>) - " See |:RustFmt| for docs - command! -buffer RustFmt call rustfmt#Format() +" See |:RustFmt| for docs +command! -buffer RustFmt call rustfmt#Format() - " See |:RustFmtRange| for docs - command! -range -buffer RustFmtRange call rustfmt#FormatRange(<line1>, <line2>) +" See |:RustFmtRange| for docs +command! -range -buffer RustFmtRange call rustfmt#FormatRange(<line1>, <line2>) - " See |:RustInfo| for docs - command! -bar RustInfo call rust#debugging#Info() +" See |:RustInfo| for docs +command! -bar RustInfo call rust#debugging#Info() - " See |:RustInfoToClipboard| for docs - command! -bar RustInfoToClipboard call rust#debugging#InfoToClipboard() +" See |:RustInfoToClipboard| for docs +command! -bar RustInfoToClipboard call rust#debugging#InfoToClipboard() - " See |:RustInfoToFile| for docs - command! -bar -nargs=1 RustInfoToFile call rust#debugging#InfoToFile(<f-args>) +" See |:RustInfoToFile| for docs +command! -bar -nargs=1 RustInfoToFile call rust#debugging#InfoToFile(<f-args>) - " See |:RustTest| for docs - command! -buffer -nargs=* -bang RustTest call rust#Test(<bang>0, <q-args>) +" See |:RustTest| for docs +command! -buffer -nargs=* -bang RustTest call rust#Test(<bang>0, <q-args>) - if !exists("b:rust_last_rustc_args") || !exists("b:rust_last_args") - let b:rust_last_rustc_args = [] - let b:rust_last_args = [] - endif +if !exists("b:rust_last_rustc_args") || !exists("b:rust_last_args") + let b:rust_last_rustc_args = [] + let b:rust_last_args = [] +endif - " Cleanup {{{1 - - let b:undo_ftplugin = " - \ setlocal formatoptions< comments< commentstring< includeexpr< suffixesadd< - \|if exists('b:rust_set_style') - \|setlocal tabstop< shiftwidth< softtabstop< expandtab< textwidth< - \|endif - \|if exists('b:rust_original_delimitMate_excluded_regions') - \|let b:delimitMate_excluded_regions = b:rust_original_delimitMate_excluded_regions - \|unlet b:rust_original_delimitMate_excluded_regions - \|else - \|unlet! b:delimitMate_excluded_regions +" Cleanup {{{1 + +let b:undo_ftplugin = " + \ setlocal formatoptions< comments< commentstring< includeexpr< suffixesadd< + \|if exists('b:rust_set_style') + \|setlocal tabstop< shiftwidth< softtabstop< expandtab< textwidth< + \|endif + \|if exists('b:rust_original_delimitMate_excluded_regions') + \|let b:delimitMate_excluded_regions = b:rust_original_delimitMate_excluded_regions + \|unlet b:rust_original_delimitMate_excluded_regions + \|else + \|unlet! b:delimitMate_excluded_regions + \|endif + \|if exists('b:rust_set_foldmethod') + \|setlocal foldmethod< foldlevel< + \|unlet b:rust_set_foldmethod \|endif - \|if exists('b:rust_set_foldmethod') - \|setlocal foldmethod< foldlevel< - \|unlet b:rust_set_foldmethod + \|if exists('b:rust_set_conceallevel') + \|setlocal conceallevel< + \|unlet b:rust_set_conceallevel \|endif - \|if exists('b:rust_set_conceallevel') - \|setlocal conceallevel< - \|unlet b:rust_set_conceallevel - \|endif - \|unlet! b:rust_last_rustc_args b:rust_last_args - \|delcommand RustRun - \|delcommand RustExpand - \|delcommand RustEmitIr - \|delcommand RustEmitAsm - \|delcommand RustPlay - \|nunmap <buffer> [[ - \|nunmap <buffer> ]] - \|xunmap <buffer> [[ - \|xunmap <buffer> ]] - \|ounmap <buffer> [[ - \|ounmap <buffer> ]] - \|setlocal matchpairs-=<:> - \|unlet b:match_skip - \" - - " }}}1 - - " Code formatting on save + \|unlet! b:rust_last_rustc_args b:rust_last_args + \|delcommand RustRun + \|delcommand RustExpand + \|delcommand RustEmitIr + \|delcommand RustEmitAsm + \|delcommand RustPlay + \|nunmap <buffer> [[ + \|nunmap <buffer> ]] + \|xunmap <buffer> [[ + \|xunmap <buffer> ]] + \|ounmap <buffer> [[ + \|ounmap <buffer> ]] + \|setlocal matchpairs-=<:> + \|unlet b:match_skip + \" + +" }}}1 + +" Code formatting on save +augroup rust.vim.PreWrite + autocmd! autocmd BufWritePre <buffer> silent! call rustfmt#PreWrite() - augroup END setlocal matchpairs+=<:> diff --git a/ftplugin/terraform.vim b/ftplugin/terraform.vim index ce646377..bbebacbc 100644 --- a/ftplugin/terraform.vim +++ b/ftplugin/terraform.vim @@ -61,9 +61,9 @@ endfunction augroup terraform autocmd! - autocmd VimEnter * + autocmd BufEnter * \ command! -nargs=+ -complete=custom,s:commands Terraform execute '!terraform '.<q-args>. ' -no-color' - autocmd VimEnter * command! -nargs=0 TerraformFmt call terraform#fmt() + autocmd BufEnter * command! -nargs=0 TerraformFmt call terraform#fmt() if get(g:, "terraform_fmt_on_save", 1) autocmd BufWritePre *.tf call terraform#fmt() autocmd BufWritePre *.tfvars call terraform#fmt() diff --git a/ftplugin/vue.vim b/ftplugin/vue.vim index 2f57d65d..194bf6fe 100644 --- a/ftplugin/vue.vim +++ b/ftplugin/vue.vim @@ -20,9 +20,4 @@ if !exists('g:no_plugin_maps') && !exists('g:no_vue_maps') nnoremap <silent> <buffer> ][ :call search('^</\(template\<Bar>script\<Bar>style\)', 'W')<CR> endif -" Run only ESLint for Vue files by default. -" linters specifically for Vue can still be loaded. -let b:ale_linter_aliases = get(get(g:, 'ale_linter_aliases', {}), 'vue', ['vue', 'javascript']) -let b:ale_linters = get(get(g:, 'ale_linters', {}), 'vue', ['eslint', 'vls']) - endif |