diff options
author | Adam Stankiewicz <sheerun@sher.pl> | 2014-03-11 00:36:09 +0100 |
---|---|---|
committer | Adam Stankiewicz <sheerun@sher.pl> | 2014-03-11 00:36:09 +0100 |
commit | 94f72a68c3dccade13ec7203a284620040f930f1 (patch) | |
tree | a19a08381285c40c59f882b211039514ea2e69d4 /ftplugin | |
parent | 9b3b092d15503ed70ea4bf60c4e1345b196c3677 (diff) | |
download | vim-polyglot-1.5.3.tar.gz vim-polyglot-1.5.3.zip |
Updatev1.5.3
Diffstat (limited to 'ftplugin')
-rw-r--r-- | ftplugin/csv.vim | 7 | ||||
-rw-r--r-- | ftplugin/latex-box/folding.vim | 25 | ||||
-rw-r--r-- | ftplugin/rust.vim | 55 |
3 files changed, 79 insertions, 8 deletions
diff --git a/ftplugin/csv.vim b/ftplugin/csv.vim index 82ef430e..d824c154 100644 --- a/ftplugin/csv.vim +++ b/ftplugin/csv.vim @@ -2381,11 +2381,12 @@ fu! <sid>SubstituteInColumn(command, line1, line2) range "{{{3 endfu fu! <sid>ColumnMode() "{{{3 - if mode() =~# 'R' + let mode = mode() + if mode =~# 'R' " (virtual) Replace mode let new_line = (line('.') == line('$') || - \ (synIDattr(synIDtrans(synID(line("."), col("."), 1)), "name") !~# "comment")) - return "\<ESC>". (new_line ? "o" : "JE".mode()) + \ (synIDattr(synIDtrans(synID(line("."), col("."), 1)), "name") =~? "comment")) + return "\<ESC>g`[". (new_line ? "o" : "J".mode) else return "\<CR>" endif diff --git a/ftplugin/latex-box/folding.vim b/ftplugin/latex-box/folding.vim index 55a975f8..badfc137 100644 --- a/ftplugin/latex-box/folding.vim +++ b/ftplugin/latex-box/folding.vim @@ -31,6 +31,9 @@ endif if !exists('g:LatexBox_fold_envs') let g:LatexBox_fold_envs=1 endif +if !exists('g:LatexBox_fold_envs_force') + let g:LatexBox_fold_envs_force = [] +endif if !exists('g:LatexBox_fold_parts') let g:LatexBox_fold_parts=[ \ "appendix", @@ -159,11 +162,27 @@ function! LatexBox_FoldLevel(lnum) endif " Fold environments - if g:LatexBox_fold_envs == 1 - if line =~# s:envbeginpattern + if line =~# s:envbeginpattern + if g:LatexBox_fold_envs == 1 return "a1" - elseif line =~# s:envendpattern + else + let env = matchstr(line,'\\begin\*\?{\zs\w*\*\?\ze}') + if index(g:LatexBox_fold_envs_force, env) >= 0 + return "a1" + else + return "=" + endif + endif + elseif line =~# s:envendpattern + if g:LatexBox_fold_envs == 1 return "s1" + else + let env = matchstr(line,'\\end\*\?{\zs\w*\*\?\ze}') + if index(g:LatexBox_fold_envs_force, env) >= 0 + return "s1" + else + return "=" + endif endif endif diff --git a/ftplugin/rust.vim b/ftplugin/rust.vim index 281a63ef..b70cda9b 100644 --- a/ftplugin/rust.vim +++ b/ftplugin/rust.vim @@ -1,7 +1,7 @@ " Vim syntax file " Language: Rust " Maintainer: Chris Morgan <me@chrismorgan.info> -" Last Change: 2013 Jul 10 +" Last Change: 2014 Feb 27 if exists("b:did_ftplugin") finish @@ -42,4 +42,55 @@ if exists("g:loaded_delimitMate") let b:delimitMate_excluded_regions = delimitMate#Get("excluded_regions") . ',rustLifetimeCandidate,rustGenericLifetimeCandidate' endif -let b:undo_ftplugin = "setlocal formatoptions< comments< commentstring< includeexpr< suffixesadd< | 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 | elseif exists('b:delimitMate_excluded_regions') | unlet b:delimitMate_excluded_regions | endif" +" Bind motion commands to support hanging indents +nnoremap <silent> <buffer> [[ :call <SID>Rust_Jump('n', 'Back')<CR> +nnoremap <silent> <buffer> ]] :call <SID>Rust_Jump('n', 'Forward')<CR> +xnoremap <silent> <buffer> [[ :call <SID>Rust_Jump('v', 'Back')<CR> +xnoremap <silent> <buffer> ]] :call <SID>Rust_Jump('v', 'Forward')<CR> +onoremap <silent> <buffer> [[ :call <SID>Rust_Jump('o', 'Back')<CR> +onoremap <silent> <buffer> ]] :call <SID>Rust_Jump('o', 'Forward')<CR> + +let b:undo_ftplugin = " + \setlocal formatoptions< comments< commentstring< includeexpr< suffixesadd< + \|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 + \|elseif exists('b:delimitMate_excluded_regions') + \|unlet b:delimitMate_excluded_regions + \|endif + \|nunmap <buffer> [[ + \|nunmap <buffer> ]] + \|xunmap <buffer> [[ + \|xunmap <buffer> ]] + \|ounmap <buffer> [[ + \|ounmap <buffer> ]] + \" + +if exists('*<SID>Rust_Jump') | finish | endif + +function! <SID>Rust_Jump(mode, function) range + let cnt = v:count1 + normal! m' + if a:mode ==# 'v' + norm! gv + endif + let foldenable = &foldenable + set nofoldenable + while cnt > 0 + execute "call <SID>Rust_Jump_" . a:function . "()" + let cnt = cnt - 1 + endwhile + let &foldenable = foldenable +endfunction + +function! <SID>Rust_Jump_Back() + call search('{', 'b') + keepjumps normal! w99[{ +endfunction + +function! <SID>Rust_Jump_Forward() + normal! j0 + call search('{', 'b') + keepjumps normal! w99[{% + call search('{') +endfunction |