diff --git a/autoload/airline/extensions/hunks.vim b/autoload/airline/extensions/hunks.vim index d9e90152..88499fa6 100644 --- a/autoload/airline/extensions/hunks.vim +++ b/autoload/airline/extensions/hunks.vim @@ -3,7 +3,14 @@ function! airline#extensions#hunks#get_hunks() let hunks = GitGutterGetHunkSummary() - return printf('+%s ~%s -%s ', hunks[0], hunks[1], hunks[2]) + let hunk_symbol = ['+', '~', '-'] + let string = '' + for i in [0, 1, 2] + if g:airline_hunk_non_zero_only == 0 || hunks[i] > 0 + let string .= printf('%s%s ', hunk_symbol[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..44da7f76 100644 --- a/doc/airline.txt +++ b/doc/airline.txt @@ -211,7 +211,9 @@ 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_hunk_non_zero_only = 0 ============================================================================== FUNCREFS *airline-funcrefs* diff --git a/plugin/airline.vim b/plugin/airline.vim index b47653a0..a2990bc9 100644 --- a/plugin/airline.vim +++ b/plugin/airline.vim @@ -25,6 +25,7 @@ call s:check_defined('g:airline_detect_iminsert', 0) call s:check_defined('g:airline_detect_modified', 1) call s:check_defined('g:airline_detect_paste', 1) call s:check_defined('g:airline_detect_whitespace', 1) +call s:check_defined('g:airline_hunk_non_zero_only', 0) call s:check_defined('g:airline_branch_empty_message', '') call s:check_defined('g:airline_branch_prefix', exists('g:airline_powerline_fonts')?' ':'') call s:check_defined('g:airline_readonly_symbol', exists('g:airline_powerline_fonts')?'':'RO')