mirror of
https://github.com/airblade/vim-gitgutter.git
synced 2025-11-08 11:33:48 -05:00
DRY buffer local namespace prefix.
This commit is contained in:
@@ -44,7 +44,7 @@ endfunction
|
||||
function! gitgutter#handle_diff(diff) abort
|
||||
call gitgutter#debug#log(a:diff)
|
||||
|
||||
call gitgutter#utility#setbufvar(gitgutter#utility#bufnr(), 'gitgutter_tracked', 1)
|
||||
call gitgutter#utility#setbufvar(gitgutter#utility#bufnr(), 'tracked', 1)
|
||||
|
||||
call gitgutter#hunk#set_hunks(gitgutter#diff#parse_diff(a:diff))
|
||||
let modified_lines = gitgutter#diff#process_hunks(gitgutter#hunk#hunks())
|
||||
|
||||
@@ -56,7 +56,7 @@ function! gitgutter#diff#run_diff(realtime, preserve_full_diff) abort
|
||||
let cmd = '('
|
||||
|
||||
let bufnr = gitgutter#utility#bufnr()
|
||||
let tracked = gitgutter#utility#getbufvar(bufnr, 'gitgutter_tracked', 0) " i.e. tracked by git
|
||||
let tracked = gitgutter#utility#getbufvar(bufnr, 'tracked', 0) " i.e. tracked by git
|
||||
if !tracked
|
||||
" Don't bother trying to realtime-diff an untracked file.
|
||||
" NOTE: perhaps we should pull this guard up to the caller?
|
||||
|
||||
@@ -1,45 +1,45 @@
|
||||
function! gitgutter#hunk#set_hunks(hunks) abort
|
||||
call gitgutter#utility#setbufvar(gitgutter#utility#bufnr(), 'gitgutter_hunks', a:hunks)
|
||||
call gitgutter#utility#setbufvar(gitgutter#utility#bufnr(), 'hunks', a:hunks)
|
||||
call s:reset_summary()
|
||||
endfunction
|
||||
|
||||
function! gitgutter#hunk#hunks() abort
|
||||
return gitgutter#utility#getbufvar(gitgutter#utility#bufnr(), 'gitgutter_hunks', [])
|
||||
return gitgutter#utility#getbufvar(gitgutter#utility#bufnr(), 'hunks', [])
|
||||
endfunction
|
||||
|
||||
function! gitgutter#hunk#reset() abort
|
||||
call gitgutter#utility#setbufvar(gitgutter#utility#bufnr(), 'gitgutter_hunks', [])
|
||||
call gitgutter#utility#setbufvar(gitgutter#utility#bufnr(), 'hunks', [])
|
||||
call s:reset_summary()
|
||||
endfunction
|
||||
|
||||
|
||||
function! gitgutter#hunk#summary(bufnr) abort
|
||||
return gitgutter#utility#getbufvar(a:bufnr, 'gitgutter_summary', [0,0,0])
|
||||
return gitgutter#utility#getbufvar(a:bufnr, 'summary', [0,0,0])
|
||||
endfunction
|
||||
|
||||
function! s:reset_summary() abort
|
||||
call gitgutter#utility#setbufvar(gitgutter#utility#bufnr(), 'gitgutter_summary', [0,0,0])
|
||||
call gitgutter#utility#setbufvar(gitgutter#utility#bufnr(), '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 gitgutter#utility#setbufvar(bufnr, 'gitgutter_summary', summary)
|
||||
call gitgutter#utility#setbufvar(bufnr, '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 gitgutter#utility#setbufvar(bufnr, 'gitgutter_summary', summary)
|
||||
call gitgutter#utility#setbufvar(bufnr, '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 gitgutter#utility#setbufvar(bufnr, 'gitgutter_summary', summary)
|
||||
call gitgutter#utility#setbufvar(bufnr, 'summary', summary)
|
||||
endfunction
|
||||
|
||||
|
||||
|
||||
@@ -15,9 +15,9 @@ function! gitgutter#sign#clear_signs() abort
|
||||
let bufnr = gitgutter#utility#bufnr()
|
||||
call gitgutter#sign#find_current_signs()
|
||||
|
||||
let sign_ids = map(values(gitgutter#utility#getbufvar(bufnr, 'gitgutter_gitgutter_signs')), 'v:val.id')
|
||||
let sign_ids = map(values(gitgutter#utility#getbufvar(bufnr, 'gitgutter_signs')), 'v:val.id')
|
||||
call gitgutter#sign#remove_signs(sign_ids, 1)
|
||||
call gitgutter#utility#setbufvar(bufnr, 'gitgutter_gitgutter_signs', {})
|
||||
call gitgutter#utility#setbufvar(bufnr, 'gitgutter_signs', {})
|
||||
endfunction
|
||||
|
||||
|
||||
@@ -47,17 +47,17 @@ endfunction
|
||||
|
||||
function! gitgutter#sign#add_dummy_sign() abort
|
||||
let bufnr = gitgutter#utility#bufnr()
|
||||
if !gitgutter#utility#getbufvar(bufnr, 'gitgutter_dummy_sign')
|
||||
if !gitgutter#utility#getbufvar(bufnr, 'dummy_sign')
|
||||
execute "sign place" s:dummy_sign_id "line=" . 9999 "name=GitGutterDummy buffer=" . bufnr
|
||||
call gitgutter#utility#setbufvar(bufnr, 'gitgutter_dummy_sign', 1)
|
||||
call gitgutter#utility#setbufvar(bufnr, 'dummy_sign', 1)
|
||||
endif
|
||||
endfunction
|
||||
|
||||
function! gitgutter#sign#remove_dummy_sign(force) abort
|
||||
let bufnr = gitgutter#utility#bufnr()
|
||||
if gitgutter#utility#getbufvar(bufnr, 'gitgutter_dummy_sign') && (a:force || !g:gitgutter_sign_column_always)
|
||||
if gitgutter#utility#getbufvar(bufnr, 'dummy_sign') && (a:force || !g:gitgutter_sign_column_always)
|
||||
execute "sign unplace" s:dummy_sign_id "buffer=" . bufnr
|
||||
call gitgutter#utility#setbufvar(bufnr, 'gitgutter_dummy_sign', 0)
|
||||
call gitgutter#utility#setbufvar(bufnr, 'dummy_sign', 0)
|
||||
endif
|
||||
endfunction
|
||||
|
||||
@@ -101,9 +101,9 @@ function! gitgutter#sign#find_current_signs() abort
|
||||
end
|
||||
endfor
|
||||
|
||||
call gitgutter#utility#setbufvar(bufnr, 'gitgutter_dummy_sign', dummy_sign_placed)
|
||||
call gitgutter#utility#setbufvar(bufnr, 'gitgutter_gitgutter_signs', gitgutter_signs)
|
||||
call gitgutter#utility#setbufvar(bufnr, 'gitgutter_other_signs', other_signs)
|
||||
call gitgutter#utility#setbufvar(bufnr, 'dummy_sign', dummy_sign_placed)
|
||||
call gitgutter#utility#setbufvar(bufnr, 'gitgutter_signs', gitgutter_signs)
|
||||
call gitgutter#utility#setbufvar(bufnr, 'other_signs', other_signs)
|
||||
endfunction
|
||||
|
||||
|
||||
@@ -113,7 +113,7 @@ function! gitgutter#sign#obsolete_gitgutter_signs_to_remove(new_gitgutter_signs_
|
||||
let bufnr = gitgutter#utility#bufnr()
|
||||
let signs_to_remove = [] " list of [<id (number)>, ...]
|
||||
let remove_all_signs = 1
|
||||
let old_gitgutter_signs = gitgutter#utility#getbufvar(bufnr, 'gitgutter_gitgutter_signs')
|
||||
let old_gitgutter_signs = gitgutter#utility#getbufvar(bufnr, 'gitgutter_signs')
|
||||
for line_number in keys(old_gitgutter_signs)
|
||||
if index(a:new_gitgutter_signs_line_numbers, str2nr(line_number)) == -1
|
||||
call add(signs_to_remove, old_gitgutter_signs[line_number].id)
|
||||
@@ -128,8 +128,8 @@ endfunction
|
||||
|
||||
function! gitgutter#sign#remove_signs(sign_ids, all_signs) abort
|
||||
let bufnr = gitgutter#utility#bufnr()
|
||||
if a:all_signs && s:supports_star && empty(gitgutter#utility#getbufvar(bufnr, 'gitgutter_other_signs'))
|
||||
let dummy_sign_present = gitgutter#utility#getbufvar(bufnr, 'gitgutter_dummy_sign')
|
||||
if a:all_signs && s:supports_star && empty(gitgutter#utility#getbufvar(bufnr, 'other_signs'))
|
||||
let dummy_sign_present = gitgutter#utility#getbufvar(bufnr, 'dummy_sign')
|
||||
execute "sign unplace * buffer=" . bufnr
|
||||
if dummy_sign_present
|
||||
execute "sign place" s:dummy_sign_id "line=" . 9999 "name=GitGutterDummy buffer=" . bufnr
|
||||
@@ -144,8 +144,8 @@ endfunction
|
||||
|
||||
function! gitgutter#sign#upsert_new_gitgutter_signs(modified_lines) abort
|
||||
let bufnr = gitgutter#utility#bufnr()
|
||||
let other_signs = gitgutter#utility#getbufvar(bufnr, 'gitgutter_other_signs')
|
||||
let old_gitgutter_signs = gitgutter#utility#getbufvar(bufnr, 'gitgutter_gitgutter_signs')
|
||||
let other_signs = gitgutter#utility#getbufvar(bufnr, 'other_signs')
|
||||
let old_gitgutter_signs = gitgutter#utility#getbufvar(bufnr, 'gitgutter_signs')
|
||||
|
||||
for line in a:modified_lines
|
||||
let line_number = line[0] " <number>
|
||||
|
||||
@@ -3,14 +3,14 @@ let s:using_xolox_shell = -1
|
||||
let s:exit_code = 0
|
||||
|
||||
function! gitgutter#utility#setbufvar(buffer, varname, val)
|
||||
call setbufvar(a:buffer, a:varname, a:val)
|
||||
call setbufvar(a:buffer, 'gitgutter_'.a:varname, a:val)
|
||||
endfunction
|
||||
|
||||
function! gitgutter#utility#getbufvar(buffer, varname, ...)
|
||||
if a:0
|
||||
return get(getbufvar(a:buffer, ''), a:varname, a:1)
|
||||
return get(getbufvar(a:buffer, ''), 'gitgutter_'.a:varname, a:1)
|
||||
else
|
||||
return getbufvar(a:buffer, a:varname)
|
||||
return getbufvar(a:buffer, 'gitgutter_'.a:varname)
|
||||
endif
|
||||
endfunction
|
||||
|
||||
@@ -104,11 +104,11 @@ function! gitgutter#utility#has_unsaved_changes() abort
|
||||
endfunction
|
||||
|
||||
function! gitgutter#utility#has_fresh_changes() abort
|
||||
return getbufvar(s:bufnr, 'changedtick') != gitgutter#utility#getbufvar(s:bufnr, 'gitgutter_last_tick')
|
||||
return getbufvar(s:bufnr, 'changedtick') != gitgutter#utility#getbufvar(s:bufnr, 'last_tick')
|
||||
endfunction
|
||||
|
||||
function! gitgutter#utility#save_last_seen_change() abort
|
||||
call gitgutter#utility#setbufvar(s:bufnr, 'gitgutter_last_tick', getbufvar(s:bufnr, 'changedtick'))
|
||||
call gitgutter#utility#setbufvar(s:bufnr, 'last_tick', getbufvar(s:bufnr, 'changedtick'))
|
||||
endfunction
|
||||
|
||||
function! gitgutter#utility#shell_error() abort
|
||||
@@ -148,12 +148,12 @@ function! gitgutter#utility#system(cmd, ...) abort
|
||||
endfunction
|
||||
|
||||
function! gitgutter#utility#file_relative_to_repo_root() abort
|
||||
let file_path_relative_to_repo_root = gitgutter#utility#getbufvar(s:bufnr, 'gitgutter_repo_relative_path')
|
||||
let file_path_relative_to_repo_root = gitgutter#utility#getbufvar(s:bufnr, 'repo_relative_path')
|
||||
if empty(file_path_relative_to_repo_root)
|
||||
let dir_path_relative_to_repo_root = gitgutter#utility#system(gitgutter#utility#command_in_directory_of_file(g:gitgutter_git_executable.' rev-parse --show-prefix'))
|
||||
let dir_path_relative_to_repo_root = gitgutter#utility#strip_trailing_new_line(dir_path_relative_to_repo_root)
|
||||
let file_path_relative_to_repo_root = dir_path_relative_to_repo_root . gitgutter#utility#filename()
|
||||
call gitgutter#utility#setbufvar(s:bufnr, 'gitgutter_repo_relative_path', file_path_relative_to_repo_root)
|
||||
call gitgutter#utility#setbufvar(s:bufnr, 'repo_relative_path', file_path_relative_to_repo_root)
|
||||
endif
|
||||
return file_path_relative_to_repo_root
|
||||
endfunction
|
||||
|
||||
Reference in New Issue
Block a user