From 1c034be0d31168c8f4770ef7b69adb67d00d6f3d Mon Sep 17 00:00:00 2001 From: Andy Stewart Date: Wed, 22 Feb 2017 11:28:25 +0000 Subject: [PATCH] Store buffer local variables in a single dictionary. This reduces the footprint in the buffer variable namespace to a single key. --- autoload/gitgutter/utility.vim | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/autoload/gitgutter/utility.vim b/autoload/gitgutter/utility.vim index b32e701..e4bc774 100644 --- a/autoload/gitgutter/utility.vim +++ b/autoload/gitgutter/utility.vim @@ -3,14 +3,19 @@ let s:using_xolox_shell = -1 let s:exit_code = 0 function! gitgutter#utility#setbufvar(buffer, varname, val) - call setbufvar(a:buffer, 'gitgutter_'.a:varname, a:val) + let dict = get(getbufvar(a:buffer, ''), 'gitgutter', {}) + let dict[a:varname] = a:val + call setbufvar(a:buffer, 'gitgutter', dict) endfunction function! gitgutter#utility#getbufvar(buffer, varname, ...) - if a:0 - return get(getbufvar(a:buffer, ''), 'gitgutter_'.a:varname, a:1) + let dict = get(getbufvar(a:buffer, ''), 'gitgutter', {}) + if has_key(dict, a:varname) + return dict[a:varname] else - return getbufvar(a:buffer, 'gitgutter_'.a:varname) + if a:0 + return a:1 + endif endif endfunction