aboutsummaryrefslogtreecommitdiff
path: root/vim/bundle/vim-gitgutter/autoload/gitgutter/hunk.vim
diff options
context:
space:
mode:
Diffstat (limited to 'vim/bundle/vim-gitgutter/autoload/gitgutter/hunk.vim')
m---------vim/bundle/vim-gitgutter0
-rw-r--r--vim/bundle/vim-gitgutter/autoload/gitgutter/hunk.vim137
2 files changed, 0 insertions, 137 deletions
diff --git a/vim/bundle/vim-gitgutter b/vim/bundle/vim-gitgutter
new file mode 160000
+Subproject b5f23e986747a6f4b1dc1196d2a5bd3dc7c8c2b
diff --git a/vim/bundle/vim-gitgutter/autoload/gitgutter/hunk.vim b/vim/bundle/vim-gitgutter/autoload/gitgutter/hunk.vim
deleted file mode 100644
index 0fd0246..0000000
--- a/vim/bundle/vim-gitgutter/autoload/gitgutter/hunk.vim
+++ /dev/null
@@ -1,137 +0,0 @@
-let s:hunks = []
-
-function! gitgutter#hunk#set_hunks(hunks) abort
- let s:hunks = a:hunks
-endfunction
-
-function! gitgutter#hunk#hunks() abort
- return s:hunks
-endfunction
-
-function! gitgutter#hunk#summary(bufnr) abort
- return get(getbufvar(a:bufnr,''), 'gitgutter_summary', [0,0,0])
-endfunction
-
-function! gitgutter#hunk#reset() abort
- call setbufvar(gitgutter#utility#bufnr(), 'gitgutter_summary', [0,0,0])
-endfunction
-
-function! gitgutter#hunk#increment_lines_added(count) abort
- let bufnr = gitgutter#utility#bufnr()
- let summary = gitgutter#hunk#summary(bufnr)
- let summary[0] += a:count
- call setbufvar(bufnr, 'gitgutter_summary', summary)
-endfunction
-
-function! gitgutter#hunk#increment_lines_modified(count) abort
- let bufnr = gitgutter#utility#bufnr()
- let summary = gitgutter#hunk#summary(bufnr)
- let summary[1] += a:count
- call setbufvar(bufnr, 'gitgutter_summary', summary)
-endfunction
-
-function! gitgutter#hunk#increment_lines_removed(count) abort
- let bufnr = gitgutter#utility#bufnr()
- let summary = gitgutter#hunk#summary(bufnr)
- let summary[2] += a:count
- call setbufvar(bufnr, 'gitgutter_summary', summary)
-endfunction
-
-function! gitgutter#hunk#next_hunk(count) abort
- if gitgutter#utility#is_active()
- let current_line = line('.')
- let hunk_count = 0
- for hunk in s:hunks
- if hunk[2] > current_line
- let hunk_count += 1
- if hunk_count == a:count
- execute 'normal!' hunk[2] . 'G'
- return
- endif
- endif
- endfor
- call gitgutter#utility#warn('No more hunks')
- endif
-endfunction
-
-function! gitgutter#hunk#prev_hunk(count) abort
- if gitgutter#utility#is_active()
- let current_line = line('.')
- let hunk_count = 0
- for hunk in reverse(copy(s:hunks))
- if hunk[2] < current_line
- let hunk_count += 1
- if hunk_count == a:count
- let target = hunk[2] == 0 ? 1 : hunk[2]
- execute 'normal!' target . 'G'
- return
- endif
- endif
- endfor
- call gitgutter#utility#warn('No previous hunks')
- endif
-endfunction
-
-" Returns the hunk the cursor is currently in or an empty list if the cursor
-" isn't in a hunk.
-function! gitgutter#hunk#current_hunk() abort
- let current_hunk = []
-
- for hunk in s:hunks
- if gitgutter#hunk#cursor_in_hunk(hunk)
- let current_hunk = hunk
- break
- endif
- endfor
-
- return current_hunk
-endfunction
-
-function! gitgutter#hunk#cursor_in_hunk(hunk) abort
- let current_line = line('.')
-
- if current_line == 1 && a:hunk[2] == 0
- return 1
- endif
-
- if current_line >= a:hunk[2] && current_line < a:hunk[2] + (a:hunk[3] == 0 ? 1 : a:hunk[3])
- return 1
- endif
-
- return 0
-endfunction
-
-" Returns the number of lines the current hunk is offset from where it would
-" be if any changes above it in the file didn't exist.
-function! gitgutter#hunk#line_adjustment_for_current_hunk() abort
- let adj = 0
- for hunk in s:hunks
- if gitgutter#hunk#cursor_in_hunk(hunk)
- break
- else
- let adj += hunk[1] - hunk[3]
- endif
- endfor
- return adj
-endfunction
-
-function! gitgutter#hunk#text_object(inner) abort
- let hunk = gitgutter#hunk#current_hunk()
-
- if empty(hunk)
- return
- endif
-
- let [first_line, last_line] = [hunk[2], hunk[2] + hunk[3] - 1]
-
- if ! a:inner
- let lnum = last_line
- let eof = line('$')
- while lnum < eof && empty(getline(lnum + 1))
- let lnum +=1
- endwhile
- let last_line = lnum
- endif
-
- execute 'normal! 'first_line.'GV'.last_line.'G'
-endfunction