aboutsummaryrefslogtreecommitdiff
path: root/.config/nvim/plugged/vim-airline/autoload/airline/section.vim
diff options
context:
space:
mode:
authorMarvin Borner2020-03-16 23:33:42 +0100
committerMarvin Borner2020-03-16 23:33:42 +0100
commit0e9ddbb0bf0cd34500155ea4b03de2e2a38d8ab2 (patch)
tree719da1c7fe5dabb872fe9ff1582c39b55ccd488e /.config/nvim/plugged/vim-airline/autoload/airline/section.vim
parente5d38956336ab1be954bdbd12808c5f98f8bd925 (diff)
Well I'm using Arch again
Diffstat (limited to '.config/nvim/plugged/vim-airline/autoload/airline/section.vim')
-rw-r--r--.config/nvim/plugged/vim-airline/autoload/airline/section.vim84
1 files changed, 84 insertions, 0 deletions
diff --git a/.config/nvim/plugged/vim-airline/autoload/airline/section.vim b/.config/nvim/plugged/vim-airline/autoload/airline/section.vim
new file mode 100644
index 0000000..bed4b81
--- /dev/null
+++ b/.config/nvim/plugged/vim-airline/autoload/airline/section.vim
@@ -0,0 +1,84 @@
+" MIT License. Copyright (c) 2013-2020 Bailey Ling et al.
+" vim: et ts=2 sts=2 sw=2
+
+scriptencoding utf-8
+
+call airline#init#bootstrap()
+let s:spc = g:airline_symbols.space
+
+function! s:wrap_accent(part, value)
+ if exists('a:part.accent')
+ call airline#highlighter#add_accent(a:part.accent)
+ return '%#__accent_'.(a:part.accent).'#'.a:value.'%#__restore__#'
+ endif
+ return a:value
+endfunction
+
+function! s:create(parts, append)
+ let _ = ''
+ for idx in range(len(a:parts))
+ let part = airline#parts#get(a:parts[idx])
+ let val = ''
+ let add_sep = get(l:, 'add_sep', 0)
+
+ if exists('part.function')
+ let func = (part.function).'()'
+ elseif exists('part.text')
+ let func = '"'.(part.text).'"'
+ else
+ if a:append > 0 && idx != 0
+ let val .= s:spc.g:airline_left_alt_sep.s:spc
+ endif
+ if a:append < 0 && idx != 0
+ let t = ''
+ if !add_sep
+ let t = s:spc.g:airline_right_alt_sep.s:spc
+ endif
+ let val = t.val
+ endif
+ if exists('part.raw')
+ let _ .= s:wrap_accent(part, val.(part.raw))
+ continue
+ else
+ let _ .= s:wrap_accent(part, val.a:parts[idx])
+ continue
+ endif
+ endif
+
+ let minwidth = get(part, 'minwidth', 0)
+
+ if a:append > 0 && idx != 0
+ let partval = printf('%%{airline#util#append(%s,%s)}', func, minwidth)
+ " will add an extra separator, if minwidth is zero
+ let add_sep = (minwidth == 0)
+ elseif a:append < 0 && idx != len(a:parts) - 1
+ let partval = printf('%%{airline#util#prepend(%s,%s)}', func, minwidth)
+ " will add an extra separator, if minwidth is zero
+ let add_sep = (minwidth == 0)
+ else
+ let partval = printf('%%{airline#util#wrap(%s,%s)}', func, minwidth)
+ let add_sep = 0
+ endif
+
+ if exists('part.condition')
+ let partval = substitute(partval, '{', '\="{".(part.condition)." ? "', '')
+ let partval = substitute(partval, '}', ' : ""}', '')
+ endif
+
+ let val .= s:wrap_accent(part, partval)
+ let _ .= val
+ endfor
+ return _
+endfunction
+
+function! airline#section#create(parts)
+ return s:create(a:parts, 0)
+endfunction
+
+function! airline#section#create_left(parts)
+ return s:create(a:parts, 1)
+endfunction
+
+function! airline#section#create_right(parts)
+ return s:create(a:parts, -1)
+endfunction