diff --git a/autoload/airline/extensions/hunks.vim b/autoload/airline/extensions/hunks.vim index d9e90152..2a89f789 100644 --- a/autoload/airline/extensions/hunks.vim +++ b/autoload/airline/extensions/hunks.vim @@ -1,9 +1,24 @@ " MIT License. Copyright (c) 2013 Bailey Ling. " vim: et ts=2 sts=2 sw=2 +function! s:check_defined(variable, default) + if !exists(a:variable) + let {a:variable} = a:default + endif +endfunction + +call s:check_defined('g:airline#extensions#hunks#non_zero_only', 0) +call s:check_defined('g:airline#extensions#hunks#hunk_symbols', ['+', '~', '-']) + function! airline#extensions#hunks#get_hunks() let hunks = GitGutterGetHunkSummary() - return printf('+%s ~%s -%s ', hunks[0], hunks[1], hunks[2]) + let string = '' + for i in [0, 1, 2] + if g:airline#extensions#hunks#non_zero_only == 0 || hunks[i] > 0 + let string .= printf('%s%s ', g:airline#extensions#hunks#hunk_symbols[i], hunks[i]) + endif + endfor + return string endfunction function! airline#extensions#hunks#init(ext) diff --git a/doc/airline.txt b/doc/airline.txt index 101d6667..139a2376 100644 --- a/doc/airline.txt +++ b/doc/airline.txt @@ -212,6 +212,12 @@ vim-gitgutter * enable/disable detecting changed hunks under source control. > let g:airline_enable_hunks = 1 < +* enable/disable showing only non-zero hunks. > + let g:airline#extensions#hunks#non_zero_only = 0 +< +* set hunk count symbols. > + let g:airline#extensions#hunks#hunk_symbols = ['+', '~', '-'] +< ============================================================================== FUNCREFS *airline-funcrefs*