hunks: use gitsigns_status_dict instead of gitsigns_status

- Gitsigns also provides status as a dictionary. Use that rather than
  parsing a decorated string

- Fix indentation
This commit is contained in:
Simon Truscott 2023-01-07 10:26:20 +11:00
parent 0913c0a3b6
commit 029797db1c

View File

@ -28,7 +28,15 @@ function! s:coc_git_enabled() abort
return 1 return 1
endfunction endfunction
function! s:parse_hunk_status(hunks) abort function! s:parse_hunk_status_dict(hunks) abort
let result = [0, 0, 0]
let result[0] = get(a:hunks, 'added', 0)
let result[1] = get(a:hunks, 'changed', 0)
let result[2] = get(a:hunks, 'removed', 0)
return result
endfunction
function! s:parse_hunk_status_decorated(hunks) abort
if empty(a:hunks) if empty(a:hunks)
return [] return []
endif endif
@ -64,13 +72,13 @@ function! s:get_hunks_changes() abort
endfunction endfunction
function! s:get_hunks_gitsigns() abort function! s:get_hunks_gitsigns() abort
let hunks = get(b:, 'gitsigns_status', '') let hunks = get(b:, 'gitsigns_status_dict', {})
return s:parse_hunk_status(hunks) return s:parse_hunk_status_dict(hunks)
endfunction endfunction
function! s:get_hunks_coc() abort function! s:get_hunks_coc() abort
let hunks = get(b:, 'coc_git_status', '') let hunks = get(b:, 'coc_git_status', '')
return s:parse_hunk_status(hunks) return s:parse_hunk_status_decorated(hunks)
endfunction endfunction
function! s:get_hunks_empty() abort function! s:get_hunks_empty() abort