aboutsummaryrefslogtreecommitdiff
path: root/dotfiles/.vim/autoload/airline/extensions/vimtex.vim
diff options
context:
space:
mode:
authorYaroslav <contact@yaroslavps.com>2020-02-25 14:47:03 +0300
committerYaroslav <contact@yaroslavps.com>2020-02-25 14:47:03 +0300
commitd16e82d468eb0d5bb1e662ac4812c0ca6fc0fc64 (patch)
tree6575864b75dc0c9de61b5d523e77dbcff785c998 /dotfiles/.vim/autoload/airline/extensions/vimtex.vim
parent69d47128244a06ee28e4b43191ef9216b04bce13 (diff)
downloadvimrice-d16e82d468eb0d5bb1e662ac4812c0ca6fc0fc64.tar.gz
vimrice-d16e82d468eb0d5bb1e662ac4812c0ca6fc0fc64.zip
reorganized repo to be easier to use with GNU stow; added script to stow
Diffstat (limited to 'dotfiles/.vim/autoload/airline/extensions/vimtex.vim')
-rw-r--r--dotfiles/.vim/autoload/airline/extensions/vimtex.vim84
1 files changed, 84 insertions, 0 deletions
diff --git a/dotfiles/.vim/autoload/airline/extensions/vimtex.vim b/dotfiles/.vim/autoload/airline/extensions/vimtex.vim
new file mode 100644
index 0000000..9eda8d5
--- /dev/null
+++ b/dotfiles/.vim/autoload/airline/extensions/vimtex.vim
@@ -0,0 +1,84 @@
+" MIT License. Copyright (c) 2013-2018 Bailey Ling et al.
+" vim: et ts=2 sts=2 sw=2
+
+" This plugin replace the whole section_a when in vimagit buffer
+scriptencoding utf-8
+
+let s:spc = g:airline_symbols.space
+
+function! s:SetDefault(var, val)
+ if !exists(a:var)
+ execute 'let ' . a:var . '=' . string(a:val)
+ endif
+endfunction
+
+" Left and right delimiters (added only when status string is not empty)
+call s:SetDefault( 'g:airline#extensions#vimtex#left', "{")
+call s:SetDefault( 'g:airline#extensions#vimtex#right', "}")
+
+" The current tex file is the main project file
+call s:SetDefault( 'g:airline#extensions#vimtex#main', "" )
+"
+" The current tex file is a subfile of the project
+" and the compilation is set for the main file
+call s:SetDefault( 'g:airline#extensions#vimtex#sub_main', "m")
+"
+" The current tex file is a subfile of the project
+" and the compilation is set for this subfile
+call s:SetDefault( 'g:airline#extensions#vimtex#sub_local', "l")
+"
+" Compilation is running and continuous compilation is off
+call s:SetDefault( 'g:airline#extensions#vimtex#compiled', "c₁")
+
+" Compilation is running and continuous compilation is on
+call s:SetDefault( 'g:airline#extensions#vimtex#continuous', "c")
+
+" Viewer is opened
+call s:SetDefault( 'g:airline#extensions#vimtex#viewer', "v")
+
+function! airline#extensions#vimtex#init(ext)
+ call airline#parts#define_raw('vimtex', '%{airline#extensions#vimtex#get_scope()}')
+ call a:ext.add_statusline_func('airline#extensions#vimtex#apply')
+endfunction
+
+function! airline#extensions#vimtex#apply(...)
+ if exists("b:vimtex")
+ let w:airline_section_x = get(w:, 'airline_section_x', g:airline_section_x)
+ let w:airline_section_x.=s:spc.g:airline_left_alt_sep.s:spc.'%{airline#extensions#vimtex#get_scope()}'
+ endif
+endfunction
+
+function! airline#extensions#vimtex#get_scope()
+ let l:status = ''
+
+ let vt_local = get(b:, 'vimtex_local', {})
+ if empty(vt_local)
+ let l:status .= g:airline#extensions#vimtex#main
+ else
+ if get(vt_local, 'active')
+ let l:status .= g:airline#extensions#vimtex#sub_local
+ else
+ let l:status .= g:airline#extensions#vimtex#sub_main
+ endif
+ endif
+
+ if get(get(get(b:, 'vimtex', {}), 'viewer', {}), 'xwin_id')
+ let l:status .= g:airline#extensions#vimtex#viewer
+ endif
+
+ let l:compiler = get(get(b:, 'vimtex', {}), 'compiler', {})
+ if !empty(l:compiler)
+ if has_key(l:compiler, 'is_running') && b:vimtex.compiler.is_running()
+ if get(l:compiler, 'continuous')
+ let l:status .= g:airline#extensions#vimtex#continuous
+ else
+ let l:status .= g:airline#extensions#vimtex#compiled
+ endif
+ endif
+ endif
+
+ if !empty(l:status)
+ let l:status = g:airline#extensions#vimtex#left . l:status . g:airline#extensions#vimtex#right
+ endif
+ return l:status
+endfunction