aboutsummaryrefslogtreecommitdiff
path: root/vim/.vim/plugged/vim-gitgutter/autoload/gitgutter/fold.vim
diff options
context:
space:
mode:
authorKumar Damani <damani.kumar@gmail.com>2019-05-16 22:16:09 +0000
committerKumar Damani <damani.kumar@gmail.com>2019-05-16 22:16:09 +0000
commit12564a8f73ebe721d415a04d36f7aac7091bea9d (patch)
treebbc8a6bf6aabe832b3ee435eaa605dcac655fc5f /vim/.vim/plugged/vim-gitgutter/autoload/gitgutter/fold.vim
parent1241da7ab7a4e91248391ee9b045267bcbbeee4f (diff)
updating vimrc
Diffstat (limited to 'vim/.vim/plugged/vim-gitgutter/autoload/gitgutter/fold.vim')
-rw-r--r--vim/.vim/plugged/vim-gitgutter/autoload/gitgutter/fold.vim84
1 files changed, 0 insertions, 84 deletions
diff --git a/vim/.vim/plugged/vim-gitgutter/autoload/gitgutter/fold.vim b/vim/.vim/plugged/vim-gitgutter/autoload/gitgutter/fold.vim
deleted file mode 100644
index ffc7691..0000000
--- a/vim/.vim/plugged/vim-gitgutter/autoload/gitgutter/fold.vim
+++ /dev/null
@@ -1,84 +0,0 @@
-function! gitgutter#fold#enable()
- call s:save_fold_state()
-
- call s:set_fold_levels()
- setlocal foldexpr=gitgutter#fold#level(v:lnum)
- setlocal foldmethod=expr
- setlocal foldlevel=0
- setlocal foldenable
-
- call gitgutter#utility#setbufvar(bufnr(''), 'folded', 1)
-endfunction
-
-
-function! gitgutter#fold#disable()
- call s:restore_fold_state()
- call gitgutter#utility#setbufvar(bufnr(''), 'folded', 0)
-endfunction
-
-
-function! gitgutter#fold#toggle()
- if s:folded()
- call gitgutter#fold#disable()
- else
- call gitgutter#fold#enable()
- endif
-endfunction
-
-
-function! gitgutter#fold#level(lnum)
- return gitgutter#utility#getbufvar(bufnr(''), 'fold_levels')[a:lnum]
-endfunction
-
-
-" A line in a hunk has a fold level of 0.
-" A line within 3 lines of a hunk has a fold level of 1.
-" All other lines have a fold level of 2.
-function! s:set_fold_levels()
- let fold_levels = ['']
-
- for lnum in range(1, line('$'))
- let in_hunk = gitgutter#hunk#in_hunk(lnum)
- call add(fold_levels, (in_hunk ? 0 : 2))
- endfor
-
- let lines_of_context = 3
-
- for lnum in range(1, line('$'))
- if fold_levels[lnum] == 2
- let pre = lnum >= 3 ? lnum - lines_of_context : 0
- let post = lnum + lines_of_context
- if index(fold_levels[pre:post], 0) != -1
- let fold_levels[lnum] = 1
- endif
- endif
- endfor
-
- call gitgutter#utility#setbufvar(bufnr(''), 'fold_levels', fold_levels)
-endfunction
-
-
-function! s:save_fold_state()
- let bufnr = bufnr('')
- call gitgutter#utility#setbufvar(bufnr, 'foldlevel', &foldlevel)
- call gitgutter#utility#setbufvar(bufnr, 'foldmethod', &foldmethod)
- if &foldmethod ==# 'manual'
- mkview
- endif
-endfunction
-
-function! s:restore_fold_state()
- let bufnr = bufnr('')
- let &foldlevel = gitgutter#utility#getbufvar(bufnr, 'foldlevel')
- let &foldmethod = gitgutter#utility#getbufvar(bufnr, 'foldmethod')
- if &foldmethod ==# 'manual'
- loadview
- else
- normal! zx
- endif
-endfunction
-
-function! s:folded()
- return gitgutter#utility#getbufvar(bufnr(''), 'folded')
-endfunction
-