From 4d9a0e257fdc0bc961c236dc0db365f6c6176c2a Mon Sep 17 00:00:00 2001 From: Benjamin Bergman Date: Mon, 19 Aug 2013 17:28:42 -0500 Subject: [PATCH 1/2] Add option to show only non-zero hunks --- autoload/airline/extensions/hunks.vim | 9 ++++++++- doc/airline.txt | 4 +++- plugin/airline.vim | 1 + 3 files changed, 12 insertions(+), 2 deletions(-) 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') From a5f084dc4eb207fde18865836d3e77480beca454 Mon Sep 17 00:00:00 2001 From: Benjamin Bergman Date: Mon, 19 Aug 2013 22:32:14 -0500 Subject: [PATCH 2/2] Use extension local variables, and expose hunk_symbols to user --- autoload/airline/extensions/hunks.vim | 14 +++++++++++--- doc/airline.txt | 10 +++++++--- plugin/airline.vim | 1 - 3 files changed, 18 insertions(+), 7 deletions(-) diff --git a/autoload/airline/extensions/hunks.vim b/autoload/airline/extensions/hunks.vim index 88499fa6..2a89f789 100644 --- a/autoload/airline/extensions/hunks.vim +++ b/autoload/airline/extensions/hunks.vim @@ -1,13 +1,21 @@ " 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() - 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]) + 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 diff --git a/doc/airline.txt b/doc/airline.txt index 44da7f76..139a2376 100644 --- a/doc/airline.txt +++ b/doc/airline.txt @@ -211,9 +211,13 @@ 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 +< +* 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* diff --git a/plugin/airline.vim b/plugin/airline.vim index a2990bc9..b47653a0 100644 --- a/plugin/airline.vim +++ b/plugin/airline.vim @@ -25,7 +25,6 @@ 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')