diff options
Diffstat (limited to 'files/vim/autoload')
| -rw-r--r-- | files/vim/autoload/Juliana.vim | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/files/vim/autoload/Juliana.vim b/files/vim/autoload/Juliana.vim new file mode 100644 index 0000000..4dd86db --- /dev/null +++ b/files/vim/autoload/Juliana.vim @@ -0,0 +1,56 @@ +" https://github.com/neitanod/vim-clevertab + +function! Juliana#Init() + let g:Juliana#has_selection = 0 + augroup JulianaPersistAu + autocmd ModeChanged [V\x16]*:i let g:Juliana#has_selection = 1 + autocmd InsertLeave * let g:Juliana#has_selection = 0 + augroup END +endfunction + +function! Juliana#CompleteTab(type) + if a:type == "START" + let g:Juliana#stop=0 + return "" + endif + + if !g:Juliana#stop + " Vanilla <Tab> if we are at the front of a line. + if a:type == "TAB" && col(".") >= col("$") && !pumvisible() + let g:Juliana#stop=1 + return "\<Tab>" + elseif a:type == "ALIGN" && !pumvisible() " Align if !pumvisible(). + let g:Juliana#stop=1 + if g:Juliana#has_selection + return "\<ESC>gv=i" + else + return "\<ESC>\<C-v>=i" + endif + elseif a:type == "NEXT" " If pumvisible(), goto the next result. + let g:Juliana#stop=1 + return "\<C-n>" + endif + endif + + return "" +endfunction + +function! Juliana#CompleteSTab(type) + if a:type == "PREV" + if pumvisible() " If pumvisible(), goto the previous result. + return "\<C-p>" + else + return "\<Tab>" " <S-Tab> = <Tab> + endif + endif +endfunction + +function! Juliana#CompleteNTab(type) + if a:type == "FOLD" + if foldlevel(line(".")) " Toggle fold if on fold. + return "za" + else + return "\<Tab>" + endif + endif +endfunction |