aboutsummaryrefslogtreecommitdiff
path: root/dotfiles/.local/share/nvim/site/autoload/airline/extensions/vimtex.vim
diff options
context:
space:
mode:
authorYaroslav <contact@yaroslavps.com>2020-03-31 17:52:49 +0300
committerYaroslav <contact@yaroslavps.com>2020-03-31 17:52:49 +0300
commit7217c7749e5403c9c7856c1d12c7986eb9c3b460 (patch)
treed60a112d9119a51af1cf5f590c5efad81751edf6 /dotfiles/.local/share/nvim/site/autoload/airline/extensions/vimtex.vim
parent9a3aa7b20a67c1b7991da1da9508ad5f78f76352 (diff)
downloadvimrice-7217c7749e5403c9c7856c1d12c7986eb9c3b460.tar.gz
vimrice-7217c7749e5403c9c7856c1d12c7986eb9c3b460.zip
Goodbye vim, been using neovim for ages now; home directory cleanup
Diffstat (limited to 'dotfiles/.local/share/nvim/site/autoload/airline/extensions/vimtex.vim')
-rw-r--r--dotfiles/.local/share/nvim/site/autoload/airline/extensions/vimtex.vim84
1 files changed, 84 insertions, 0 deletions
diff --git a/dotfiles/.local/share/nvim/site/autoload/airline/extensions/vimtex.vim b/dotfiles/.local/share/nvim/site/autoload/airline/extensions/vimtex.vim
new file mode 100644
index 0000000..9eda8d5
--- /dev/null
+++ b/dotfiles/.local/share/nvim/site/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