Store buffer local variables in a single dictionary.

This reduces the footprint in the buffer variable namespace to a single
key.
This commit is contained in:
Andy Stewart
2017-02-22 11:28:25 +00:00
parent 14dd430533
commit 1c034be0d3

View File

@@ -3,14 +3,19 @@ let s:using_xolox_shell = -1
let s:exit_code = 0 let s:exit_code = 0
function! gitgutter#utility#setbufvar(buffer, varname, val) 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 endfunction
function! gitgutter#utility#getbufvar(buffer, varname, ...) function! gitgutter#utility#getbufvar(buffer, varname, ...)
if a:0 let dict = get(getbufvar(a:buffer, ''), 'gitgutter', {})
return get(getbufvar(a:buffer, ''), 'gitgutter_'.a:varname, a:1) if has_key(dict, a:varname)
return dict[a:varname]
else else
return getbufvar(a:buffer, 'gitgutter_'.a:varname) if a:0
return a:1
endif
endif endif
endfunction endfunction