aboutsummaryrefslogtreecommitdiff
path: root/dotfiles/.vim/autoload/airline/extensions/term.vim
diff options
context:
space:
mode:
Diffstat (limited to 'dotfiles/.vim/autoload/airline/extensions/term.vim')
-rw-r--r--dotfiles/.vim/autoload/airline/extensions/term.vim43
1 files changed, 43 insertions, 0 deletions
diff --git a/dotfiles/.vim/autoload/airline/extensions/term.vim b/dotfiles/.vim/autoload/airline/extensions/term.vim
new file mode 100644
index 0000000..c5b578e
--- /dev/null
+++ b/dotfiles/.vim/autoload/airline/extensions/term.vim
@@ -0,0 +1,43 @@
+" MIT License. Copyright (c) 2013-2018 Bailey Ling et al.
+" vim: et ts=2 sts=2 sw=2
+
+scriptencoding utf-8
+
+function! airline#extensions#term#apply(...)
+ if &buftype == 'terminal'
+ let spc = g:airline_symbols.space
+
+ let name=get(g:airline_mode_map, 't', 't')
+ call a:1.add_section('airline_a', spc.name.spc)
+ call a:1.add_section('airline_b', '')
+ call a:1.add_section('airline_term', spc.s:termname())
+ call a:1.split()
+ call a:1.add_section('airline_y', '')
+ call a:1.add_section('airline_z', spc.airline#section#create_right(['linenr', 'maxlinenr']))
+ return 1
+ endif
+endfunction
+
+function! airline#extensions#term#inactive_apply(...)
+ if getbufvar(a:2.bufnr, '&buftype') == 'terminal'
+ let spc = g:airline_symbols.space
+ call a:1.add_section('airline_a', spc.'TERMINAL'.spc)
+ call a:1.add_section('airline_b', spc.'%f')
+ return 1
+ endif
+endfunction
+
+function! s:termname()
+ let bufname = bufname('%')
+ if has('nvim')
+ return matchstr(bufname, 'term.*:\zs.*')
+ else
+ " get rid of leading '!'
+ return bufname[1:]
+ endif
+endfunction
+
+function! airline#extensions#term#init(ext)
+ call a:ext.add_statusline_func('airline#extensions#term#apply')
+ call a:ext.add_inactive_statusline_func('airline#extensions#term#inactive_apply')
+endfunction