From ef6fd3a986a8eea32ffc307d60145a0adf7c8ee4 Mon Sep 17 00:00:00 2001 From: Andy Stewart Date: Fri, 13 May 2016 14:03:16 +0100 Subject: [PATCH] Store a buffer's hunk summary in a buffer local variable. --- autoload/gitgutter/hunk.vim | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/autoload/gitgutter/hunk.vim b/autoload/gitgutter/hunk.vim index 13afb94..cbb2477 100644 --- a/autoload/gitgutter/hunk.vim +++ b/autoload/gitgutter/hunk.vim @@ -1,5 +1,3 @@ -" number of lines [added, modified, removed] -let s:summary = [0, 0, 0] let s:hunks = [] function! gitgutter#hunk#set_hunks(hunks) abort @@ -11,23 +9,29 @@ function! gitgutter#hunk#hunks() abort endfunction function! gitgutter#hunk#summary() abort - return s:summary + return getbufvar(gitgutter#utility#bufnr(), 'gitgutter_summary', [0,0,0]) endfunction function! gitgutter#hunk#reset() abort - let s:summary = [0, 0, 0] + call setbufvar(gitgutter#utility#bufnr(), 'gitgutter_summary', [0,0,0]) endfunction function! gitgutter#hunk#increment_lines_added(count) abort - let s:summary[0] += a:count + let summary = gitgutter#hunk#summary() + let summary[0] += a:count + call setbufvar(gitgutter#utility#bufnr(), 'gitgutter_summary', summary) endfunction function! gitgutter#hunk#increment_lines_modified(count) abort - let s:summary[1] += a:count + let summary = gitgutter#hunk#summary() + let summary[1] += a:count + call setbufvar(gitgutter#utility#bufnr(), 'gitgutter_summary', summary) endfunction function! gitgutter#hunk#increment_lines_removed(count) abort - let s:summary[2] += a:count + let summary = gitgutter#hunk#summary() + let summary[2] += a:count + call setbufvar(gitgutter#utility#bufnr(), 'gitgutter_summary', summary) endfunction function! gitgutter#hunk#next_hunk(count) abort