From 75ee42b1188c4921d91bcca76c3ccf15168f6f01 Mon Sep 17 00:00:00 2001 From: ralesi Date: Sun, 19 Jan 2014 12:06:55 -0700 Subject: [PATCH] Add deeper netrw support, including Git branch head and netrw sorting options --- autoload/airline/extensions.vim | 5 ++++- autoload/airline/extensions/netrw.vim | 28 +++++++++++++++++++++++++++ 2 files changed, 32 insertions(+), 1 deletion(-) create mode 100644 autoload/airline/extensions/netrw.vim diff --git a/autoload/airline/extensions.vim b/autoload/airline/extensions.vim index 6a009c6c..77630288 100644 --- a/autoload/airline/extensions.vim +++ b/autoload/airline/extensions.vim @@ -20,7 +20,6 @@ endfunction let s:script_path = tolower(resolve(expand(':p:h'))) let s:filetype_overrides = { - \ 'netrw': [ 'netrw', '%f' ], \ 'nerdtree': [ 'NERD', '' ], \ 'gundo': [ 'Gundo', '' ], \ 'diff': [ 'diff', '' ], @@ -128,6 +127,10 @@ function! airline#extensions#load() call airline#extensions#unite#init(s:ext) endif + if exists(':NetrwSettings') + call airline#extensions#netrw#init(s:ext) + endif + if get(g:, 'loaded_vimfiler', 0) let g:vimfiler_force_overwrite_statusline = 0 endif diff --git a/autoload/airline/extensions/netrw.vim b/autoload/airline/extensions/netrw.vim new file mode 100644 index 00000000..ec83e3d3 --- /dev/null +++ b/autoload/airline/extensions/netrw.vim @@ -0,0 +1,28 @@ +" MIT License. Copyright (c) 2013 Bailey Ling. +" vim: et ts=2 sts=2 sw=2 + +if !exists(':NetrwSettings') + finish +endif + +function! airline#extensions#netrw#apply(...) + if &ft == 'netrw' + call a:1.add_section('airline_a', ' netrw ') + call a:1.add_section('airline_b', ' %{airline#extensions#branch#get_head()} ') + call a:1.add_section('airline_c', ' %f ') + call a:1.split() + call a:1.add_section('airline_y', ' %{airline#extensions#netrw#sortstring()} ') + return 1 + endif +endfunction + +function! airline#extensions#netrw#init(ext) + let g:netrw_force_overwrite_statusline = 0 + call a:ext.add_statusline_func('airline#extensions#netrw#apply') +endfunction + + +function! airline#extensions#netrw#sortstring() + let order = (g:netrw_sort_direction =~ 'n') ? '+' : '-' + return g:netrw_sort_by . ' [' . order . ']' +endfunction