This commit is contained in:
2025-12-25 08:57:45 +01:00
parent f3eab4ccc8
commit fe6704f104
95 changed files with 14547 additions and 0 deletions

View File

@@ -0,0 +1,485 @@
" =============================================================================
" Filename: autoload/lightline.vim
" Author: itchyny
" License: MIT License
" Last Change: 2020/11/21 14:03:29.
" =============================================================================
let s:save_cpo = &cpo
set cpo&vim
let s:_ = 1 " 1: uninitialized, 2: disabled
function! lightline#update() abort
if s:skip() | return | endif
if s:_
if s:_ == 2 | return | endif
call lightline#init()
call lightline#colorscheme()
endif
if s:lightline.enable.statusline
let w = winnr()
let s = winnr('$') == 1 && w > 0 ? [lightline#statusline(0)] : [lightline#statusline(0), lightline#statusline(1)]
for n in range(1, winnr('$'))
call setwinvar(n, '&statusline', s[n!=w])
endfor
endif
endfunction
if exists('*win_gettype')
function! s:skip() abort " Vim 8.2.0257 (00f3b4e007), 8.2.0991 (0fe937fd86), 8.2.0996 (40a019f157)
return win_gettype() ==# 'popup' || win_gettype() ==# 'autocmd'
endfunction
else
function! s:skip() abort
return &buftype ==# 'popup'
endfunction
endif
function! lightline#update_disable() abort
if s:lightline.enable.statusline
call setwinvar(0, '&statusline', '')
endif
endfunction
function! lightline#enable() abort
let s:_ = 1
call lightline#update()
augroup lightline
autocmd!
autocmd WinEnter,BufEnter,BufDelete,SessionLoadPost,FileChangedShellPost * call lightline#update()
if !has('patch-8.1.1715')
autocmd FileType qf call lightline#update()
endif
autocmd SessionLoadPost * call lightline#highlight()
autocmd ColorScheme * if !has('vim_starting') || expand('<amatch>') !=# 'macvim'
\ | call lightline#update() | call lightline#highlight() | endif
augroup END
augroup lightline-disable
autocmd!
augroup END
augroup! lightline-disable
endfunction
function! lightline#disable() abort
let [&statusline, &tabline] = [get(s:, '_statusline', ''), get(s:, '_tabline', '')]
for t in range(1, tabpagenr('$'))
for n in range(1, tabpagewinnr(t, '$'))
call settabwinvar(t, n, '&statusline', '')
endfor
endfor
augroup lightline
autocmd!
augroup END
augroup! lightline
augroup lightline-disable
autocmd!
autocmd WinEnter * call lightline#update_disable()
augroup END
let s:_ = 2
endfunction
function! lightline#toggle() abort
if exists('#lightline')
call lightline#disable()
else
call lightline#enable()
endif
endfunction
let s:_lightline = {
\ 'active': {
\ 'left': [['mode', 'paste'], ['readonly', 'filename', 'modified']],
\ 'right': [['lineinfo'], ['percent'], ['fileformat', 'fileencoding', 'filetype']]
\ },
\ 'inactive': {
\ 'left': [['filename']],
\ 'right': [['lineinfo'], ['percent']]
\ },
\ 'tabline': {
\ 'left': [['tabs']],
\ 'right': [['close']]
\ },
\ 'tab': {
\ 'active': ['tabnum', 'filename', 'modified'],
\ 'inactive': ['tabnum', 'filename', 'modified']
\ },
\ 'component': {
\ 'mode': '%{lightline#mode()}',
\ 'absolutepath': '%F', 'relativepath': '%f', 'filename': '%t', 'modified': '%M', 'bufnum': '%n',
\ 'paste': '%{&paste?"PASTE":""}', 'readonly': '%R', 'charvalue': '%b', 'charvaluehex': '%B',
\ 'spell': '%{&spell?&spelllang:""}', 'fileencoding': '%{&fenc!=#""?&fenc:&enc}', 'fileformat': '%{&ff}',
\ 'filetype': '%{&ft!=#""?&ft:"no ft"}', 'percent': '%3p%%', 'percentwin': '%P',
\ 'lineinfo': '%3l:%-2c', 'line': '%l', 'column': '%c', 'close': '%999X X ', 'winnr': '%{winnr()}'
\ },
\ 'component_visible_condition': {
\ 'modified': '&modified||!&modifiable', 'readonly': '&readonly', 'paste': '&paste', 'spell': '&spell'
\ },
\ 'component_function': {},
\ 'component_function_visible_condition': {},
\ 'component_expand': {
\ 'tabs': 'lightline#tabs'
\ },
\ 'component_type': {
\ 'tabs': 'tabsel', 'close': 'raw'
\ },
\ 'component_raw': {},
\ 'tab_component': {},
\ 'tab_component_function': {
\ 'filename': 'lightline#tab#filename', 'modified': 'lightline#tab#modified',
\ 'readonly': 'lightline#tab#readonly', 'tabnum': 'lightline#tab#tabnum'
\ },
\ 'colorscheme': 'default',
\ 'mode_map': {
\ 'n': 'NORMAL', 'i': 'INSERT', 'R': 'REPLACE', 'v': 'VISUAL', 'V': 'V-LINE', "\<C-v>": 'V-BLOCK',
\ 'c': 'COMMAND', 's': 'SELECT', 'S': 'S-LINE', "\<C-s>": 'S-BLOCK', 't': 'TERMINAL'
\ },
\ 'separator': { 'left': '', 'right': '' },
\ 'subseparator': { 'left': '|', 'right': '|' },
\ 'tabline_separator': {},
\ 'tabline_subseparator': {},
\ 'enable': { 'statusline': 1, 'tabline': 1 },
\ '_mode_': {
\ 'n': 'normal', 'i': 'insert', 'R': 'replace', 'v': 'visual', 'V': 'visual', "\<C-v>": 'visual',
\ 'c': 'command', 's': 'select', 'S': 'select', "\<C-s>": 'select', 't': 'terminal'
\ },
\ 'mode_fallback': { 'replace': 'insert', 'terminal': 'insert', 'select': 'visual' },
\ 'palette': {},
\ }
function! lightline#init() abort
let s:lightline = deepcopy(get(g:, 'lightline', {}))
for [key, value] in items(s:_lightline)
if type(value) == 4
if !has_key(s:lightline, key)
let s:lightline[key] = {}
endif
call extend(s:lightline[key], value, 'keep')
elseif !has_key(s:lightline, key)
let s:lightline[key] = value
endif
unlet value
endfor
call extend(s:lightline.tabline_separator, s:lightline.separator, 'keep')
call extend(s:lightline.tabline_subseparator, s:lightline.subseparator, 'keep')
let s:lightline.tabline_configured = has_key(get(get(g:, 'lightline', {}), 'component_expand', {}), 'tabs')
for components in deepcopy(s:lightline.tabline.left + s:lightline.tabline.right)
if len(filter(components, 'v:val !=# "tabs" && v:val !=# "close"')) > 0
let s:lightline.tabline_configured = 1
break
endif
endfor
if !exists('s:_statusline')
let s:_statusline = &statusline
endif
if !exists('s:_tabline')
let s:_tabline = &tabline
endif
if s:lightline.enable.tabline
set tabline=%!lightline#tabline()
else
let &tabline = get(s:, '_tabline', '')
endif
for f in values(s:lightline.component_function)
silent! call call(f, [])
endfor
for f in values(s:lightline.tab_component_function)
silent! call call(f, [1])
endfor
let s:mode = ''
endfunction
function! lightline#colorscheme() abort
try
let s:lightline.palette = g:lightline#colorscheme#{s:lightline.colorscheme}#palette
catch
call lightline#error('Could not load colorscheme ' . s:lightline.colorscheme . '.')
let s:lightline.colorscheme = 'default'
let s:lightline.palette = g:lightline#colorscheme#{s:lightline.colorscheme}#palette
finally
if has('win32') && !has('gui_running') && &t_Co < 256
call lightline#colortable#gui2cui_palette(s:lightline.palette)
endif
let s:highlight = {}
call lightline#highlight('normal')
call lightline#link()
let s:_ = 0
endtry
endfunction
function! lightline#palette() abort
return s:lightline.palette
endfunction
function! lightline#mode() abort
return get(s:lightline.mode_map, mode(), '')
endfunction
let s:mode = ''
function! lightline#link(...) abort
let mode = get(s:lightline._mode_, a:0 ? a:1 : mode(), 'normal')
if s:mode ==# mode
return ''
endif
let s:mode = mode
if !has_key(s:highlight, mode)
call lightline#highlight(mode)
endif
let types = map(s:uniq(sort(filter(values(s:lightline.component_type), 'v:val !=# "raw"'))), '[v:val, 1]')
for [p, l] in [['Left', len(s:lightline.active.left)], ['Right', len(s:lightline.active.right)]]
for [i, t] in map(range(0, l), '[v:val, 0]') + types
if i != l
exec printf('hi link Lightline%s_active_%s Lightline%s_%s_%s', p, i, p, mode, i)
endif
for [j, s] in map(range(0, l), '[v:val, 0]') + types
if i + 1 == j || t || s && i != l
exec printf('hi link Lightline%s_active_%s_%s Lightline%s_%s_%s_%s', p, i, j, p, mode, i, j)
endif
endfor
endfor
endfor
exec printf('hi link LightlineMiddle_active LightlineMiddle_%s', mode)
return ''
endfunction
function! s:term(p) abort
return get(a:p, 4) !=# '' ? 'term='.a:p[4].' cterm='.a:p[4].' gui='.a:p[4] : ''
endfunction
if exists('*uniq')
let s:uniq = function('uniq')
else
function! s:uniq(xs) abort
let i = len(a:xs) - 1
while i > 0
if a:xs[i] ==# a:xs[i - 1]
call remove(a:xs, i)
endif
let i -= 1
endwhile
return a:xs
endfunction
endif
function! lightline#highlight(...) abort
let [c, f] = [s:lightline.palette, s:lightline.mode_fallback]
let [s:lightline.llen, s:lightline.rlen] = [len(c.normal.left), len(c.normal.right)]
let [s:lightline.tab_llen, s:lightline.tab_rlen] = [len(has_key(get(c, 'tabline', {}), 'left') ? c.tabline.left : c.normal.left), len(has_key(get(c, 'tabline', {}), 'right') ? c.tabline.right : c.normal.right)]
let types = map(s:uniq(sort(filter(values(s:lightline.component_type), 'v:val !=# "raw"'))), '[v:val, 1]')
let modes = a:0 ? [a:1] : extend(['normal', 'insert', 'replace', 'visual', 'inactive', 'command', 'select', 'tabline'], exists(':terminal') == 2 ? ['terminal'] : [])
for mode in modes
let s:highlight[mode] = 1
let d = has_key(c, mode) ? mode : has_key(f, mode) && has_key(c, f[mode]) ? f[mode] : 'normal'
let left = d ==# 'tabline' ? s:lightline.tabline.left : d ==# 'inactive' ? s:lightline.inactive.left : s:lightline.active.left
let right = d ==# 'tabline' ? s:lightline.tabline.right : d ==# 'inactive' ? s:lightline.inactive.right : s:lightline.active.right
let ls = has_key(get(c, d, {}), 'left') ? c[d].left : has_key(f, d) && has_key(get(c, f[d], {}), 'left') ? c[f[d]].left : c.normal.left
let ms = has_key(get(c, d, {}), 'middle') ? c[d].middle[0] : has_key(f, d) && has_key(get(c, f[d], {}), 'middle') ? c[f[d]].middle[0] : c.normal.middle[0]
let rs = has_key(get(c, d, {}), 'right') ? c[d].right : has_key(f, d) && has_key(get(c, f[d], {}), 'right') ? c[f[d]].right : c.normal.right
for [p, l, zs] in [['Left', len(left), ls], ['Right', len(right), rs]]
for [i, t] in map(range(0, l), '[v:val, 0]') + types
if i < l || i < 1
let r = t ? (has_key(get(c, d, []), i) ? c[d][i][0] : has_key(get(c, 'tabline', {}), i) ? c.tabline[i][0] : get(c.normal, i, zs)[0]) : get(zs, i, ms)
exec printf('hi Lightline%s_%s_%s guifg=%s guibg=%s ctermfg=%s ctermbg=%s %s', p, mode, i, r[0], r[1], r[2], r[3], s:term(r))
endif
for [j, s] in map(range(0, l), '[v:val, 0]') + types
if i + 1 == j || t || s && i != l
let q = s ? (has_key(get(c, d, []), j) ? c[d][j][0] : has_key(get(c, 'tabline', {}), j) ? c.tabline[j][0] : get(c.normal, j, zs)[0]) : (j != l ? get(zs, j, ms) :ms)
exec printf('hi Lightline%s_%s_%s_%s guifg=%s guibg=%s ctermfg=%s ctermbg=%s', p, mode, i, j, r[1], q[1], r[3], q[3])
endif
endfor
endfor
endfor
exec printf('hi LightlineMiddle_%s guifg=%s guibg=%s ctermfg=%s ctermbg=%s %s', mode, ms[0], ms[1], ms[2], ms[3], s:term(ms))
endfor
if !a:0 | let s:mode = '' | endif
endfunction
function! s:subseparator(components, subseparator, expanded) abort
let [a, c, f, v, u] = [a:components, s:lightline.component, s:lightline.component_function, s:lightline.component_visible_condition, s:lightline.component_function_visible_condition]
let xs = map(range(len(a:components)), 'a:expanded[v:val] ? "1" :
\ has_key(f, a[v:val]) ? (has_key(u, a[v:val]) ? "(".u[a[v:val]].")" : (exists("*".f[a[v:val]]) ? "" : "exists(\"*".f[a[v:val]]."\")&&").f[a[v:val]]."()!=#\"\"") :
\ has_key(v, a[v:val]) ? "(".v[a[v:val]].")" : has_key(c, a[v:val]) ? "1" : "0"')
return '%{' . (xs[0] ==# '1' || xs[0] ==# '(1)' ? '' : xs[0] . '&&(') . join(xs[1:], '||') . (xs[0] ==# '1' || xs[0] ==# '(1)' ? '' : ')') . '?"' . a:subseparator . '":""}'
endfunction
function! lightline#concatenate(xs, right) abort
let separator = a:right ? s:lightline.subseparator.right : s:lightline.subseparator.left
return join(filter(copy(a:xs), 'v:val !=# ""'), ' ' . separator . ' ')
endfunction
function! lightline#statusline(inactive) abort
if a:inactive && !has_key(s:highlight, 'inactive')
call lightline#highlight('inactive')
endif
return s:line(0, a:inactive)
endfunction
function! s:normalize(result) abort
if type(a:result) == 3
return map(a:result, 'type(v:val) == 1 ? v:val : string(v:val)')
elseif type(a:result) == 1
return [a:result]
else
return [string(a:result)]
endif
endfunction
function! s:evaluate_expand(component) abort
try
let result = eval(a:component . '()')
if type(result) == 1 && result ==# ''
return []
endif
catch
return []
endtry
return map(type(result) == 3 ? (result + [[], [], []])[:2] : [[], [result], []], 'filter(s:normalize(v:val), "v:val !=# ''''")')
endfunction
function! s:convert(name, index) abort
if !has_key(s:lightline.component_expand, a:name)
return [[[a:name], 0, a:index, a:index]]
else
let type = get(s:lightline.component_type, a:name, a:index)
let is_raw = get(s:lightline.component_raw, a:name) || type ==# 'raw'
return filter(map(s:evaluate_expand(s:lightline.component_expand[a:name]),
\ '[v:val, 1 + ' . is_raw . ', v:key == 1 && ' . (type !=# 'raw') . ' ? "' . type . '" : "' . a:index . '", "' . a:index . '"]'), 'v:val[0] != []')
endif
endfunction
function! s:expand(components) abort
let components = []
let expanded = []
let indices = []
let prevtype = ''
let previndex = -1
let xs = []
call map(deepcopy(a:components), 'map(v:val, "extend(xs, s:convert(v:val, ''" . v:key . "''))")')
for [component, expand, type, index] in xs
if prevtype !=# type
for i in range(previndex + 1, max([previndex, index - 1]))
call add(indices, string(i))
call add(components, [])
call add(expanded, [])
endfor
call add(indices, type)
call add(components, [])
call add(expanded, [])
endif
call extend(components[-1], component)
call extend(expanded[-1], repeat([expand], len(component)))
let prevtype = type
let previndex = index
endfor
for i in range(previndex + 1, max([previndex, len(a:components) - 1]))
call add(indices, string(i))
call add(components, [])
call add(expanded, [])
endfor
call add(indices, string(len(a:components)))
return [components, expanded, indices]
endfunction
function! s:func(name) abort
return exists('*' . a:name) ? '%{' . a:name . '()}' : '%{exists("*' . a:name . '")?' . a:name . '():""}'
endfunction
function! s:line(tabline, inactive) abort
let _ = a:tabline ? '' : '%{lightline#link()}'
if s:lightline.palette == {}
call lightline#colorscheme()
endif
let [l, r] = a:tabline ? [s:lightline.tab_llen, s:lightline.tab_rlen] : [s:lightline.llen, s:lightline.rlen]
let [p, s] = a:tabline ? [s:lightline.tabline_separator, s:lightline.tabline_subseparator] : [s:lightline.separator, s:lightline.subseparator]
let [c, f, t, w] = [s:lightline.component, s:lightline.component_function, s:lightline.component_type, s:lightline.component_raw]
let mode = a:tabline ? 'tabline' : a:inactive ? 'inactive' : 'active'
let ls = has_key(s:lightline, mode) ? s:lightline[mode].left : s:lightline.active.left
let [lc, le, li] = s:expand(ls)
let rs = has_key(s:lightline, mode) ? s:lightline[mode].right : s:lightline.active.right
let [rc, re, ri] = s:expand(rs)
for i in range(len(lc))
let _ .= '%#LightlineLeft_' . mode . '_' . li[i] . '#'
for j in range(len(lc[i]))
let x = le[i][j] ? lc[i][j] : has_key(f, lc[i][j]) ? s:func(f[lc[i][j]]) : get(c, lc[i][j], '')
let _ .= has_key(t, lc[i][j]) && t[lc[i][j]] ==# 'raw' || get(w, lc[i][j]) || le[i][j] ==# 2 || x ==# '' ? x : '%( ' . x . ' %)'
if j < len(lc[i]) - 1 && s.left !=# ''
let _ .= s:subseparator(lc[i][(j):], s.left, le[i][(j):])
endif
endfor
let _ .= '%#LightlineLeft_' . mode . '_' . li[i] . '_' . li[i + 1] . '#'
let _ .= i < l + len(lc) - len(ls) && li[i] < l || li[i] != li[i + 1] ? p.left : len(lc[i]) ? s.left : ''
endfor
let _ .= '%#LightlineMiddle_' . mode . '#%='
for i in range(len(rc) - 1, 0, -1)
let _ .= '%#LightlineRight_' . mode . '_' . ri[i] . '_' . ri[i + 1] . '#'
let _ .= i < r + len(rc) - len(rs) && ri[i] < r || ri[i] != ri[i + 1] ? p.right : len(rc[i]) ? s.right : ''
let _ .= '%#LightlineRight_' . mode . '_' . ri[i] . '#'
for j in range(len(rc[i]))
let x = re[i][j] ? rc[i][j] : has_key(f, rc[i][j]) ? s:func(f[rc[i][j]]) : get(c, rc[i][j], '')
let _ .= has_key(t, rc[i][j]) && t[rc[i][j]] ==# 'raw' || get(w, rc[i][j]) || re[i][j] ==# 2 || x ==# '' ? x : '%( ' . x . ' %)'
if j < len(rc[i]) - 1 && s.right !=# ''
let _ .= s:subseparator(rc[i][(j):], s.right, re[i][(j):])
endif
endfor
endfor
return _
endfunction
let s:tabnr = -1
let s:tabcnt = -1
let s:columns = -1
let s:tabline = ''
function! lightline#tabline() abort
if !has_key(s:highlight, 'tabline')
call lightline#highlight('tabline')
endif
if s:lightline.tabline_configured || s:tabnr != tabpagenr() || s:tabcnt != tabpagenr('$') || s:columns != &columns
let s:tabnr = tabpagenr()
let s:tabcnt = tabpagenr('$')
let s:columns = &columns
let s:tabline = s:line(1, 0)
endif
return s:tabline
endfunction
function! lightline#tabs() abort
let [x, y, z] = [[], [], []]
let nr = tabpagenr()
let cnt = tabpagenr('$')
for i in range(1, cnt)
call add(i < nr ? x : i == nr ? y : z, (i > nr + 3 ? '%<' : '') . '%' . i . 'T%{lightline#onetab(' . i . ',' . (i == nr) . ')}' . (i == cnt ? '%T' : ''))
endfor
let abbr = '...'
let n = min([max([&columns / 40, 2]), 8])
if len(x) > n && len(z) > n
let x = extend(add(x[:n/2-1], abbr), x[-(n+1)/2:])
let z = extend(add(z[:(n+1)/2-1], abbr), z[-n/2:])
elseif len(x) + len(z) > 2 * n
if len(x) > n
let x = extend(add(x[:(2*n-len(z))/2-1], abbr), x[-(2*n-len(z)+1)/2:])
elseif len(z) > n
let z = extend(add(z[:(2*n-len(x)+1)/2-1], abbr), z[-(2*n-len(x))/2:])
endif
endif
return [x, y, z]
endfunction
function! lightline#onetab(n, active) abort
let _ = []
for name in a:active ? s:lightline.tab.active : s:lightline.tab.inactive
if has_key(s:lightline.tab_component_function, name)
call add(_, call(s:lightline.tab_component_function[name], [a:n]))
else
call add(_, get(s:lightline.tab_component, name, ''))
endif
endfor
return join(filter(_, 'v:val !=# ""'), ' ')
endfunction
function! lightline#error(msg) abort
echohl ErrorMsg
echomsg 'lightline.vim: '.a:msg
echohl None
endfunction
let &cpo = s:save_cpo
unlet s:save_cpo

View File

@@ -0,0 +1,257 @@
" =============================================================================
" Filename: autoload/lightline/colorscheme.vim
" Author: itchyny
" License: MIT License
" Last Change: 2019/09/07 11:20:37.
" =============================================================================
let s:save_cpo = &cpo
set cpo&vim
let s:cuicolor = {
\ 'black' : 16,
\ 'white' : 231,
\
\ 'darkestgreen' : 22,
\ 'darkgreen' : 28,
\ 'mediumgreen' : 70,
\ 'brightgreen' : 148,
\
\ 'darkestcyan' : 23,
\ 'mediumcyan' : 117,
\
\ 'darkestblue' : 24,
\ 'darkblue' : 31,
\
\ 'darkestred' : 52,
\ 'darkred' : 88,
\ 'mediumred' : 124,
\ 'brightred' : 160,
\ 'brightestred' : 196,
\
\ 'darkestpurple' : 55,
\ 'mediumpurple' : 98,
\ 'brightpurple' : 189,
\
\ 'brightorange' : 208,
\ 'brightestorange': 214,
\
\ 'gray0' : 233,
\ 'gray1' : 235,
\ 'gray2' : 236,
\ 'gray3' : 239,
\ 'gray4' : 240,
\ 'gray5' : 241,
\ 'gray6' : 244,
\ 'gray7' : 245,
\ 'gray8' : 247,
\ 'gray9' : 250,
\ 'gray10' : 252,
\
\ 'yellow' : 136,
\ 'orange' : 166,
\ 'red' : 160,
\ 'magenta' : 125,
\ 'violet' : 61,
\ 'blue' : 33,
\ 'cyan' : 37,
\ 'green' : 64,
\ }
let s:guicolor = {
\ 'black' : '#000000',
\ 'white' : '#ffffff',
\
\ 'darkestgreen' : '#005f00',
\ 'darkgreen' : '#008700',
\ 'mediumgreen' : '#5faf00',
\ 'brightgreen' : '#afdf00',
\
\ 'darkestcyan' : '#005f5f',
\ 'mediumcyan' : '#87dfff',
\
\ 'darkestblue' : '#005f87',
\ 'darkblue' : '#0087af',
\
\ 'darkestred' : '#5f0000',
\ 'darkred' : '#870000',
\ 'mediumred' : '#af0000',
\ 'brightred' : '#df0000',
\ 'brightestred' : '#ff0000',
\
\ 'darkestpurple' : '#5f00af',
\ 'mediumpurple' : '#875fdf',
\ 'brightpurple' : '#dfdfff',
\
\ 'brightorange' : '#ff8700',
\ 'brightestorange': '#ffaf00',
\
\ 'gray0' : '#121212',
\ 'gray1' : '#262626',
\ 'gray2' : '#303030',
\ 'gray3' : '#4e4e4e',
\ 'gray4' : '#585858',
\ 'gray5' : '#606060',
\ 'gray6' : '#808080',
\ 'gray7' : '#8a8a8a',
\ 'gray8' : '#9e9e9e',
\ 'gray9' : '#bcbcbc',
\ 'gray10' : '#d0d0d0',
\
\ 'yellow' : '#b58900',
\ 'orange' : '#cb4b16',
\ 'red' : '#dc322f',
\ 'magenta' : '#d33682',
\ 'violet' : '#6c71c4',
\ 'blue' : '#268bd2',
\ 'cyan' : '#2aa198',
\ 'green' : '#859900',
\ }
function! s:convert(rgb) abort
let rgb = map(matchlist(a:rgb, '#\(..\)\(..\)\(..\)')[1:3], '0 + ("0x".v:val)')
if len(rgb) == 0
return 0
endif
if rgb[0] == 0xc0 && rgb[1] == 0xc0 && rgb[2] == 0xc0
return 7
elseif rgb[0] == 0x80 && rgb[1] == 0x80 && rgb[2] == 0x80
return 8
elseif (rgb[0] == 0x80 || rgb[0] == 0x00) && (rgb[1] == 0x80 || rgb[1] == 0x00) && (rgb[2] == 0x80 || rgb[2] == 0x00)
return (rgb[0] / 0x80) + (rgb[1] / 0x80) * 2 + (rgb[1] / 0x80) * 4
elseif abs(rgb[0]-rgb[1]) < 3 && abs(rgb[1]-rgb[2]) < 3 && abs(rgb[2]-rgb[0]) < 3
return s:black((rgb[0] + rgb[1] + rgb[2]) / 3)
else
return 16 + ((s:nr(rgb[0]) * 6) + s:nr(rgb[1])) * 6 + s:nr(rgb[2])
endif
endfunction
function! s:black(x) abort
if a:x < 0x04
return 16
elseif a:x > 0xf4
return 231
elseif index([0x00, 0x5f, 0x87, 0xaf, 0xdf, 0xff], a:x) >= 0
let l = a:x / 0x30
return ((l * 6) + l) * 6 + l + 16
else
return 232 + (a:x < 8 ? 0 : a:x < 0x60 ? (a:x-8)/10 : a:x < 0x76 ? (a:x-0x60)/6+9 : (a:x-8)/10)
endif
endfunction
function! s:nr(x) abort
return a:x < 0x2f ? 0 : a:x < 0x73 ? 1 : a:x < 0x9b ? 2 : a:x < 0xc7 ? 3 : a:x < 0xef ? 4 : 5
endfunction
function! s:rgb(r, g, b) abort
return printf('#%02x%02x%02x', a:r, a:g, a:b)
endfunction
function! s:upconvert(nr) abort
let x = a:nr * 1
if x < 7
let [b, rg] = [x / 4, x % 4]
let [g, r] = [rg / 2, rg % 2]
return s:rgb(r * 0x80, g * 0x80, b * 0x80)
elseif x == 7
return s:rgb(0xc0, 0xc0, 0xc0)
elseif x == 8
return s:rgb(0x80, 0x80, 0x80)
elseif x < 16
let y = x - 8
let [b, rg] = [y / 4, y % 4]
let [g, r] = [rg / 2, rg % 2]
return s:rgb(r * 0xff, g * 0xff, b * 0xff)
elseif x < 232
let y = x - 16
let [rg, b] = [y / 6, y % 6]
let [r, g] = [rg / 6, rg % 6]
let l = [0x00, 0x5f, 0x87, 0xaf, 0xdf, 0xff]
return s:rgb(l[r], l[g], l[b])
elseif x < 241
let k = (x - 232) * 10 + 8
return s:rgb(k, k, k)
elseif x < 243
let k = (x - 241) * 6 + 0x60
return s:rgb(k, k, k)
else
let k = (x - 232) * 10 + 8
return s:rgb(k, k, k)
endif
endfunction
function! lightline#colorscheme#fill(p) abort
for k in values(a:p)
for l in values(k)
for m in l
if len(m) < 4
if type(m[0]) == 1 && type(m[1]) == 1
if m[0] =~# '^\d\+$' && m[1] =~# '^\d\+$'
call insert(m, s:upconvert(m[1]), 0)
call insert(m, s:upconvert(m[1]), 0)
else
call insert(m, get(s:cuicolor, m[0], s:convert(m[0])), 2)
call insert(m, get(s:cuicolor, m[1], s:convert(m[1])), 3)
let m[0] = get(s:guicolor, m[0], m[0])
let m[1] = get(s:guicolor, m[1], m[1])
endif
elseif type(m[0]) == 0 && type(m[1]) == 0
call insert(m, s:upconvert(m[1]), 0)
call insert(m, s:upconvert(m[1]), 0)
endif
endif
endfor
endfor
endfor
return a:p
endfunction
function! lightline#colorscheme#flatten(p) abort
for k in values(a:p)
for l in values(k)
for m in range(len(l))
let attr = ''
if len(l[m]) == 3 && type(l[m][2]) == 1
let attr = l[m][2]
endif
let l[m] = [l[m][0][0], l[m][1][0], l[m][0][1], l[m][1][1]]
if !empty(attr)
call add(l[m], attr)
endif
endfor
endfor
endfor
return a:p
endfunction
if has('gui_running') || (has('termguicolors') && &termguicolors)
function! lightline#colorscheme#background() abort
return &background
endfunction
else
" &background is set inappropriately when the colorscheme sets ctermbg of the Normal group
function! lightline#colorscheme#background() abort
let bg_color = synIDattr(synIDtrans(hlID('Normal')), 'bg', 'cterm')
if bg_color !=# ''
if bg_color < 16
return &background
elseif 232 <= bg_color && bg_color < 244
return 'dark'
elseif 244 <= bg_color
return 'light'
endif
endif
let fg_color = synIDattr(synIDtrans(hlID('Normal')), 'fg', 'cterm')
if fg_color !=# ''
if fg_color < 7 || 232 <= fg_color && fg_color < 244
return 'light'
elseif 8 <= fg_color && fg_color < 16 || 244 <= fg_color
return 'dark'
endif
endif
return &background
endfunction
endif
let &cpo = s:save_cpo
unlet s:save_cpo

View File

@@ -0,0 +1,53 @@
" =============================================================================
" Filename: autoload/lightline/colorscheme/16color.vim
" Author: itchyny, jackno
" License: MIT License
" =============================================================================
let s:black = [ '#000000', 0 ]
let s:maroon = [ '#800000', 1 ]
let s:green = [ '#008000', 2 ]
let s:olive = [ '#808000', 3 ]
let s:navy = [ '#000080', 4 ]
let s:purple = [ '#800080', 5 ]
let s:teal = [ '#008080', 6 ]
let s:silver = [ '#c0c0c0', 7 ]
let s:gray = [ '#808080', 8]
let s:red = [ '#ff0000', 9 ]
let s:lime = [ '#00ff00', 10 ]
let s:yellow = [ '#ffff00', 11 ]
let s:blue = [ '#0000ff', 12 ]
let s:fuchsia = [ '#ff00ff', 13 ]
let s:aqua = [ '#00ffff', 14 ]
let s:white = [ '#ffffff', 15 ]
if lightline#colorscheme#background() ==# 'light'
let [s:black, s:white] = [s:white, s:black]
let [s:silver, s:gray] = [s:gray, s:silver]
let [s:blue, s:aqua] = [s:aqua, s:blue]
let [s:purple, s:fuchsia] = [s:fuchsia, s:purple]
let [s:green, s:lime] = [s:lime, s:green]
let [s:red, s:yellow] = [s:yellow, s:red]
endif
let s:p = {'normal': {}, 'inactive': {}, 'insert': {}, 'replace': {}, 'visual': {}, 'tabline': {}}
let s:p.normal.left = [ [ s:white, s:blue ], [ s:white, s:gray ] ]
let s:p.normal.middle = [ [ s:silver, s:black ] ]
let s:p.normal.right = [ [ s:white, s:blue ], [ s:white, s:gray ] ]
let s:p.normal.error = [ [ s:black, s:red ] ]
let s:p.normal.warning = [ [ s:black, s:yellow ] ]
let s:p.inactive.left = [ [ s:silver, s:gray ], [ s:gray, s:black ] ]
let s:p.inactive.middle = [ [ s:silver, s:black ] ]
let s:p.inactive.right = [ [ s:silver, s:gray ], [ s:gray, s:black ] ]
let s:p.insert.left = [ [ s:white, s:green ], [ s:white, s:gray ] ]
let s:p.insert.right = copy(s:p.insert.left)
let s:p.replace.left = [ [ s:white, s:red ], [ s:white, s:gray ] ]
let s:p.replace.right = copy(s:p.replace.left)
let s:p.visual.left = [ [ s:white, s:purple ], [ s:white, s:gray ] ]
let s:p.visual.right = copy(s:p.visual.left)
let s:p.tabline.left = [ [ s:silver, s:black ] ]
let s:p.tabline.tabsel = copy(s:p.normal.right)
let s:p.tabline.middle = [ [ s:silver, s:black ] ]
let s:p.tabline.right = copy(s:p.normal.right)
let g:lightline#colorscheme#16color#palette = lightline#colorscheme#flatten(s:p)

View File

@@ -0,0 +1,44 @@
" =============================================================================
" Filename: autoload/lightline/colorscheme/OldHope.vim
" Author: tomb0y
" License: MIT License
" Last Change: 2017/10/15 06:20:54.
" =============================================================================
let s:yellow = [ '#e5cd52' , 221 ]
let s:blue = [ '#4fb4d8' , 39 ]
let s:red = [ '#f92672' , 161 ]
let s:green = [ '#78bd65' , 41 ]
let s:orange = [ '#ef7c2a' , 202 ]
let s:white = [ '#ffffff' , 15 ]
let s:lightGray = [ '#848794' , 245 ]
let s:gray = [ '#686b78' , 242 ]
let s:darkGray = [ '#45474f' , 238 ]
let s:veryDarkGray = [ '#1c1d21' , 234 ]
let s:p = {'normal': {}, 'inactive': {}, 'insert': {}, 'replace': {}, 'visual': {}, 'tabline': {}}
let s:p.normal.left = [ [ s:white, s:blue ], [ s:white, s:gray ] ]
let s:p.insert.left = [ [ s:white, s:green ], [ s:white, s:gray ] ]
let s:p.visual.left = [ [ s:white, s:orange ], [ s:white, s:gray ] ]
let s:p.replace.left = [ [ s:white, s:red ], [ s:white, s:gray ] ]
let s:p.inactive.right = [ [ s:darkGray, s:gray ], [ s:darkGray, s:gray ] ]
let s:p.inactive.left = [ [ s:lightGray, s:darkGray ], [ s:white, s:darkGray ] ]
let s:p.inactive.middle = [ [ s:white, s:darkGray ] ]
let s:p.normal.middle = [ [ s:white, s:darkGray ] ]
let s:p.normal.error = [ [ s:red, s:darkGray ] ]
let s:p.normal.warning = [ [ s:orange, s:darkGray ] ]
let s:p.tabline.left = [ [ s:lightGray, s:darkGray ] ]
let s:p.tabline.tabsel = [ [ s:darkGray, s:yellow ] ]
let s:p.tabline.middle = [ [ s:yellow, s:veryDarkGray ] ]
let s:p.normal.right = copy(s:p.normal.left)
let s:p.insert.right = copy(s:p.insert.left)
let s:p.visual.right = copy(s:p.visual.left)
let s:p.replace.right = copy(s:p.replace.left)
let s:p.tabline.right = copy(s:p.tabline.left)
let g:lightline#colorscheme#OldHope#palette = lightline#colorscheme#flatten(s:p)

View File

@@ -0,0 +1,12 @@
" =============================================================================
" Filename: autoload/lightline/colorscheme/PaperColor.vim
" Author: TKNGUE
" License: MIT License
" Last Change: 2017/11/25 11:13:35.
" =============================================================================
if lightline#colorscheme#background() ==# 'light'
let g:lightline#colorscheme#PaperColor#palette = g:lightline#colorscheme#PaperColor_light#palette
else
let g:lightline#colorscheme#PaperColor#palette = g:lightline#colorscheme#PaperColor_dark#palette
endif

View File

@@ -0,0 +1,60 @@
" =============================================================================
" Filename: autoload/lightline/colorscheme/PaperColor_dark.vim
" Author: TKNGUE
" License: MIT License
" Last Change: 2015-07-27 06:01
" =============================================================================
let s:red = '#df0000'
let s:green = '#008700'
let s:blue = '#00afaf'
let s:pink = '#afdf00'
let s:olive = '#dfaf5f'
let s:navy = '#df875f'
let s:orange = '#d75f00'
let s:purple = '#8959a8'
let s:aqua = '#3e999f'
" Basics:
let s:foreground = '#d0d0d0'
let s:background = '#444444'
let s:window = '#efefef'
let s:status = '#c6c6c6'
let s:error = '#5f0000'
" Tabline:
let s:tabline_bg = '#3a3a3a'
let s:tabline_active_fg = '#1c1c1c'
let s:tabline_active_bg = '#00afaf'
let s:tabline_inactive_fg = '#c6c6c6'
let s:tabline_inactive_bg = '#585858'
" Statusline:
let s:statusline_active_fg = '#1c1c1c'
let s:statusline_active_bg = '#5f8787'
let s:statusline_inactive_fg = '#c6c6c6'
let s:statusline_inactive_bg = '#444444'
" Visual:
let s:visual_fg = '#000000'
let s:visual_bg = '#8787af'
let s:p = {'normal': {}, 'inactive': {}, 'insert': {}, 'replace': {}, 'visual': {}, 'tabline': {}}
let s:p.normal.left = [ [ s:foreground, s:background ], [ s:statusline_active_fg, s:status ], [ s:statusline_active_fg, s:statusline_active_bg ] ]
let s:p.normal.right = [ [ s:foreground, s:background ], [ s:statusline_active_fg, s:status ], [ s:statusline_active_fg, s:statusline_active_bg ] ]
let s:p.normal.middle = [ [ s:statusline_active_fg, s:statusline_active_bg ]]
let s:p.inactive.right = [ [ s:foreground, s:background ], [ s:foreground, s:background ] ]
let s:p.inactive.left = [ [ s:foreground, s:background ], [ s:foreground, s:background ] ]
let s:p.inactive.middle = [ [ s:foreground, s:background ], ]
let s:p.insert.left = [ [ s:background, s:blue], [ s:statusline_active_fg, s:status ], [ s:statusline_active_fg, s:statusline_active_bg ] ]
let s:p.replace.left = [ [ s:background, s:pink ], [s:statusline_active_fg, s:status ], [ s:statusline_active_fg, s:statusline_active_bg ] ]
let s:p.visual.left = [ [ s:visual_fg, s:visual_bg ], [s:statusline_active_fg, s:status ], [ s:statusline_active_fg, s:statusline_active_bg ] ]
let s:p.tabline.left = [ [s:tabline_inactive_fg, s:tabline_inactive_bg ]]
let s:p.tabline.tabsel = [ [s:tabline_active_fg, s:tabline_active_bg ] ]
let s:p.tabline.middle = [ [s:tabline_bg, s:tabline_bg]]
let s:p.tabline.right = copy(s:p.normal.right)
let s:p.normal.error = [ [ s:background, s:error ] ]
let g:lightline#colorscheme#PaperColor_dark#palette = lightline#colorscheme#fill(s:p)

View File

@@ -0,0 +1,55 @@
" =============================================================================
" Filename: autoload/lightline/colorscheme/PaperColor_light.vim
" Author: TKNGUE
" License: MIT License
" Last Change: 2015/07/28 07:46:40.
" =============================================================================
let s:red = '#df0000'
let s:green = '#008700'
let s:blue = '#4271ae'
let s:pink = '#d7005f'
let s:olive = '#718c00'
let s:navy = '#005f87'
let s:orange = '#d75f00'
let s:purple = '#8959a8'
let s:aqua = '#3e999f'
" Basics:
let s:foreground = '#4d4d4c'
let s:background = '#F5F5F5'
let s:window = '#efefef'
let s:status = s:aqua
let s:error = '#ffafdf'
" Tabline:
let s:tabline_bg = s:navy
let s:tabline_active_fg = s:foreground
let s:tabline_active_bg = s:window
let s:tabline_inactive_fg = s:background
let s:tabline_inactive_bg = s:aqua
" Statusline:
let s:statusline_active_fg = s:window
let s:statusline_active_bg = s:navy
let s:statusline_inactive_fg = s:foreground
let s:statusline_inactive_bg = '#dadada'
let s:p = {'normal': {}, 'inactive': {}, 'insert': {}, 'replace': {}, 'visual': {}, 'tabline': {}}
let s:p.normal.left = [ [ s:foreground, s:background ], [ s:statusline_active_fg, s:status ], [ s:statusline_active_fg, s:statusline_active_bg ] ]
let s:p.normal.right = [ [ s:foreground, s:background ], [ s:statusline_active_fg, s:status ], [ s:statusline_active_fg, s:statusline_active_bg ] ]
let s:p.normal.middle = [ [ s:statusline_active_fg, s:statusline_active_bg ]]
let s:p.inactive.right = [ [ s:foreground, s:background ], [ s:foreground, s:background ] ]
let s:p.inactive.left = [ [ s:foreground, s:background ], [ s:foreground, s:background ] ]
let s:p.inactive.middle = [ [ s:foreground, s:background ], ]
let s:p.insert.left = [ [ s:blue, s:background ], [ s:statusline_active_fg, s:status ], [ s:statusline_active_fg, s:statusline_active_bg ] ]
let s:p.replace.left = [ [ s:background, s:pink ], [s:statusline_active_fg, s:status ], [ s:statusline_active_fg, s:statusline_active_bg ] ]
let s:p.visual.left = [ [ s:background, s:orange ], [s:statusline_active_fg, s:status ], [ s:statusline_active_fg, s:statusline_active_bg ] ]
let s:p.tabline.left = [ [s:tabline_inactive_fg, s:tabline_inactive_bg ]]
let s:p.tabline.tabsel = [ [s:tabline_active_fg, s:tabline_active_bg ] ]
let s:p.tabline.middle = [ [s:tabline_bg, s:tabline_bg]]
let s:p.tabline.right = copy(s:p.normal.right)
let s:p.normal.error = [ [ s:background, s:error ] ]
let s:p.normal.warning = [ [ s:background, s:olive ] ]
let g:lightline#colorscheme#PaperColor_light#palette = lightline#colorscheme#fill(s:p)

View File

@@ -0,0 +1,41 @@
" =============================================================================
" Filename: autoload/lightline/colorscheme/Tomorrow.vim
" Author: itchyny
" License: MIT License
" Last Change: 2013/09/07 12:22:37.
" =============================================================================
let s:base03 = '#fafafa'
let s:base023 = '#dfdfdf'
let s:base02 = '#c8c8c8'
let s:base01 = '#b4b4b4'
let s:base00 = '#808080'
let s:base0 = '#666666'
let s:base1 = '#555555'
let s:base2 = '#4f4f4f'
let s:base3 = '#4d4d4c'
let s:red = '#c82829'
let s:orange = '#f5871f'
let s:yellow = '#eab700'
let s:green = '#718c00'
let s:cyan = '#3e999f'
let s:blue = '#4271ae'
let s:magenta = '#8959a8'
let s:p = {'normal': {}, 'inactive': {}, 'insert': {}, 'replace': {}, 'visual': {}, 'tabline': {}}
let s:p.normal.left = [ [ s:base02, s:blue ], [ s:base3, s:base01 ] ]
let s:p.normal.right = [ [ s:base02, s:base0 ], [ s:base1, s:base01 ] ]
let s:p.inactive.right = [ [ s:base02, s:base00 ], [ s:base00, s:base02 ] ]
let s:p.inactive.left = [ [ s:base0, s:base02 ], [ s:base00, s:base03 ] ]
let s:p.insert.left = [ [ s:base02, s:green ], [ s:base3, s:base01 ] ]
let s:p.replace.left = [ [ s:base02, s:orange ], [ s:base3, s:base01 ] ]
let s:p.visual.left = [ [ s:base02, s:magenta ], [ s:base3, s:base01 ] ]
let s:p.normal.middle = [ [ s:base1, s:base02 ] ]
let s:p.inactive.middle = [ [ s:base0, s:base02 ] ]
let s:p.tabline.left = [ [ s:base2, s:base01 ] ]
let s:p.tabline.tabsel = [ [ s:base2, s:base023 ] ]
let s:p.tabline.middle = [ [ s:base01, s:base00 ] ]
let s:p.tabline.right = copy(s:p.normal.right)
let s:p.normal.error = [ [ s:red, s:base01 ] ]
let s:p.normal.warning = [ [ s:yellow, s:base0 ] ]
let g:lightline#colorscheme#Tomorrow#palette = lightline#colorscheme#fill(s:p)

View File

@@ -0,0 +1,41 @@
" =============================================================================
" Filename: autoload/lightline/colorscheme/Tomorrow_Night.vim
" Author: itchyny
" License: MIT License
" Last Change: 2013/09/07 12:23:38.
" =============================================================================
let s:base3 = '#c5c8c6'
let s:base2 = '#bababa'
let s:base1 = '#a0a0a0'
let s:base0 = '#909090'
let s:base00 = '#666666'
let s:base01 = '#555555'
let s:base02 = '#434343'
let s:base023 = '#303030'
let s:base03 = '#1d1f21'
let s:red = '#cc6666'
let s:orange = '#de935f'
let s:yellow = '#f0c674'
let s:green = '#b5bd68'
let s:cyan = '#8abeb7'
let s:blue = '#81a2be'
let s:magenta = '#b294bb'
let s:p = {'normal': {}, 'inactive': {}, 'insert': {}, 'replace': {}, 'visual': {}, 'tabline': {}}
let s:p.normal.left = [ [ s:base02, s:blue ], [ s:base3, s:base01 ] ]
let s:p.normal.right = [ [ s:base02, s:base0 ], [ s:base1, s:base01 ] ]
let s:p.inactive.right = [ [ s:base02, s:base00 ], [ s:base00, s:base02 ] ]
let s:p.inactive.left = [ [ s:base0, s:base02 ], [ s:base00, s:base03 ] ]
let s:p.insert.left = [ [ s:base02, s:green ], [ s:base3, s:base01 ] ]
let s:p.replace.left = [ [ s:base02, s:orange ], [ s:base3, s:base01 ] ]
let s:p.visual.left = [ [ s:base02, s:magenta ], [ s:base3, s:base01 ] ]
let s:p.normal.middle = [ [ s:base1, s:base02 ] ]
let s:p.inactive.middle = [ [ s:base0, s:base02 ] ]
let s:p.tabline.left = [ [ s:base2, s:base01 ] ]
let s:p.tabline.tabsel = [ [ s:base2, s:base023 ] ]
let s:p.tabline.middle = [ [ s:base01, s:base0 ] ]
let s:p.tabline.right = copy(s:p.normal.right)
let s:p.normal.error = [ [ s:red, s:base023 ] ]
let s:p.normal.warning = [ [ s:yellow, s:base02 ] ]
let g:lightline#colorscheme#Tomorrow_Night#palette = lightline#colorscheme#fill(s:p)

View File

@@ -0,0 +1,43 @@
" =============================================================================
" Filename: autoload/lightline/colorscheme/Tomorrow_Night_Blue.vim
" Author: itchyny
" License: MIT License
" Last Change: 2013/09/07 14:13:21.
" =============================================================================
let s:base3 = '#ffffff'
let s:base23 = '#ffffff'
let s:base2 = '#ffffff'
let s:base1 = '#ffffff'
let s:base0 = '#ffffff'
let s:base00 = '#6060df'
let s:base01 = '#6060af'
let s:base02 = '#606087'
let s:base023 = '#202087'
let s:base03 = '#002451'
let s:red = '#ff9da4'
let s:orange = '#ffc58f'
let s:yellow = '#ffeead'
let s:green = '#d1f1a9'
let s:cyan = '#99ffff'
let s:blue = '#bbdaff'
let s:magenta = '#ebbbff'
let s:p = {'normal': {}, 'inactive': {}, 'insert': {}, 'replace': {}, 'visual': {}, 'tabline': {}}
let s:p.normal.left = [ [ s:base023, s:blue ], [ s:base3, s:base01 ] ]
let s:p.normal.right = [ [ s:base02, s:base1 ], [ s:base2, s:base01 ] ]
let s:p.inactive.right = [ [ s:base02, s:base0 ], [ s:base1, s:base01 ] ]
let s:p.inactive.left = [ [ s:base02, s:base0 ], [ s:base00, s:base03 ] ]
let s:p.insert.left = [ [ s:base023, s:green ], [ s:base3, s:base01 ] ]
let s:p.replace.left = [ [ s:base023, s:orange ], [ s:base3, s:base01 ] ]
let s:p.visual.left = [ [ s:base023, s:magenta ], [ s:base3, s:base01 ] ]
let s:p.normal.middle = [ [ s:base1, s:base02 ] ]
let s:p.inactive.middle = [ [ s:base0, s:base02 ] ]
let s:p.tabline.left = [ [ s:base2, s:base01 ] ]
let s:p.tabline.tabsel = [ [ s:base2, s:base03 ] ]
let s:p.tabline.middle = [ [ s:base01, s:base1 ] ]
let s:p.tabline.right = copy(s:p.normal.right)
let s:p.normal.error = [ [ s:base023, s:red ] ]
let s:p.normal.warning = [ [ s:base023, s:yellow ] ]
let g:lightline#colorscheme#Tomorrow_Night_Blue#palette = lightline#colorscheme#fill(s:p)

View File

@@ -0,0 +1,42 @@
" =============================================================================
" Filename: autoload/lightline/colorscheme/Tomorrow_Night_Bright.vim
" Author: itchyny
" License: MIT License
" Last Change: 2013/09/07 14:13:26.
" =============================================================================
let s:base3 = '#eaeaea'
let s:base23 = '#d0d0d0'
let s:base2 = '#c6c6c6'
let s:base1 = '#b2b2b2'
let s:base0 = '#949494'
let s:base00 = '#767676'
let s:base01 = '#606060'
let s:base02 = '#4e4e4e'
let s:base023 = '#262626'
let s:base03 = '#12124c'
let s:red = '#d54e53'
let s:orange = '#e78c45'
let s:yellow = '#e7c547'
let s:green = '#b9ca4a'
let s:cyan = '#70c0b1'
let s:blue = '#7aa6da'
let s:magenta = '#c397d8'
let s:p = {'normal': {}, 'inactive': {}, 'insert': {}, 'replace': {}, 'visual': {}, 'tabline': {}}
let s:p.normal.left = [ [ s:base023, s:blue ], [ s:base3, s:base01 ] ]
let s:p.normal.right = [ [ s:base02, s:base1 ], [ s:base2, s:base01 ] ]
let s:p.inactive.right = [ [ s:base02, s:base0 ], [ s:base1, s:base01 ] ]
let s:p.inactive.left = [ [ s:base02, s:base0 ], [ s:base00, s:base03 ] ]
let s:p.insert.left = [ [ s:base023, s:green ], [ s:base3, s:base01 ] ]
let s:p.replace.left = [ [ s:base023, s:orange ], [ s:base3, s:base01 ] ]
let s:p.visual.left = [ [ s:base023, s:magenta ], [ s:base3, s:base01 ] ]
let s:p.normal.middle = [ [ s:base1, s:base02 ] ]
let s:p.inactive.middle = [ [ s:base0, s:base02 ] ]
let s:p.tabline.left = [ [ s:base2, s:base01 ] ]
let s:p.tabline.tabsel = [ [ s:base2, s:base023 ] ]
let s:p.tabline.middle = [ [ s:base01, s:base1 ] ]
let s:p.tabline.right = copy(s:p.normal.right)
let s:p.normal.error = [ [ s:red, s:base023 ] ]
let s:p.normal.warning = [ [ s:yellow, s:base02 ] ]
let g:lightline#colorscheme#Tomorrow_Night_Bright#palette = lightline#colorscheme#fill(s:p)

View File

@@ -0,0 +1,42 @@
" =============================================================================
" Filename: autoload/lightline/colorscheme/Tomorrow_Night_Eighties.vim
" Author: itchyny
" License: MIT License
" Last Change: 2013/09/07 14:14:14.
" =============================================================================
let s:base3 = '#cccccc'
let s:base23 = '#bbbbbb'
let s:base2 = '#aaaaaa'
let s:base1 = '#999999'
let s:base0 = '#777777'
let s:base00 = '#666666'
let s:base01 = '#555555'
let s:base02 = '#444444'
let s:base023 = '#333333'
let s:base03 = '#2d2d2d'
let s:red = '#f2777a'
let s:orange = '#f99157'
let s:yellow = '#ffcc66'
let s:green = '#99cc99'
let s:cyan = '#009999'
let s:blue = '#99cccc'
let s:magenta = '#cc99cc'
let s:p = {'normal': {}, 'inactive': {}, 'insert': {}, 'replace': {}, 'visual': {}, 'tabline': {}}
let s:p.normal.left = [ [ s:base023, s:blue ], [ s:base3, s:base01 ] ]
let s:p.normal.right = [ [ s:base02, s:base1 ], [ s:base2, s:base01 ] ]
let s:p.inactive.right = [ [ s:base02, s:base0 ], [ s:base1, s:base01 ] ]
let s:p.inactive.left = [ [ s:base02, s:base0 ], [ s:base00, s:base03 ] ]
let s:p.insert.left = [ [ s:base023, s:green ], [ s:base3, s:base01 ] ]
let s:p.replace.left = [ [ s:base023, s:orange ], [ s:base3, s:base01 ] ]
let s:p.visual.left = [ [ s:base023, s:magenta ], [ s:base3, s:base01 ] ]
let s:p.normal.middle = [ [ s:base1, s:base02 ] ]
let s:p.inactive.middle = [ [ s:base0, s:base02 ] ]
let s:p.tabline.left = [ [ s:base2, s:base01 ] ]
let s:p.tabline.tabsel = [ [ s:base2, s:base03 ] ]
let s:p.tabline.middle = [ [ s:base01, s:base1 ] ]
let s:p.tabline.right = copy(s:p.normal.right)
let s:p.normal.error = [ [ s:base023, s:red ] ]
let s:p.normal.warning = [ [ s:base023, s:yellow ] ]
let g:lightline#colorscheme#Tomorrow_Night_Eighties#palette = lightline#colorscheme#fill(s:p)

View File

@@ -0,0 +1,46 @@
" =============================================================================
" Filename: autoload/lightline/colorscheme/apprentice.vim
" Author: pt307 (based on work by romainl)
" License: MIT License
" Last Change: 2021/03/02 18:25:22.
" =============================================================================
" For the Apprentice colorscheme <https://github.com/romainl/Apprentice>
let s:almost_black = [ '#1c1c1c', 234 ]
let s:darker_grey = [ '#262626', 235 ]
let s:medium_grey = [ '#585858', 240 ]
let s:lighter_grey = [ '#bcbcbc', 250 ]
let s:green = [ '#5f875f', 65 ]
let s:red = [ '#af5f5f', 131 ]
let s:orange = [ '#ff8700', 208 ]
let s:ocre = [ '#87875f', 101 ]
let s:yellow = [ '#ffffaf', 229 ]
let s:p = {'normal': {}, 'inactive': {}, 'insert': {}, 'replace': {}, 'visual': {}, 'tabline': {}}
let s:p.normal.left = [ [ s:darker_grey, s:ocre ], [ s:darker_grey, s:medium_grey ] ]
let s:p.normal.middle = [ [ s:lighter_grey, s:darker_grey ] ]
let s:p.normal.right = [ [ s:darker_grey, s:ocre ], [ s:darker_grey, s:medium_grey ] ]
let s:p.normal.warning = [ [ s:almost_black, s:orange ] ]
let s:p.normal.error = [ [ s:almost_black, s:red ] ]
let s:p.inactive.left = [ [ s:darker_grey, s:medium_grey ] ]
let s:p.inactive.middle = [ [ s:medium_grey, s:darker_grey ] ]
let s:p.inactive.right = [ [ s:darker_grey, s:medium_grey ] ]
let s:p.insert.left = [ [ s:darker_grey, s:green ], [ s:darker_grey, s:medium_grey ] ]
let s:p.insert.right = [ [ s:darker_grey, s:green ], [ s:darker_grey, s:medium_grey ] ]
let s:p.replace.left = [ [ s:darker_grey, s:red ], [ s:darker_grey, s:medium_grey ] ]
let s:p.replace.right = [ [ s:darker_grey, s:red ], [ s:darker_grey, s:medium_grey ] ]
let s:p.visual.left = [ [ s:darker_grey, s:yellow ], [ s:darker_grey, s:medium_grey ] ]
let s:p.visual.right = [ [ s:darker_grey, s:yellow ], [ s:darker_grey, s:medium_grey ] ]
let s:p.tabline.left = [ [ s:darker_grey, s:medium_grey ] ]
let s:p.tabline.middle = [ [ s:lighter_grey, s:darker_grey ] ]
let s:p.tabline.right = [ [ s:darker_grey, s:medium_grey ] ]
let s:p.tabline.tabsel = [ [ s:darker_grey, s:ocre ] ]
let g:lightline#colorscheme#apprentice#palette = lightline#colorscheme#flatten(s:p)

View File

@@ -0,0 +1,42 @@
" =============================================================================
" Filename: autoload/lightline/colorscheme/ayu_dark.vim
" Author: danielpeng2
" License: MIT License
" Last Change: 2020/05/01 19:37:33.
" =============================================================================
let s:base0 = '#e6e1cf'
let s:base1 = '#e6e1cf'
let s:base2 = '#3e4b59'
let s:base3 = '#e6e1cf'
let s:base00 = '#14191f'
let s:base01 = '#14191f'
let s:base02 = '#0f1419'
let s:base023 = '#0f1419'
let s:base03 = '#e6b673'
let s:yellow = '#e6b673'
let s:orange = '#ff7733'
let s:red = '#f07178'
let s:magenta = '#ffee99'
let s:blue = '#36a3d9'
let s:cyan = s:blue
let s:green = '#b8cc52'
let s:p = {'normal': {}, 'inactive': {}, 'insert': {}, 'replace': {}, 'visual': {}, 'tabline': {}}
let s:p.normal.left = [ [ s:base02, s:blue ], [ s:base3, s:base01 ] ]
let s:p.normal.middle = [ [ s:base2, s:base02 ] ]
let s:p.normal.right = [ [ s:base02, s:base0 ], [ s:base1, s:base01 ] ]
let s:p.inactive.left = [ [ s:base1, s:base01 ], [ s:base3, s:base01 ] ]
let s:p.inactive.middle = [ [ s:base1, s:base023 ] ]
let s:p.inactive.right = [ [ s:base1, s:base01 ], [ s:base2, s:base02 ] ]
let s:p.insert.left = [ [ s:base02, s:green ], [ s:base3, s:base01 ] ]
let s:p.replace.left = [ [ s:base023, s:red ], [ s:base3, s:base01 ] ]
let s:p.visual.left = [ [ s:base02, s:magenta ], [ s:base3, s:base01 ] ]
let s:p.tabline.tabsel = [ [ s:base02, s:base03 ] ]
let s:p.tabline.left = [ [ s:base3, s:base00 ] ]
let s:p.tabline.middle = [ [ s:base2, s:base02 ] ]
let s:p.tabline.right = [ [ s:base2, s:base00 ] ]
let s:p.normal.error = [ [ s:base03, s:red ] ]
let s:p.normal.warning = [ [ s:base023, s:yellow ] ]
let g:lightline#colorscheme#ayu_dark#palette = lightline#colorscheme#fill(s:p)

View File

@@ -0,0 +1,42 @@
" =============================================================================
" Filename: autoload/lightline/colorscheme/ayu_light.vim
" Author: christalib
" License: MIT License
" Last Change: 2020/05/01 19:38:21.
" =============================================================================
let s:base0 = '#5C6773'
let s:base1 = '#5C6773'
let s:base2 = '#828C99'
let s:base3 = '#5C6773'
let s:base00 = '#FFFFFF'
let s:base01 = '#FFFFFF'
let s:base02 = '#FAFAFA'
let s:base023 = '#FAFAFA'
let s:base03 = '#E6B673'
let s:yellow = '#E6B673'
let s:orange = '#FF7733'
let s:red = '#f07178'
let s:magenta = '#A37ACC'
let s:blue = '#59c2ff'
let s:cyan = s:blue
let s:green = '#86B300'
let s:p = {'normal': {}, 'inactive': {}, 'insert': {}, 'replace': {}, 'visual': {}, 'tabline': {}}
let s:p.normal.left = [ [ s:base02, s:blue ], [ s:base3, s:base01 ] ]
let s:p.normal.middle = [ [ s:base2, s:base02 ] ]
let s:p.normal.right = [ [ s:base02, s:base0 ], [ s:base1, s:base01 ] ]
let s:p.inactive.left = [ [ s:base1, s:base01 ], [ s:base3, s:base01 ] ]
let s:p.inactive.middle = [ [ s:base1, s:base023 ] ]
let s:p.inactive.right = [ [ s:base1, s:base01 ], [ s:base2, s:base02 ] ]
let s:p.insert.left = [ [ s:base02, s:green ], [ s:base3, s:base01 ] ]
let s:p.replace.left = [ [ s:base023, s:red ], [ s:base3, s:base01 ] ]
let s:p.visual.left = [ [ s:base02, s:magenta ], [ s:base3, s:base01 ] ]
let s:p.tabline.tabsel = [ [ s:base02, s:base03 ] ]
let s:p.tabline.left = [ [ s:base3, s:base00 ] ]
let s:p.tabline.middle = [ [ s:base2, s:base02 ] ]
let s:p.tabline.right = [ [ s:base2, s:base00 ] ]
let s:p.normal.error = [ [ s:base03, s:red ] ]
let s:p.normal.warning = [ [ s:base023, s:yellow ] ]
let g:lightline#colorscheme#ayu_light#palette = lightline#colorscheme#fill(s:p)

View File

@@ -0,0 +1,42 @@
" =============================================================================
" Filename: autoload/lightline/colorscheme/ayu_mirage.vim
" Author: impulse
" License: MIT License
" Last Change: 2020/05/01 19:37:21.
" =============================================================================
let s:base0 = '#d9d7ce'
let s:base1 = '#d9d7ce'
let s:base2 = '#607080'
let s:base3 = '#d9d7ce'
let s:base00 = '#272d38'
let s:base01 = '#272d38'
let s:base02 = '#212733'
let s:base023 = '#212733'
let s:base03 = '#ffc44c'
let s:yellow = '#ffc44c'
let s:orange = '#ffae57'
let s:red = '#f07178'
let s:magenta = '#d4bfff'
let s:blue = '#59c2ff'
let s:cyan = s:blue
let s:green = '#bbe67e'
let s:p = {'normal': {}, 'inactive': {}, 'insert': {}, 'replace': {}, 'visual': {}, 'tabline': {}}
let s:p.normal.left = [ [ s:base02, s:blue ], [ s:base3, s:base01 ] ]
let s:p.normal.middle = [ [ s:base2, s:base02 ] ]
let s:p.normal.right = [ [ s:base02, s:base0 ], [ s:base1, s:base01 ] ]
let s:p.inactive.left = [ [ s:base1, s:base01 ], [ s:base3, s:base01 ] ]
let s:p.inactive.middle = [ [ s:base1, s:base023 ] ]
let s:p.inactive.right = [ [ s:base1, s:base01 ], [ s:base2, s:base02 ] ]
let s:p.insert.left = [ [ s:base02, s:green ], [ s:base3, s:base01 ] ]
let s:p.replace.left = [ [ s:base023, s:red ], [ s:base3, s:base01 ] ]
let s:p.visual.left = [ [ s:base02, s:magenta ], [ s:base3, s:base01 ] ]
let s:p.tabline.tabsel = [ [ s:base02, s:base03 ] ]
let s:p.tabline.left = [ [ s:base3, s:base00 ] ]
let s:p.tabline.middle = [ [ s:base2, s:base02 ] ]
let s:p.tabline.right = [ [ s:base2, s:base00 ] ]
let s:p.normal.error = [ [ s:base03, s:red ] ]
let s:p.normal.warning = [ [ s:base023, s:yellow ] ]
let g:lightline#colorscheme#ayu_mirage#palette = lightline#colorscheme#fill(s:p)

View File

@@ -0,0 +1,37 @@
" =============================================================================
" Filename: autoload/lightline/colorscheme/darcula.vim
" Author: kkopec
" License: MIT License
" Last Change: 2017/02/11 21:18:54.
" =============================================================================
let s:black = [ '#2b2b2b', 235 ]
let s:gray = [ '#323232', 236 ]
let s:white = [ '#a9b7c6', 250 ]
let s:blue = [ '#6897bb' , 67 ]
let s:green = [ '#629755', 71 ]
let s:purple = [ '#9876aa', 104 ]
let s:red = [ '#ff6b68', 204 ]
let s:yellow = [ '#ffc66d', 222 ]
let s:p = {'normal': {}, 'inactive': {}, 'insert': {}, 'replace': {}, 'visual': {}, 'tabline': {}}
let s:p.normal.left = [ [ s:black, s:purple ], [ s:purple, s:gray ] ]
let s:p.normal.right = [ [ s:black, s:purple ], [ s:purple, s:gray ] ]
let s:p.inactive.left = [ [ s:black, s:blue ], [ s:blue, s:gray ] ]
let s:p.inactive.right = [ [ s:black, s:blue ], [ s:blue, s:gray ] ]
let s:p.insert.left = [ [ s:black, s:green ], [ s:green, s:gray ] ]
let s:p.insert.right = [ [ s:black, s:green ], [ s:green, s:gray ] ]
let s:p.replace.left = [ [ s:black, s:red ], [ s:red, s:gray ] ]
let s:p.replace.right = [ [ s:black, s:red ], [ s:red, s:gray ] ]
let s:p.visual.left = [ [ s:black, s:yellow ], [ s:yellow, s:gray ] ]
let s:p.visual.right = [ [ s:black, s:yellow ], [ s:yellow, s:gray ] ]
let s:p.normal.middle = [ [ s:white, s:gray ] ]
let s:p.inactive.middle = [ [ s:white, s:gray ] ]
let s:p.tabline.left = [ [ s:blue, s:gray ] ]
let s:p.tabline.tabsel = [ [ s:black, s:blue ] ]
let s:p.tabline.middle = [ [ s:blue, s:gray ] ]
let s:p.tabline.right = [ [ s:black, s:blue ] ]
let s:p.normal.error = [ [ s:red, s:black ] ]
let s:p.normal.warning = [ [ s:yellow, s:black ] ]
let g:lightline#colorscheme#darcula#palette = lightline#colorscheme#flatten(s:p)

View File

@@ -0,0 +1,8 @@
" =============================================================================
" Filename: autoload/lightline/colorscheme/default.vim
" Author: itchyny
" License: MIT License
" Last Change: 2013/08/22 06:05:52.
" =============================================================================
let g:lightline#colorscheme#default#palette = g:lightline#colorscheme#powerline#palette

View File

@@ -0,0 +1,39 @@
" =============================================================================
" Filename: autoload/lightline/colorscheme/deus.vim
" Author: nikersify
" License: MIT License
" Last Change: 2020/02/15 20:56:45.
" =============================================================================
let s:term_red = 204
let s:term_green = 114
let s:term_yellow = 180
let s:term_blue = 39
let s:term_purple = 170
let s:term_white = 145
let s:term_black = 235
let s:term_grey = 236
let s:p = {'normal': {}, 'inactive': {}, 'insert': {}, 'replace': {}, 'visual': {}, 'tabline': {}}
let s:p.normal.left = [ [ '#292c33', '#98c379', s:term_black, s:term_green, 'bold' ], [ '#98c379', '#292c33', s:term_green, s:term_black ] ]
let s:p.normal.right = [ [ '#292c33', '#98c379', s:term_black, s:term_green ], [ '#abb2bf', '#3e4452', s:term_white, s:term_grey ], [ '#98c379', '#292c33', s:term_green, s:term_black ] ]
let s:p.inactive.right = [ [ '#292c33', '#61afef', s:term_black, s:term_blue], [ '#abb2bf', '#3e4452', s:term_white, s:term_grey ] ]
let s:p.inactive.left = s:p.inactive.right[1:]
let s:p.insert.left = [ [ '#292c33', '#61afef', s:term_black, s:term_blue, 'bold' ], [ '#61afef', '#292c33', s:term_blue, s:term_black ] ]
let s:p.insert.right = [ [ '#292c33', '#61afef', s:term_black, s:term_blue ], [ '#ABB2BF', '#3E4452', s:term_white, s:term_grey ], [ '#61afef', '#292c33', s:term_blue, s:term_black ] ]
let s:p.replace.left = [ [ '#292c33', '#e06c75', s:term_black, s:term_red, 'bold' ], [ '#e06c75', '#292c33', s:term_red, s:term_black ] ]
let s:p.replace.right = [ [ '#292c33', '#e06c75', s:term_black, s:term_red ], s:p.normal.right[1], [ '#e06c75', '#292c33', s:term_red, s:term_black ] ]
let s:p.visual.left = [ [ '#292c33', '#c678dd', s:term_black, s:term_purple, 'bold' ], [ '#c678dd', '#292c33', s:term_purple, s:term_black ] ]
let s:p.visual.right = [ [ '#292c33', '#c678dd', s:term_black, s:term_purple ], s:p.normal.right[1], [ '#c678dd', '#292c33', s:term_purple, s:term_black ] ]
let s:p.normal.middle = [ [ '#abb2bf', '#292c33', s:term_white, s:term_black ] ]
let s:p.insert.middle = s:p.normal.middle
let s:p.replace.middle = s:p.normal.middle
let s:p.tabline.left = [ s:p.normal.left[1] ]
let s:p.tabline.tabsel = [ s:p.normal.left[0] ]
let s:p.tabline.middle = s:p.normal.middle
let s:p.tabline.right = [ s:p.normal.left[1] ]
let s:p.normal.error = [ [ '#292c33', '#e06c75', s:term_black, s:term_red ] ]
let s:p.normal.warning = [ [ '#292c33', '#e5c07b', s:term_black, s:term_yellow ] ]
let g:lightline#colorscheme#deus#palette = lightline#colorscheme#fill(s:p)

View File

@@ -0,0 +1,40 @@
" =============================================================================
" Filename: autoload/lightline/colorscheme/jellybeans.vim
" Author: itchyny
" License: MIT License
" Last Change: 2013/09/07 12:21:04.
" =============================================================================
let s:base03 = [ '#151513', 233 ]
let s:base02 = [ '#30302c', 236 ]
let s:base01 = [ '#4e4e43', 239 ]
let s:base00 = [ '#666656', 242 ]
let s:base0 = [ '#808070', 244 ]
let s:base1 = [ '#949484', 246 ]
let s:base2 = [ '#a8a897', 248 ]
let s:base3 = [ '#e8e8d3', 253 ]
let s:yellow = [ '#ffb964', 215 ]
let s:orange = [ '#fad07a', 222 ]
let s:red = [ '#cf6a4c', 167 ]
let s:magenta = [ '#f0a0c0', 217 ]
let s:blue = [ '#8197bf', 103 ]
let s:cyan = [ '#8fbfdc', 110 ]
let s:green = [ '#99ad6a', 107 ]
let s:p = {'normal': {}, 'inactive': {}, 'insert': {}, 'replace': {}, 'visual': {}, 'tabline': {}}
let s:p.normal.left = [ [ s:base02, s:blue ], [ s:base3, s:base01 ] ]
let s:p.normal.right = [ [ s:base02, s:base1 ], [ s:base2, s:base01 ] ]
let s:p.inactive.right = [ [ s:base02, s:base00 ], [ s:base0, s:base02 ] ]
let s:p.inactive.left = [ [ s:base0, s:base02 ], [ s:base00, s:base02 ] ]
let s:p.insert.left = [ [ s:base02, s:green ], [ s:base3, s:base01 ] ]
let s:p.replace.left = [ [ s:base02, s:red ], [ s:base3, s:base01 ] ]
let s:p.visual.left = [ [ s:base02, s:magenta ], [ s:base3, s:base01 ] ]
let s:p.normal.middle = [ [ s:base0, s:base02 ] ]
let s:p.inactive.middle = [ [ s:base00, s:base02 ] ]
let s:p.tabline.left = copy(s:p.normal.middle)
let s:p.tabline.tabsel = [ [ s:base3, s:base00 ] ]
let s:p.tabline.middle = copy(s:p.normal.middle)
let s:p.tabline.right = copy(s:p.tabline.middle)
let s:p.normal.error = [ [ s:red, s:base02 ] ]
let s:p.normal.warning = [ [ s:yellow, s:base01 ] ]
let g:lightline#colorscheme#jellybeans#palette = lightline#colorscheme#flatten(s:p)

View File

@@ -0,0 +1,25 @@
" =============================================================================
" Filename: autoload/lightline/colorscheme/landscape.vim
" Author: itchyny
" License: MIT License
" Last Change: 2015/11/26 21:49:44.
" =============================================================================
let s:p = {'normal': {}, 'inactive': {}, 'insert': {}, 'replace': {}, 'visual': {}, 'tabline': {}}
let s:p.normal.left = [ ['#0000ff', '#ffffff', 21, 231, 'bold' ], [ '#ffffff', '#0000ff', 231, 21 ] ]
let s:p.normal.right = [ [ '#303030', '#d0d0d0', 236, 252 ], [ '#303030', '#8a8a8a', 236, 245 ], [ '#bcbcbc', '#585858', 250, 240 ] ]
let s:p.inactive.right = [ [ '#121212', '#606060', 233, 241 ], [ '#121212', '#3a3a3a', 233, 237 ], [ '#121212', '#262626', 233, 235 ] ]
let s:p.inactive.left = s:p.inactive.right[1:]
let s:p.insert.left = [ ['#005f00', '#ffffff', 22, 231, 'bold' ], [ '#ffffff', '#005f00', 231, 22 ] ]
let s:p.replace.left = [ [ '#af0000', '#ffffff', 124, 231, 'bold' ], [ '#ffffff', '#af0000', 231, 124 ] ]
let s:p.visual.left = [ [ '#5f00ff', '#ffffff', 57, 231, 'bold' ], [ '#ffffff', '#5f00ff', 231, 57 ] ]
let s:p.normal.middle = [ [ '#8a8a8a', '#303030', 245, 236 ] ]
let s:p.inactive.middle = [ [ '#303030', '#121212', 236, 233 ] ]
let s:p.tabline.left = [ [ '#d0d0d0', '#666666', 252, 242 ] ]
let s:p.tabline.tabsel = [ [ '#dadada', '#121212', 253, 233 ] ]
let s:p.tabline.middle = [ [ '#8a8a8a', '#3a3a3a', 245, 237 ] ]
let s:p.tabline.right = [ [ '#d0d0d0', '#666666', 252, 242 ] ]
let s:p.normal.error = [ [ '#d0d0d0', '#ff0000', 252, 196 ] ]
let s:p.normal.warning = [ [ '#262626', '#ffff00', 235, 226 ] ]
let g:lightline#colorscheme#landscape#palette = s:p

View File

@@ -0,0 +1,63 @@
" =============================================================================
" Filename: autoload/lightline/colorscheme/materia.vim
" Author: Lokesh Krishna
" License: MIT License
" Last Change: 2017/11/25 11:13:40.
" =============================================================================
" Common colors
let s:fg = '#d5dbe5'
let s:blue = '#89ddff'
let s:green = '#8bd649'
let s:purple = '#82aaff'
let s:red1 = '#ec5f67'
let s:red2 = '#ec5f67'
let s:yellow = '#ffcc00'
let s:p = {'normal': {}, 'inactive': {}, 'insert': {}, 'replace': {}, 'visual': {}, 'tabline': {}}
if lightline#colorscheme#background() ==# 'light'
" Light variant
let s:bg = '#ffffff'
let s:gray1 = '#2c393f'
let s:gray2 = '#d5dbe5'
let s:gray3 = '#707880'
let s:p.normal.left = [ [ s:bg, s:green, 'bold' ], [ s:gray1, s:gray3 ] ]
let s:p.normal.middle = [ [ s:gray1, s:gray2 ] ]
let s:p.inactive.left = [ [ s:bg, s:gray3 ], [ s:bg, s:gray3 ] ]
let s:p.inactive.middle = [ [ s:gray3, s:gray2 ] ]
let s:p.inactive.right = [ [ s:bg, s:gray3 ], [ s:bg, s:gray3 ] ]
let s:p.insert.left = [ [ s:bg, s:blue, 'bold' ], [ s:gray1, s:gray3 ] ]
let s:p.replace.left = [ [ s:bg, s:red1, 'bold' ], [ s:gray1, s:gray3 ] ]
let s:p.visual.left = [ [ s:bg, s:purple, 'bold' ], [ s:gray1, s:gray3 ] ]
else
" Dark variant
let s:bg = '#263238'
let s:gray1 = '#37474f'
let s:gray2 = '#2c393f'
let s:gray3 = '#37474f'
let s:p.normal.left = [ [ s:bg, s:green, 'bold' ], [ s:fg, s:gray3 ] ]
let s:p.normal.middle = [ [ s:fg, s:gray2 ] ]
let s:p.inactive.left = [ [ s:gray1, s:bg ], [ s:gray1, s:bg ] ]
let s:p.inactive.middle = [ [ s:gray1, s:gray2 ] ]
let s:p.inactive.right = [ [ s:gray1, s:bg ], [ s:gray1, s:bg ] ]
let s:p.insert.left = [ [ s:bg, s:blue, 'bold' ], [ s:fg, s:gray3 ] ]
let s:p.replace.left = [ [ s:bg, s:red1, 'bold' ], [ s:fg, s:gray3 ] ]
let s:p.visual.left = [ [ s:bg, s:purple, 'bold' ], [ s:fg, s:gray3 ] ]
endif
" Common
let s:p.normal.right = [ [ s:bg, s:green, 'bold' ], [ s:bg, s:green, 'bold' ] ]
let s:p.normal.error = [ [ s:red2, s:bg ] ]
let s:p.normal.warning = [ [ s:yellow, s:bg ] ]
let s:p.insert.right = [ [ s:bg, s:blue, 'bold' ], [ s:bg, s:blue, 'bold' ] ]
let s:p.replace.right = [ [ s:bg, s:red1, 'bold' ], [ s:bg, s:red1, 'bold' ] ]
let s:p.visual.right = [ [ s:bg, s:purple, 'bold' ], [ s:bg, s:purple, 'bold' ] ]
let s:p.tabline.left = [ [ s:bg, s:gray3 ] ]
let s:p.tabline.tabsel = [ [ s:bg, s:purple, 'bold' ] ]
let s:p.tabline.middle = [ [ s:gray3, s:gray2 ] ]
let s:p.tabline.right = copy(s:p.normal.right)
let g:lightline#colorscheme#materia#palette = lightline#colorscheme#fill(s:p)

View File

@@ -0,0 +1,63 @@
" =============================================================================
" Filename: autoload/lightline/colorscheme/material.vim
" Author: Lokesh Krishna
" License: MIT License
" Last Change: 2017/11/25 11:13:42.
" =============================================================================
" Common colors
let s:fg = '#eeffff'
let s:blue = '#82aaff'
let s:green = '#c3e88d'
let s:purple = '#c792ea'
let s:red1 = '#f07178'
let s:red2 = '#ff5370'
let s:yellow = '#ffcb6b'
let s:p = {'normal': {}, 'inactive': {}, 'insert': {}, 'replace': {}, 'visual': {}, 'tabline': {}}
if lightline#colorscheme#background() ==# 'light'
" Light variant
let s:bg = '#ffffff'
let s:gray1 = '#2e3c43'
let s:gray2 = '#eeffff'
let s:gray3 = '#546e7a'
let s:p.normal.left = [ [ s:bg, s:blue, 'bold' ], [ s:gray1, s:gray3 ] ]
let s:p.normal.middle = [ [ s:gray1, s:gray2 ] ]
let s:p.inactive.left = [ [ s:bg, s:gray3 ], [ s:bg, s:gray3 ] ]
let s:p.inactive.middle = [ [ s:gray3, s:gray2 ] ]
let s:p.inactive.right = [ [ s:bg, s:gray3 ], [ s:bg, s:gray3 ] ]
let s:p.insert.left = [ [ s:bg, s:green, 'bold' ], [ s:gray1, s:gray3 ] ]
let s:p.replace.left = [ [ s:bg, s:red1, 'bold' ], [ s:gray1, s:gray3 ] ]
let s:p.visual.left = [ [ s:bg, s:purple, 'bold' ], [ s:gray1, s:gray3 ] ]
else
" Dark variant
let s:bg = '#263238'
let s:gray1 = '#314549'
let s:gray2 = '#2E3C43'
let s:gray3 = '#314549'
let s:p.normal.left = [ [ s:bg, s:blue, 'bold' ], [ s:fg, s:gray3 ] ]
let s:p.normal.middle = [ [ s:fg, s:gray2 ] ]
let s:p.inactive.left = [ [ s:gray1, s:bg ], [ s:gray1, s:bg ] ]
let s:p.inactive.middle = [ [ s:gray1, s:gray2 ] ]
let s:p.inactive.right = [ [ s:gray1, s:bg ], [ s:gray1, s:bg ] ]
let s:p.insert.left = [ [ s:bg, s:green, 'bold' ], [ s:fg, s:gray3 ] ]
let s:p.replace.left = [ [ s:bg, s:red1, 'bold' ], [ s:fg, s:gray3 ] ]
let s:p.visual.left = [ [ s:bg, s:purple, 'bold' ], [ s:fg, s:gray3 ] ]
endif
" Common
let s:p.normal.right = [ [ s:bg, s:blue, 'bold' ], [ s:bg, s:blue, 'bold' ] ]
let s:p.normal.error = [ [ s:red2, s:bg ] ]
let s:p.normal.warning = [ [ s:yellow, s:bg ] ]
let s:p.insert.right = [ [ s:bg, s:green, 'bold' ], [ s:bg, s:green, 'bold' ] ]
let s:p.replace.right = [ [ s:bg, s:red1, 'bold' ], [ s:bg, s:red1, 'bold' ] ]
let s:p.visual.right = [ [ s:bg, s:purple, 'bold' ], [ s:bg, s:purple, 'bold' ] ]
let s:p.tabline.left = [ [ s:fg, s:gray3 ] ]
let s:p.tabline.tabsel = [ [ s:bg, s:purple, 'bold' ] ]
let s:p.tabline.middle = [ [ s:gray3, s:gray2 ] ]
let s:p.tabline.right = [ [ s:bg, s:red1, 'bold' ] ]
let g:lightline#colorscheme#material#palette = lightline#colorscheme#fill(s:p)

View File

@@ -0,0 +1,36 @@
" =============================================================================
" Filename: autoload/lightline/colorscheme/molokai.vim
" Author: challsted
" License: MIT License
" Last Change: 2020/02/15 20:57:45.
" =============================================================================
let s:black = [ '#232526', 233 ]
let s:gray = [ '#808080', 244 ]
let s:white = [ '#f8f8f2', 234 ]
let s:cyan = [ '#66d9ef', 81 ]
let s:green = [ '#a6e22e', 118 ]
let s:orange = [ '#ef5939', 166 ]
let s:pink = [ '#f92672', 161 ]
let s:red = [ '#ff0000', 160 ]
let s:yellow = [ '#e6db74', 229 ]
let s:p = {'normal': {}, 'inactive': {}, 'insert': {}, 'replace': {}, 'visual': {}, 'tabline': {}}
let s:p.normal.left = [ [ s:black, s:cyan ], [ s:orange, s:black ] ]
let s:p.normal.middle = [ [ s:orange, s:black ] ]
let s:p.normal.right = [ [ s:pink, s:black ], [ s:black, s:pink ] ]
let s:p.normal.error = [ [ s:pink, s:black ] ]
let s:p.normal.warning = [ [ s:yellow, s:black ] ]
let s:p.insert.left = [ [ s:black, s:green ], [ s:green, s:black ] ]
let s:p.visual.left = [ [ s:black, s:yellow ], [ s:yellow, s:black ] ]
let s:p.replace.left = [ [ s:black, s:red ], [ s:red, s:black ] ]
let s:p.inactive.left = [ [ s:pink, s:black ], [ s:white, s:black ] ]
let s:p.inactive.middle = [ [ s:gray, s:black ] ]
let s:p.inactive.right = [ [ s:white, s:pink ], [ s:pink, s:black ] ]
let s:p.tabline.left = [ [ s:pink, s:black ] ]
let s:p.tabline.middle = [ [ s:pink, s:black] ]
let s:p.tabline.right = copy(s:p.normal.right)
let s:p.tabline.tabsel = [ [ s:black, s:pink ] ]
let g:lightline#colorscheme#molokai#palette = lightline#colorscheme#flatten(s:p)

View File

@@ -0,0 +1,46 @@
" =============================================================================
" Filename: autoload/lightline/colorscheme/nord.vim
" Author: arcticicestudio
" License: MIT
" Last Change: 2017/11/12 20:27:51
" =============================================================================
let s:p = {'normal': {}, 'inactive': {}, 'insert': {}, 'replace': {}, 'visual': {}, 'tabline': {}}
let s:nord0 = ["#2E3440", "NONE"]
let s:nord1 = ["#3B4252", 0]
let s:nord2 = ["#434C5E", "NONE"]
let s:nord3 = ["#4C566A", 8]
let s:nord4 = ["#D8DEE9", "NONE"]
let s:nord5 = ["#E5E9F0", 7]
let s:nord6 = ["#ECEFF4", 15]
let s:nord7 = ["#8FBCBB", 14]
let s:nord8 = ["#88C0D0", 6]
let s:nord9 = ["#81A1C1", 4]
let s:nord10 = ["#5E81AC", 12]
let s:nord11 = ["#BF616A", 1]
let s:nord12 = ["#D08770", 11]
let s:nord13 = ["#EBCB8B", 3]
let s:nord14 = ["#A3BE8C", 2]
let s:nord15 = ["#B48EAD", 5]
let s:p.normal.left = [ [ s:nord1, s:nord8 ], [ s:nord5, s:nord1 ] ]
let s:p.normal.middle = [ [ s:nord5, s:nord3 ] ]
let s:p.normal.right = [ [ s:nord5, s:nord1 ], [ s:nord5, s:nord1 ] ]
let s:p.normal.warning = [ [ s:nord1, s:nord13 ] ]
let s:p.normal.error = [ [ s:nord1, s:nord11 ] ]
let s:p.inactive.left = [ [ s:nord1, s:nord8 ], [ s:nord5, s:nord1 ] ]
let s:p.inactive.middle = [ [ s:nord5, s:nord1 ] ]
let s:p.inactive.right = [ [ s:nord5, s:nord1 ], [ s:nord5, s:nord1 ] ]
let s:p.insert.left = [ [ s:nord1, s:nord6 ], [ s:nord5, s:nord1 ] ]
let s:p.replace.left = [ [ s:nord1, s:nord13 ], [ s:nord5, s:nord1 ] ]
let s:p.visual.left = [ [ s:nord1, s:nord7 ], [ s:nord5, s:nord1 ] ]
let s:p.tabline.left = [ [ s:nord5, s:nord3 ] ]
let s:p.tabline.middle = [ [ s:nord5, s:nord3 ] ]
let s:p.tabline.right = [ [ s:nord5, s:nord3 ] ]
let s:p.tabline.tabsel = [ [ s:nord1, s:nord8 ] ]
let g:lightline#colorscheme#nord#palette = lightline#colorscheme#flatten(s:p)

View File

@@ -0,0 +1,60 @@
" =============================================================================
" Filename: autoload/lightline/colorscheme/one.vim
" Author: Zoltan Dalmadi
" License: MIT License
" Last Change: 2019/09/09 22:42:48.
" =============================================================================
" Common colors
let s:blue = [ '#61afef', 75 ]
let s:green = [ '#98c379', 76 ]
let s:purple = [ '#c678dd', 176 ]
let s:red1 = [ '#e06c75', 168 ]
let s:red2 = [ '#be5046', 168 ]
let s:yellow = [ '#e5c07b', 180 ]
let s:p = {'normal': {}, 'inactive': {}, 'insert': {}, 'replace': {}, 'visual': {}, 'tabline': {}}
if lightline#colorscheme#background() ==# 'light'
" Light variant
let s:fg = [ '#494b53', 238 ]
let s:bg = [ '#fafafa', 255 ]
let s:gray1 = [ '#494b53', 238 ]
let s:gray2 = [ '#f0f0f0', 255 ]
let s:gray3 = [ '#d0d0d0', 250 ]
let s:green = [ '#98c379', 35 ]
let s:p.inactive.left = [ [ s:bg, s:gray3 ], [ s:bg, s:gray3 ] ]
let s:p.inactive.middle = [ [ s:gray3, s:gray2 ] ]
let s:p.inactive.right = [ [ s:bg, s:gray3 ] ]
else
" Dark variant
let s:fg = [ '#abb2bf', 145 ]
let s:bg = [ '#282c34', 235 ]
let s:gray1 = [ '#5c6370', 241 ]
let s:gray2 = [ '#2c323d', 235 ]
let s:gray3 = [ '#3e4452', 240 ]
let s:p.inactive.left = [ [ s:gray1, s:bg ], [ s:gray1, s:bg ] ]
let s:p.inactive.middle = [ [ s:gray1, s:gray2 ] ]
let s:p.inactive.right = [ [ s:gray1, s:bg ] ]
endif
" Common
let s:p.normal.left = [ [ s:bg, s:green, 'bold' ], [ s:fg, s:gray3 ] ]
let s:p.normal.middle = [ [ s:fg, s:gray2 ] ]
let s:p.normal.right = [ [ s:bg, s:green, 'bold' ], [ s:fg, s:gray3 ] ]
let s:p.normal.error = [ [ s:red2, s:bg ] ]
let s:p.normal.warning = [ [ s:yellow, s:bg ] ]
let s:p.insert.right = [ [ s:bg, s:blue, 'bold' ], [ s:fg, s:gray3 ] ]
let s:p.insert.left = [ [ s:bg, s:blue, 'bold' ], [ s:fg, s:gray3 ] ]
let s:p.replace.right = [ [ s:bg, s:red1, 'bold' ], [ s:fg, s:gray3 ] ]
let s:p.replace.left = [ [ s:bg, s:red1, 'bold' ], [ s:fg, s:gray3 ] ]
let s:p.visual.right = [ [ s:bg, s:purple, 'bold' ], [ s:fg, s:gray3 ] ]
let s:p.visual.left = [ [ s:bg, s:purple, 'bold' ], [ s:fg, s:gray3 ] ]
let s:p.tabline.left = [ [ s:fg, s:gray3 ] ]
let s:p.tabline.tabsel = [ [ s:bg, s:purple, 'bold' ] ]
let s:p.tabline.middle = [ [ s:gray3, s:gray2 ] ]
let s:p.tabline.right = copy(s:p.normal.right)
let g:lightline#colorscheme#one#palette = lightline#colorscheme#flatten(s:p)

View File

@@ -0,0 +1,28 @@
" =============================================================================
" Filename: autoload/lightline/colorscheme/powerline.vim
" Author: itchyny
" License: MIT License
" Last Change: 2013/09/07 15:54:41.
" =============================================================================
let s:p = {'normal': {}, 'inactive': {}, 'insert': {}, 'replace': {}, 'visual': {}, 'tabline': {}}
let s:p.normal.left = [ ['darkestgreen', 'brightgreen', 'bold'], ['white', 'gray4'] ]
let s:p.normal.right = [ ['gray5', 'gray10'], ['gray9', 'gray4'], ['gray8', 'gray2'] ]
let s:p.inactive.right = [ ['gray1', 'gray5'], ['gray4', 'gray1'], ['gray4', 'gray0'] ]
let s:p.inactive.left = s:p.inactive.right[1:]
let s:p.insert.left = [ ['darkestcyan', 'white', 'bold'], ['white', 'darkblue'] ]
let s:p.insert.right = [ [ 'darkestcyan', 'mediumcyan' ], [ 'mediumcyan', 'darkblue' ], [ 'mediumcyan', 'darkestblue' ] ]
let s:p.replace.left = [ ['white', 'brightred', 'bold'], ['white', 'gray4'] ]
let s:p.visual.left = [ ['darkred', 'brightorange', 'bold'], ['white', 'gray4'] ]
let s:p.normal.middle = [ [ 'gray7', 'gray2' ] ]
let s:p.insert.middle = [ [ 'mediumcyan', 'darkestblue' ] ]
let s:p.replace.middle = s:p.normal.middle
let s:p.replace.right = s:p.normal.right
let s:p.tabline.left = [ [ 'gray9', 'gray4' ] ]
let s:p.tabline.tabsel = [ [ 'gray9', 'gray1' ] ]
let s:p.tabline.middle = [ [ 'gray2', 'gray8' ] ]
let s:p.tabline.right = [ [ 'gray9', 'gray3' ] ]
let s:p.normal.error = [ [ 'gray9', 'brightestred' ] ]
let s:p.normal.warning = [ [ 'gray1', 'yellow' ] ]
let g:lightline#colorscheme#powerline#palette = lightline#colorscheme#fill(s:p)

View File

@@ -0,0 +1,28 @@
" =============================================================================
" Filename: autoload/lightline/colorscheme/powerlineish.vim
" Author: itchyny
" License: MIT License
" Last Change: 2019/06/12 18:47:00.
" =============================================================================
let s:p = {'normal': {}, 'inactive': {}, 'insert': {}, 'replace': {}, 'visual': {}, 'tabline': {}}
let s:p.normal.left = [ ['darkestgreen', 'brightgreen', 'bold'], ['white', 'gray0'] ]
let s:p.normal.right = [ ['gray10', 'gray2'], ['white', 'gray1'], ['white', 'gray0'] ]
let s:p.inactive.right = [ ['gray1', 'gray5'], ['gray4', 'gray1'], ['gray4', 'gray0'] ]
let s:p.inactive.left = s:p.inactive.right[1:]
let s:p.insert.left = [ ['darkestcyan', 'white', 'bold'], ['mediumcyan', 'darkestblue'] ]
let s:p.insert.right = [ [ 'darkestblue', 'mediumcyan' ], [ 'mediumcyan', 'darkblue' ], [ 'mediumcyan', 'darkestblue' ] ]
let s:p.replace.left = [ ['white', 'brightred', 'bold'], ['white', 'gray0'] ]
let s:p.visual.left = [ ['black', 'brightestorange', 'bold'], ['white', 'gray0'] ]
let s:p.normal.middle = [ [ 'white', 'gray0' ] ]
let s:p.insert.middle = [ [ 'mediumcyan', 'darkestblue' ] ]
let s:p.replace.middle = s:p.normal.middle
let s:p.replace.right = s:p.normal.right
let s:p.tabline.left = [ [ 'gray9', 'gray0' ] ]
let s:p.tabline.tabsel = [ [ 'gray9', 'gray2' ] ]
let s:p.tabline.middle = [ [ 'gray2', 'gray0' ] ]
let s:p.tabline.right = [ [ 'gray9', 'gray1' ] ]
let s:p.normal.error = [ [ 'gray9', 'brightestred' ] ]
let s:p.normal.warning = [ [ 'gray1', 'yellow' ] ]
let g:lightline#colorscheme#powerlineish#palette = lightline#colorscheme#fill(s:p)

View File

@@ -0,0 +1,49 @@
" =============================================================================
" Filename: autoload/lightline/colorscheme/selenized_black.vim
" Author: itchyny
" License: MIT License
" Last Change: 2020/05/02 16:56:50.
" =============================================================================
" https://github.com/jan-warchol/selenized/blob/master/the-values.md#selenized-black
let s:bg_1 = ['#252525', 0]
let s:bg_2 = ['#3b3b3b', 8]
let s:dim_0 = ['#777777', 7]
let s:red = ['#ed4a46', 1]
let s:green = ['#70b433', 2]
let s:yellow = ['#dbb32d', 3]
let s:blue = ['#368aeb', 4]
let s:magenta = ['#eb6eb7', 5]
let s:cyan = ['#3fc5b7', 6]
let s:brred = ['#ff5e56', 9]
let s:brgreen = ['#83c746', 10]
let s:bryellow = ['#efc541', 11]
let s:brblue = ['#4f9cfe', 12]
let s:brmagenta = ['#ff81ca', 13]
let s:brcyan = ['#56d8c9', 14]
let s:p = {'normal': {}, 'inactive': {}, 'insert': {}, 'replace': {}, 'visual': {}, 'tabline': {}}
let s:p.normal.right = [[ s:bg_1, s:blue ], [ s:cyan, s:bg_2 ], [ s:dim_0, s:bg_1 ]]
let s:p.normal.left = [[ s:bg_1, s:blue ], [ s:cyan, s:bg_2 ]]
let s:p.normal.middle = [[ s:dim_0, s:bg_1 ]]
let s:p.normal.error = [[ s:bg_1, s:red ]]
let s:p.normal.warning = [[ s:bg_1, s:yellow ]]
let s:p.insert.right = [[ s:bg_1, s:green ], [ s:cyan, s:bg_2 ], [ s:dim_0, s:bg_1 ]]
let s:p.insert.left = [[ s:bg_1, s:green ], [ s:cyan, s:bg_2 ]]
let s:p.visual.right = [[ s:bg_1, s:magenta ], [ s:cyan, s:bg_2 ], [ s:dim_0, s:bg_1 ]]
let s:p.visual.left = [[ s:bg_1, s:magenta ], [ s:cyan, s:bg_2 ]]
let s:p.inactive.left = [[ s:brblue, s:bg_2 ], [ s:cyan, s:bg_2 ]]
let s:p.inactive.right = [[ s:brblue, s:bg_2 ], [ s:cyan, s:bg_2 ]]
let s:p.replace.right = [[ s:bg_1, s:red ], [ s:cyan, s:bg_2 ], [ s:dim_0, s:bg_1 ]]
let s:p.replace.left = [[ s:bg_1, s:red ], [ s:cyan, s:bg_2 ]]
let s:p.tabline.right = [[ s:bg_1, s:red ]]
let s:p.tabline.left = [[ s:cyan, s:bg_2 ]]
let s:p.tabline.tabsel = [[ s:bg_1, s:blue ]]
let g:lightline#colorscheme#selenized_black#palette = lightline#colorscheme#flatten(s:p)

View File

@@ -0,0 +1,49 @@
" =============================================================================
" Filename: autoload/lightline/colorscheme/selenized_dark.vim
" Author: Charles Hall
" License: MIT License
" Last Change: 2020/05/02 16:53:17.
" =============================================================================
" https://github.com/jan-warchol/selenized/blob/master/the-values.md#selenized-dark
let s:bg_1 = ['#184956', 0]
let s:bg_2 = ['#2d5b69', 8]
let s:dim_0 = ['#72898f', 7]
let s:red = ['#fa5750', 1]
let s:green = ['#75b938', 2]
let s:yellow = ['#dbb32d', 3]
let s:blue = ['#4695f7', 4]
let s:magenta = ['#f275be', 5]
let s:cyan = ['#41c7b9', 6]
let s:brred = ['#ff665c', 9]
let s:brgreen = ['#84c747', 10]
let s:bryellow = ['#ebc13d', 11]
let s:brblue = ['#58a3ff', 12]
let s:brmagenta = ['#ff84cd', 13]
let s:brcyan = ['#53d6c7', 14]
let s:p = {'normal': {}, 'inactive': {}, 'insert': {}, 'replace': {}, 'visual': {}, 'tabline': {}}
let s:p.normal.right = [[ s:bg_1, s:blue ], [ s:cyan, s:bg_2 ], [ s:dim_0, s:bg_1 ]]
let s:p.normal.left = [[ s:bg_1, s:blue ], [ s:cyan, s:bg_2 ]]
let s:p.normal.middle = [[ s:dim_0, s:bg_1 ]]
let s:p.normal.error = [[ s:bg_1, s:red ]]
let s:p.normal.warning = [[ s:bg_1, s:yellow ]]
let s:p.insert.right = [[ s:bg_1, s:green ], [ s:cyan, s:bg_2 ], [ s:dim_0, s:bg_1 ]]
let s:p.insert.left = [[ s:bg_1, s:green ], [ s:cyan, s:bg_2 ]]
let s:p.visual.right = [[ s:bg_1, s:magenta ], [ s:cyan, s:bg_2 ], [ s:dim_0, s:bg_1 ]]
let s:p.visual.left = [[ s:bg_1, s:magenta ], [ s:cyan, s:bg_2 ]]
let s:p.inactive.left = [[ s:brblue, s:bg_2 ], [ s:cyan, s:bg_2 ]]
let s:p.inactive.right = [[ s:brblue, s:bg_2 ], [ s:cyan, s:bg_2 ]]
let s:p.replace.right = [[ s:bg_1, s:red ], [ s:cyan, s:bg_2 ], [ s:dim_0, s:bg_1 ]]
let s:p.replace.left = [[ s:bg_1, s:red ], [ s:cyan, s:bg_2 ]]
let s:p.tabline.right = [[ s:bg_1, s:red ]]
let s:p.tabline.left = [[ s:cyan, s:bg_2 ]]
let s:p.tabline.tabsel = [[ s:bg_1, s:blue ]]
let g:lightline#colorscheme#selenized_dark#palette = lightline#colorscheme#flatten(s:p)

View File

@@ -0,0 +1,49 @@
" =============================================================================
" Filename: autoload/lightline/colorscheme/selenized_light.vim
" Author: itchyny
" License: MIT License
" Last Change: 2020/05/02 16:58:00.
" =============================================================================
" https://github.com/jan-warchol/selenized/blob/master/the-values.md#selenized-light
let s:bg_1 = ['#ece3cc', 0]
let s:bg_2 = ['#d5cdb6', 8]
let s:dim_0 = ['#909995', 7]
let s:red = ['#d2212d', 1]
let s:green = ['#489100', 2]
let s:yellow = ['#ad8900', 3]
let s:blue = ['#0072d4', 4]
let s:magenta = ['#ca4898', 5]
let s:cyan = ['#009c8f', 6]
let s:brred = ['#cc1729', 9]
let s:brgreen = ['#428b00', 10]
let s:bryellow = ['#a78300', 11]
let s:brblue = ['#006dce', 12]
let s:brmagenta = ['#c44392', 13]
let s:brcyan = ['#00978a', 14]
let s:p = {'normal': {}, 'inactive': {}, 'insert': {}, 'replace': {}, 'visual': {}, 'tabline': {}}
let s:p.normal.right = [[ s:bg_1, s:blue ], [ s:cyan, s:bg_2 ], [ s:dim_0, s:bg_1 ]]
let s:p.normal.left = [[ s:bg_1, s:blue ], [ s:cyan, s:bg_2 ]]
let s:p.normal.middle = [[ s:dim_0, s:bg_1 ]]
let s:p.normal.error = [[ s:bg_1, s:red ]]
let s:p.normal.warning = [[ s:bg_1, s:yellow ]]
let s:p.insert.right = [[ s:bg_1, s:green ], [ s:cyan, s:bg_2 ], [ s:dim_0, s:bg_1 ]]
let s:p.insert.left = [[ s:bg_1, s:green ], [ s:cyan, s:bg_2 ]]
let s:p.visual.right = [[ s:bg_1, s:magenta ], [ s:cyan, s:bg_2 ], [ s:dim_0, s:bg_1 ]]
let s:p.visual.left = [[ s:bg_1, s:magenta ], [ s:cyan, s:bg_2 ]]
let s:p.inactive.left = [[ s:brblue, s:bg_2 ], [ s:cyan, s:bg_2 ]]
let s:p.inactive.right = [[ s:brblue, s:bg_2 ], [ s:cyan, s:bg_2 ]]
let s:p.replace.right = [[ s:bg_1, s:red ], [ s:cyan, s:bg_2 ], [ s:dim_0, s:bg_1 ]]
let s:p.replace.left = [[ s:bg_1, s:red ], [ s:cyan, s:bg_2 ]]
let s:p.tabline.right = [[ s:bg_1, s:red ]]
let s:p.tabline.left = [[ s:cyan, s:bg_2 ]]
let s:p.tabline.tabsel = [[ s:bg_1, s:blue ]]
let g:lightline#colorscheme#selenized_light#palette = lightline#colorscheme#flatten(s:p)

View File

@@ -0,0 +1,49 @@
" =============================================================================
" Filename: autoload/whiteline/colorscheme/selenized_white.vim
" Author: itchyny
" License: MIT License
" Last Change: 2020/05/03 19:34:07.
" =============================================================================
" https://github.com/jan-warchol/selenized/blob/master/the-values.md#selenized-white
let s:bg_1 = ['#ebebeb', 0]
let s:bg_2 = ['#cdcdcd', 8]
let s:dim_0 = ['#878787', 7]
let s:red = ['#d6000c', 1]
let s:green = ['#1d9700', 2]
let s:yellow = ['#c49700', 3]
let s:blue = ['#0064e4', 4]
let s:magenta = ['#dd0f9d', 5]
let s:cyan = ['#00ad9c', 6]
let s:brred = ['#bf0000', 9]
let s:brgreen = ['#008400', 10]
let s:bryellow = ['#af8500', 11]
let s:brblue = ['#0054cf', 12]
let s:brmagenta = ['#c7008b', 13]
let s:brcyan = ['#009a8a', 14]
let s:p = {'normal': {}, 'inactive': {}, 'insert': {}, 'replace': {}, 'visual': {}, 'tabline': {}}
let s:p.normal.right = [[ s:bg_1, s:blue ], [ s:cyan, s:bg_2 ], [ s:dim_0, s:bg_1 ]]
let s:p.normal.left = [[ s:bg_1, s:blue ], [ s:cyan, s:bg_2 ]]
let s:p.normal.middle = [[ s:dim_0, s:bg_1 ]]
let s:p.normal.error = [[ s:bg_1, s:red ]]
let s:p.normal.warning = [[ s:bg_1, s:yellow ]]
let s:p.insert.right = [[ s:bg_1, s:green ], [ s:cyan, s:bg_2 ], [ s:dim_0, s:bg_1 ]]
let s:p.insert.left = [[ s:bg_1, s:green ], [ s:cyan, s:bg_2 ]]
let s:p.visual.right = [[ s:bg_1, s:magenta ], [ s:cyan, s:bg_2 ], [ s:dim_0, s:bg_1 ]]
let s:p.visual.left = [[ s:bg_1, s:magenta ], [ s:cyan, s:bg_2 ]]
let s:p.inactive.left = [[ s:brblue, s:bg_2 ], [ s:cyan, s:bg_2 ]]
let s:p.inactive.right = [[ s:brblue, s:bg_2 ], [ s:cyan, s:bg_2 ]]
let s:p.replace.right = [[ s:bg_1, s:red ], [ s:cyan, s:bg_2 ], [ s:dim_0, s:bg_1 ]]
let s:p.replace.left = [[ s:bg_1, s:red ], [ s:cyan, s:bg_2 ]]
let s:p.tabline.right = [[ s:bg_1, s:red ]]
let s:p.tabline.left = [[ s:cyan, s:bg_2 ]]
let s:p.tabline.tabsel = [[ s:bg_1, s:blue ]]
let g:lightline#colorscheme#selenized_white#palette = lightline#colorscheme#flatten(s:p)

View File

@@ -0,0 +1,42 @@
" =============================================================================
" Filename: autoload/lightline/colorscheme/seoul256.vim
" Author: atweiden
" License: MIT License
" Last Change: 2015/11/02 08:23:27.
" =============================================================================
let s:base03 = [ '#151513', 233 ]
let s:base02 = [ '#30302c', 236 ]
let s:base01 = [ '#4e4e43', 239 ]
let s:base00 = [ '#666656', 242 ]
let s:base0 = [ '#808070', 244 ]
let s:base1 = [ '#949484', 246 ]
let s:base2 = [ '#a8a897', 248 ]
let s:base3 = [ '#e8e8d3', 253 ]
let s:yellow = [ '#d8af5f', 3 ]
let s:orange = [ '#d7875f', 216 ]
let s:red = [ '#d68787', 131 ]
let s:magenta = [ '#df5f87', 168 ]
let s:peach = [ '#d7afaf', 181 ]
let s:blue = [ '#87afaf', 109 ]
let s:cyan = [ '#87d7d7', 23 ]
let s:green = [ '#87af87', 108 ]
let s:white = [ '#d0d0d0', 252 ]
let s:p = {'normal': {}, 'inactive': {}, 'insert': {}, 'replace': {}, 'visual': {}, 'tabline': {}}
let s:p.normal.left = [ [ s:base02, s:blue ], [ s:base3, s:base01 ] ]
let s:p.normal.right = [ [ s:base02, s:base1 ], [ s:base2, s:base01 ] ]
let s:p.inactive.right = [ [ s:base02, s:base00 ], [ s:base0, s:base02 ] ]
let s:p.inactive.left = [ [ s:base0, s:base02 ], [ s:base00, s:base02 ] ]
let s:p.insert.left = [ [ s:base02, s:green ], [ s:base3, s:base01 ] ]
let s:p.replace.left = [ [ s:base02, s:magenta ], [ s:base3, s:base01 ] ]
let s:p.visual.left = [ [ s:base02, s:peach ], [ s:base3, s:base01 ] ]
let s:p.normal.middle = [ [ s:base0, s:base02 ] ]
let s:p.inactive.middle = [ [ s:base00, s:base02 ] ]
let s:p.tabline.left = [ [ s:base3, s:base00 ] ]
let s:p.tabline.tabsel = [ [ s:base3, s:base02 ] ]
let s:p.tabline.middle = [ [ s:base01, s:base1 ] ]
let s:p.tabline.right = copy(s:p.normal.right)
let s:p.normal.error = [ [ s:red, s:base02 ] ]
let s:p.normal.warning = [ [ s:yellow, s:base01 ] ]
let g:lightline#colorscheme#seoul256#palette = lightline#colorscheme#flatten(s:p)

View File

@@ -0,0 +1,43 @@
" =============================================================================
" Filename: autoload/lightline/colorscheme/simpleblack.vim
" Author: lucasprag
" License: MIT License
" Last Change: 2019/10/28 22:54:01.
" =============================================================================
let s:black = [ '#000000', '0' ]
let s:black2 = [ '#121212', '233' ]
let s:gray = [ '#262626', '235' ]
let s:gray2 = [ '#3a3a3a', '237' ]
let s:gray3 = [ '#4e4e4e', '239' ]
let s:gray4 = [ '#626262', '241' ]
let s:violet = [ '#cf73e6', '170' ]
let s:blue = [ '#5f87af', '67' ]
let s:blue2 = [ '#91aadf', '110' ]
let s:green = [ '#57ba37', '71' ]
let s:gold = [ '#f0d50c', '220' ]
let s:red = [ '#d70000', '160' ]
let s:none = [ 'NONE', 'NONE' ]
let s:p = {'normal': {}, 'inactive': {}, 'insert': {}, 'replace': {}, 'visual': {}, 'tabline': {}}
let s:p.normal.left = [ [ s:black, s:blue ], [ s:gray4, s:black2 ] ]
let s:p.normal.right = [ [ s:gray, s:gray4 ], [ s:gray3, s:gray ], [ s:gray2, s:black2 ] ]
let s:p.inactive.right = [ [ s:black, s:black2 ], [ s:gray, s:black ] ]
let s:p.inactive.left = [ [ s:gray, s:black ], [ s:black2, s:black ] ]
let s:p.insert.left = [ [ s:black, s:green ], [ s:gray4, s:black2 ] ]
let s:p.replace.left = [ [ s:black, s:red ], [ s:gray4, s:black2 ] ]
let s:p.visual.left = [ [ s:black, s:violet ], [ s:gray4, s:black2 ] ]
let s:p.normal.middle = [ [ s:gray, s:black ] ]
let s:p.inactive.middle = [ [ s:black2, s:black ] ]
let s:p.tabline.left = [ [ s:gray4, s:black ] ]
let s:p.tabline.tabsel = [ [ s:blue, s:black ] ]
let s:p.tabline.middle = [ [ s:black2, s:black ] ]
let s:p.tabline.right = copy(s:p.normal.right)
let s:p.normal.error = [ [ s:red, s:black ] ]
let s:p.normal.warning = [ [ s:gold, s:black2 ] ]
let g:lightline#colorscheme#simpleblack#palette = lightline#colorscheme#flatten(s:p)

View File

@@ -0,0 +1,80 @@
" =============================================================================
" Filename: autoload/lightline/colorscheme/solarized.vim
" Author: itchyny
" License: MIT License
" Last Change: 2020/04/06 19:22:53.
" =============================================================================
let s:cuicolors = {
\ 'base03': [ '8', '234', 'DarkGray' ],
\ 'base02': [ '0', '235', 'Black' ],
\ 'base01': [ '10', '239', 'LightGreen' ],
\ 'base00': [ '11', '240', 'LightYellow' ],
\ 'base0': [ '12', '244', 'LightBlue' ],
\ 'base1': [ '14', '245', 'LightCyan' ],
\ 'base2': [ '7', '187', 'LightGray' ],
\ 'base3': [ '15', '230', 'White' ],
\ 'yellow': [ '3', '136', 'DarkYellow' ],
\ 'orange': [ '9', '166', 'LightRed' ],
\ 'red': [ '1', '124', 'DarkRed' ],
\ 'magenta': [ '5', '125', 'DarkMagenta' ],
\ 'violet': [ '13', '61', 'LightMagenta' ],
\ 'blue': [ '4', '33', 'DarkBlue' ],
\ 'cyan': [ '6', '37', 'DarkCyan' ],
\ 'green': [ '2', '64', 'DarkGreen' ],
\ }
" The following condition only applies for the console and is the same
" condition vim-colors-solarized uses to determine which set of colors
" to use.
let s:solarized_termcolors = get(g:, 'solarized_termcolors', 256)
if s:solarized_termcolors != 256 && &t_Co >= 16
let s:cuiindex = 0
elseif s:solarized_termcolors == 256
let s:cuiindex = 1
else
let s:cuiindex = 2
endif
let s:base03 = [ '#002b36', s:cuicolors.base03[s:cuiindex] ]
let s:base02 = [ '#073642', s:cuicolors.base02[s:cuiindex] ]
let s:base01 = [ '#586e75', s:cuicolors.base01[s:cuiindex] ]
let s:base00 = [ '#657b83', s:cuicolors.base00[s:cuiindex] ]
let s:base0 = [ '#839496', s:cuicolors.base0[s:cuiindex] ]
let s:base1 = [ '#93a1a1', s:cuicolors.base1[s:cuiindex] ]
let s:base2 = [ '#eee8d5', s:cuicolors.base2[s:cuiindex] ]
let s:base3 = [ '#fdf6e3', s:cuicolors.base3[s:cuiindex] ]
let s:yellow = [ '#b58900', s:cuicolors.yellow[s:cuiindex] ]
let s:orange = [ '#cb4b16', s:cuicolors.orange[s:cuiindex] ]
let s:red = [ '#dc322f', s:cuicolors.red[s:cuiindex] ]
let s:magenta = [ '#d33682', s:cuicolors.magenta[s:cuiindex] ]
let s:violet = [ '#6c71c4', s:cuicolors.violet[s:cuiindex] ]
let s:blue = [ '#268bd2', s:cuicolors.blue[s:cuiindex] ]
let s:cyan = [ '#2aa198', s:cuicolors.cyan[s:cuiindex] ]
let s:green = [ '#859900', s:cuicolors.green[s:cuiindex] ]
if lightline#colorscheme#background() ==# 'light'
let [ s:base03, s:base3 ] = [ s:base3, s:base03 ]
let [ s:base02, s:base2 ] = [ s:base2, s:base02 ]
let [ s:base01, s:base1 ] = [ s:base1, s:base01 ]
let [ s:base00, s:base0 ] = [ s:base0, s:base00 ]
endif
let s:p = {'normal': {}, 'inactive': {}, 'insert': {}, 'replace': {}, 'visual': {}, 'tabline': {}}
let s:p.normal.left = [ [ s:base03, s:blue ], [ s:base03, s:base00 ] ]
let s:p.normal.right = [ [ s:base03, s:base1 ], [ s:base03, s:base00 ] ]
let s:p.inactive.right = [ [ s:base03, s:base00 ], [ s:base0, s:base02 ] ]
let s:p.inactive.left = [ [ s:base0, s:base02 ], [ s:base0, s:base02 ] ]
let s:p.insert.left = [ [ s:base03, s:green ], [ s:base03, s:base00 ] ]
let s:p.replace.left = [ [ s:base03, s:red ], [ s:base03, s:base00 ] ]
let s:p.visual.left = [ [ s:base03, s:magenta ], [ s:base03, s:base00 ] ]
let s:p.normal.middle = [ [ s:base1, s:base02 ] ]
let s:p.inactive.middle = [ [ s:base01, s:base02 ] ]
let s:p.tabline.left = [ [ s:base03, s:base00 ] ]
let s:p.tabline.tabsel = [ [ s:base03, s:base1 ] ]
let s:p.tabline.middle = [ [ s:base0, s:base02 ] ]
let s:p.tabline.right = copy(s:p.tabline.left)
let s:p.normal.error = [ [ s:base03, s:red ] ]
let s:p.normal.warning = [ [ s:base03, s:yellow ] ]
let g:lightline#colorscheme#solarized#palette = lightline#colorscheme#flatten(s:p)

View File

@@ -0,0 +1,44 @@
" =============================================================================
" Filename: autoload/lightline/colorscheme/srcery_drk.vim
" Author: Christopher Vittal
" License: MIT License
" Last Change: 2018/05/19
" =============================================================================
let s:base03 = [ '#151513', 233 ]
let s:base02 = [ '#30302c', 236 ]
let s:base01 = [ '#4e4e43', 239 ]
let s:base00 = [ '#666656', 242 ]
let s:base0 = [ '#808070', 244 ]
let s:base1 = [ '#949484', 246 ]
let s:base2 = [ '#a8a897', 248 ]
let s:base3 = [ '#e8e8d3', 253 ]
let s:yellow = [ '#fbb829', 3 ]
let s:orange = [ '#d75f00', 166 ]
let s:red = [ '#ff3128', 1 ]
let s:magenta = [ '#e02c6d', 5 ]
let s:bright_magenta = [ '#e35682', 13 ]
let s:blue = [ '#5573a3', 4 ]
let s:bright_blue = [ '#8eb2f7', 12 ]
let s:cyan = [ '#0aaeb3', 6 ]
let s:green = [ '#519f50', 2 ]
let s:bright_green = [ '#98bc37', 10 ]
let s:white = [ '#fce8c3', 15 ]
let s:p = {'normal': {}, 'inactive': {}, 'insert': {}, 'replace': {}, 'visual': {}, 'tabline': {}}
let s:p.normal.left = [ [ s:base02, s:bright_blue, 'bold' ], [ s:base3, s:base01 ] ]
let s:p.normal.right = [ [ s:base02, s:base1 ], [ s:base2, s:base01 ] ]
let s:p.inactive.right = [ [ s:base02, s:base00 ], [ s:base0, s:base02 ] ]
let s:p.inactive.left = [ [ s:base0, s:base02 ], [ s:base00, s:base02 ] ]
let s:p.insert.left = [ [ s:base02, s:bright_green, 'bold' ], [ s:base3, s:base01 ] ]
let s:p.replace.left = [ [ s:base3, s:red, 'bold' ], [ s:base3, s:base01 ] ]
let s:p.visual.left = [ [ s:base3, s:bright_magenta, 'bold' ], [ s:base3, s:base01 ] ]
let s:p.normal.middle = [ [ s:base0, s:base02 ] ]
let s:p.inactive.middle = [ [ s:base00, s:base02 ] ]
let s:p.tabline.left = [ [ s:base3, s:base00, 'bold'] ]
let s:p.tabline.tabsel = [ [ s:base3, s:base02 ] ]
let s:p.tabline.middle = [ [ s:base01, s:base1 ] ]
let s:p.tabline.right = copy(s:p.normal.right)
let s:p.normal.error = [ [ s:red, s:base02 ] ]
let s:p.normal.warning = [ [ s:yellow, s:base01 ] ]
let g:lightline#colorscheme#srcery_drk#palette = lightline#colorscheme#flatten(s:p)

View File

@@ -0,0 +1,40 @@
" =============================================================================
" Filename: autoload/lightline/colorscheme/wombat.vim
" Author: itchyny
" License: MIT License
" Last Change: 2015/11/30 08:37:43.
" =============================================================================
let s:base03 = [ '#242424', 235 ]
let s:base023 = [ '#353535', 236 ]
let s:base02 = [ '#444444', 238 ]
let s:base01 = [ '#585858', 240 ]
let s:base00 = [ '#666666', 242 ]
let s:base0 = [ '#808080', 244 ]
let s:base1 = [ '#969696', 247 ]
let s:base2 = [ '#a8a8a8', 248 ]
let s:base3 = [ '#d0d0d0', 252 ]
let s:yellow = [ '#cae682', 180 ]
let s:orange = [ '#e5786d', 173 ]
let s:red = [ '#e5786d', 203 ]
let s:magenta = [ '#f2c68a', 216 ]
let s:blue = [ '#8ac6f2', 117 ]
let s:cyan = s:blue
let s:green = [ '#95e454', 119 ]
let s:p = {'normal': {}, 'inactive': {}, 'insert': {}, 'replace': {}, 'visual': {}, 'tabline': {}}
let s:p.normal.left = [ [ s:base02, s:blue ], [ s:base3, s:base01 ] ]
let s:p.normal.right = [ [ s:base02, s:base0 ], [ s:base1, s:base01 ] ]
let s:p.inactive.right = [ [ s:base023, s:base01 ], [ s:base00, s:base02 ] ]
let s:p.inactive.left = [ [ s:base1, s:base02 ], [ s:base00, s:base023 ] ]
let s:p.insert.left = [ [ s:base02, s:green ], [ s:base3, s:base01 ] ]
let s:p.replace.left = [ [ s:base023, s:red ], [ s:base3, s:base01 ] ]
let s:p.visual.left = [ [ s:base02, s:magenta ], [ s:base3, s:base01 ] ]
let s:p.normal.middle = [ [ s:base2, s:base02 ] ]
let s:p.inactive.middle = [ [ s:base1, s:base023 ] ]
let s:p.tabline.left = [ [ s:base3, s:base00 ] ]
let s:p.tabline.tabsel = [ [ s:base3, s:base03 ] ]
let s:p.tabline.middle = [ [ s:base2, s:base02 ] ]
let s:p.tabline.right = [ [ s:base2, s:base00 ] ]
let s:p.normal.error = [ [ s:base03, s:red ] ]
let s:p.normal.warning = [ [ s:base023, s:yellow ] ]
let g:lightline#colorscheme#wombat#palette = lightline#colorscheme#flatten(s:p)

View File

@@ -0,0 +1,52 @@
" =============================================================================
" Filename: autoload/lightline/colortable.vim
" Author: itchyny
" License: MIT License
" Last Change: 2020/06/19 11:07:13.
" =============================================================================
let s:save_cpo = &cpo
set cpo&vim
function! s:load() abort
let rgbfile = $VIMRUNTIME . '/rgb.txt'
let table = {}
if filereadable(rgbfile)
for _ in map(filter(readfile(rgbfile), 'v:val !~# "^!"'), 'matchlist(v:val, "^\\s*\\(\\d\\+\\)\\s\\+\\(\\d\\+\\)\\s\\+\\(\\d\\+\\)\\s\\+\\(.*\\)")[1:4]')
let table[tolower(_[3])] = _[0:2]
endfor
endif
return table
endfunction
let s:table = s:load()
function! lightline#colortable#name_to_rgb(name) abort
let name = tolower(a:name)
return has_key(s:table, name) ? s:table[name] : []
endfunction
function! lightline#colortable#gui2cui(rgb, fallback) abort
let rgb = map(matchlist(a:rgb, '#\(..\)\(..\)\(..\)')[1:3], '0 + ("0x".v:val)')
if len(rgb) == 0
let rgb = lightline#colortable#name_to_rgb(a:rgb)
if len(rgb) == 0
return a:fallback % 128
endif
endif
let rgb = [rgb[0] > 127 ? 4 : 0, rgb[1] > 127 ? 2 : 0, rgb[2] > 127 ? 1 : 0]
return rgb[0] + rgb[1] + rgb[2]
endfunction
function! lightline#colortable#gui2cui_palette(palette) abort
for u in values(a:palette)
for v in values(u)
for w in v
let [w[2], w[3]] = [lightline#colortable#gui2cui(w[0], w[2]), lightline#colortable#gui2cui(w[1], w[3])]
endfor
endfor
endfor
endfunction
let &cpo = s:save_cpo
unlet s:save_cpo

View File

@@ -0,0 +1,33 @@
" =============================================================================
" Filename: autoload/lightline/tab.vim
" Author: itchyny
" License: MIT License
" Last Change: 2016/05/07 22:31:02.
" =============================================================================
let s:save_cpo = &cpo
set cpo&vim
function! lightline#tab#filename(n) abort
let buflist = tabpagebuflist(a:n)
let winnr = tabpagewinnr(a:n)
let _ = expand('#'.buflist[winnr - 1].':t')
return _ !=# '' ? _ : '[No Name]'
endfunction
function! lightline#tab#modified(n) abort
let winnr = tabpagewinnr(a:n)
return gettabwinvar(a:n, winnr, '&modified') ? '+' : gettabwinvar(a:n, winnr, '&modifiable') ? '' : '-'
endfunction
function! lightline#tab#readonly(n) abort
let winnr = tabpagewinnr(a:n)
return gettabwinvar(a:n, winnr, '&readonly') ? 'RO' : ''
endfunction
function! lightline#tab#tabnum(n) abort
return a:n
endfunction
let &cpo = s:save_cpo
unlet s:save_cpo

View File

@@ -0,0 +1,145 @@
# Available Colorschemes
### powerline (default)
![lightline.vim - powerline](https://raw.githubusercontent.com/wiki/itchyny/lightline.vim/image/powerline.png)
### powerlineish
![lightline.vim - powerlineish](https://raw.githubusercontent.com/wiki/itchyny/lightline.vim/image/powerlineish.png)
### wombat
![lightline.vim - wombat](https://raw.githubusercontent.com/wiki/itchyny/lightline.vim/image/wombat.png)
### OldHope
![lightline.vim - OldHope](https://raw.githubusercontent.com/wiki/itchyny/lightline.vim/image/OldHope.png)
### PaperColor dark
![lightline.vim - PaperColor dark](https://raw.githubusercontent.com/wiki/itchyny/lightline.vim/image/PaperColor_dark.png)
### PaperColor light
![lightline.vim - PaperColor light](https://raw.githubusercontent.com/wiki/itchyny/lightline.vim/image/PaperColor_light.png)
### Tomorrow
![lightline.vim - Tomorrow](https://raw.githubusercontent.com/wiki/itchyny/lightline.vim/image/Tomorrow.png)
### Tomorrow Night
![lightline.vim - Tomorrow Night](https://raw.githubusercontent.com/wiki/itchyny/lightline.vim/image/Tomorrow_Night.png)
### Tomorrow Night Blue
![lightline.vim - Tomorrow Night Blue](https://raw.githubusercontent.com/wiki/itchyny/lightline.vim/image/Tomorrow_Night_Blue.png)
### Tomorrow Night Bright
![lightline.vim - Tomorrow Night Bright](https://raw.githubusercontent.com/wiki/itchyny/lightline.vim/image/Tomorrow_Night_Bright.png)
### Tomorrow Night Eighties
![lightline.vim - Tomorrow Night Eighties](https://raw.githubusercontent.com/wiki/itchyny/lightline.vim/image/Tomorrow_Night_Eighties.png)
### ayu_mirage
![lightline.vim - ayu mirage](https://raw.githubusercontent.com/wiki/itchyny/lightline.vim/image/ayu_mirage.png)
### ayu_light
![lightline.vim - ayu light](https://raw.githubusercontent.com/wiki/itchyny/lightline.vim/image/ayu_light.png)
### ayu_dark
![lightline.vim - ayu dark](https://raw.githubusercontent.com/wiki/itchyny/lightline.vim/image/ayu_dark.png)
### darcula
![lightline.vim - darcula](https://raw.githubusercontent.com/wiki/itchyny/lightline.vim/image/darcula.png)
### deus
![lightline.vim - deus](https://raw.githubusercontent.com/wiki/itchyny/lightline.vim/image/deus.png)
### jellybeans
![lightline.vim - jellybeans](https://raw.githubusercontent.com/wiki/itchyny/lightline.vim/image/jellybeans.png)
### selenized dark
![lightline.vim - selenized dark](https://raw.githubusercontent.com/wiki/itchyny/lightline.vim/image/selenized_dark.png)
### selenized black
![lightline.vim - selenized black](https://raw.githubusercontent.com/wiki/itchyny/lightline.vim/image/selenized_black.png)
### selenized light
![lightline.vim - selenized light](https://raw.githubusercontent.com/wiki/itchyny/lightline.vim/image/selenized_light.png)
### selenized white
![lightline.vim - selenized white](https://raw.githubusercontent.com/wiki/itchyny/lightline.vim/image/selenized_white.png)
### solarized dark
![lightline.vim - solarized dark](https://raw.githubusercontent.com/wiki/itchyny/lightline.vim/image/solarized_dark.png)
### solarized light
![lightline.vim - solarized light](https://raw.githubusercontent.com/wiki/itchyny/lightline.vim/image/solarized_light.png)
### materia
![lightline.vim - materia](https://raw.githubusercontent.com/wiki/itchyny/lightline.vim/image/materia.png)
### material
![lightline.vim - material](https://raw.githubusercontent.com/wiki/itchyny/lightline.vim/image/material.png)
### molokai
![lightline.vim - molokai](https://raw.githubusercontent.com/wiki/itchyny/lightline.vim/image/molokai.png)
### nord
![lightline.vim - nord](https://raw.githubusercontent.com/wiki/itchyny/lightline.vim/image/nord.png)
### seoul256
![lightline.vim - seoul256](https://raw.githubusercontent.com/wiki/itchyny/lightline.vim/image/seoul256.png)
### one dark
![lightline.vim - one dark](https://raw.githubusercontent.com/wiki/itchyny/lightline.vim/image/one_dark.png)
### one light
![lightline.vim - one light](https://raw.githubusercontent.com/wiki/itchyny/lightline.vim/image/one_light.png)
### srcery_drk
![lightline.vim - srcery_drk](https://raw.githubusercontent.com/wiki/itchyny/lightline.vim/image/srcery_drk.png)
### simpleblack
![lightline.vim - simpleblack](https://raw.githubusercontent.com/wiki/itchyny/lightline.vim/image/simpleblack.png)
### apprentice
![lightline.vim - apprentice](https://raw.githubusercontent.com/wiki/itchyny/lightline.vim/image/apprentice.png)
### landscape
![lightline.vim - landscape](https://raw.githubusercontent.com/wiki/itchyny/lightline.vim/image/landscape.png)
### 16color dark
![lightline.vim - 16color dark](https://raw.githubusercontent.com/wiki/itchyny/lightline.vim/image/16color_dark.png)
### 16color light
![lightline.vim - 16color light](https://raw.githubusercontent.com/wiki/itchyny/lightline.vim/image/16color_light.png)

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,33 @@
" =============================================================================
" Filename: plugin/lightline.vim
" Author: itchyny
" License: MIT License
" Last Change: 2020/11/05 20:05:40.
" =============================================================================
if exists('g:loaded_lightline') || v:version < 703
finish
endif
let g:loaded_lightline = 1
let s:save_cpo = &cpo
set cpo&vim
augroup lightline
autocmd!
autocmd WinEnter,BufEnter,BufDelete,SessionLoadPost,FileChangedShellPost * call lightline#update()
if !has('patch-8.1.1715')
autocmd FileType qf call lightline#update()
endif
autocmd SessionLoadPost * call lightline#highlight()
autocmd ColorScheme * if !has('vim_starting') || expand('<amatch>') !=# 'macvim'
\ | call lightline#update() | call lightline#highlight() | endif
augroup END
" This quickfix option was introduced at Vim 85850f3a5ef9, which is the commit
" just before 8.1.1715. Before this patch, autocmd FileType is required to
" overwrite the statusline of the quickfix and location windows.
let g:qf_disable_statusline = 1
let &cpo = s:save_cpo
unlet s:save_cpo

View File

@@ -0,0 +1,24 @@
let s:sids = {}
function! s:sid(path) abort
if has_key(s:sids, a:path)
return s:sids[a:path]
endif
redir => scriptnames
silent! scriptnames
redir END
for line in split(scriptnames, '\n')
if line =~# a:path
let sid = matchstr(line, '\v^\s*\zs\d+\ze')
let s:sids[a:path] = sid
return sid
endif
endfor
endfunction
function! SID(name) abort
return function(printf("\<SNR>%d_%s", s:sid('autoload/lightline.vim'), a:name))
endfunction
filetype plugin on
call lightline#init()

View File

@@ -0,0 +1,23 @@
if !has("patch-8.2.0996")
finish
endif
let s:suite = themis#suite('autocmd')
let s:assert = themis#helper('assert')
function! s:suite.before_each()
let g:lightline = {}
call lightline#init()
tabnew
tabonly
endfunction
function! s:suite.doautoall()
tabnew
tabnew
tabprevious
doautoall WinEnter
let statusline = getwinvar(1, '&statusline')
call s:assert.match(statusline, 'lightline')
call s:assert.match(statusline, '_active_')
endfunction

View File

@@ -0,0 +1,90 @@
let s:suite = themis#suite('concatenate')
let s:assert = themis#helper('assert')
function! s:suite.before_each()
let g:lightline = { 'subseparator': { 'left': '>', 'right': '<' } }
call lightline#init()
endfunction
function! s:suite.nil()
call s:assert.equals(lightline#concatenate([], 0), '')
call s:assert.equals(lightline#concatenate([], 1), '')
endfunction
function! s:suite.one()
call s:assert.equals(lightline#concatenate(['foo'], 0), 'foo')
call s:assert.equals(lightline#concatenate(['foo'], 1), 'foo')
endfunction
function! s:suite.two()
call s:assert.equals(lightline#concatenate(['foo', 'bar'], 0), 'foo > bar')
call s:assert.equals(lightline#concatenate(['foo', 'bar'], 1), 'foo < bar')
endfunction
function! s:suite.three()
call s:assert.equals(lightline#concatenate(['foo', 'bar', 'baz'], 0), 'foo > bar > baz')
call s:assert.equals(lightline#concatenate(['foo', 'bar', 'baz'], 1), 'foo < bar < baz')
endfunction
function! s:suite.one_empty()
call s:assert.equals(lightline#concatenate([''], 0), '')
call s:assert.equals(lightline#concatenate([''], 1), '')
endfunction
function! s:suite.two_empty_left()
call s:assert.equals(lightline#concatenate(['', 'bar'], 0), 'bar')
call s:assert.equals(lightline#concatenate(['', 'bar'], 1), 'bar')
endfunction
function! s:suite.two_empty_right()
call s:assert.equals(lightline#concatenate(['foo', ''], 0), 'foo')
call s:assert.equals(lightline#concatenate(['foo', ''], 1), 'foo')
endfunction
function! s:suite.two_empty_both()
call s:assert.equals(lightline#concatenate(['', ''], 0), '')
call s:assert.equals(lightline#concatenate(['', ''], 1), '')
endfunction
function! s:suite.three_empty_left()
call s:assert.equals(lightline#concatenate(['', 'bar', 'baz'], 0), 'bar > baz')
call s:assert.equals(lightline#concatenate(['', 'bar', 'baz'], 1), 'bar < baz')
endfunction
function! s:suite.three_empty_middle()
call s:assert.equals(lightline#concatenate(['foo', '', 'baz'], 0), 'foo > baz')
call s:assert.equals(lightline#concatenate(['foo', '', 'baz'], 1), 'foo < baz')
endfunction
function! s:suite.three_empty_right()
call s:assert.equals(lightline#concatenate(['foo', 'bar', ''], 0), 'foo > bar')
call s:assert.equals(lightline#concatenate(['foo', 'bar', ''], 1), 'foo < bar')
endfunction
function! s:suite.three_empty_middle_right()
call s:assert.equals(lightline#concatenate(['foo', '', ''], 0), 'foo')
call s:assert.equals(lightline#concatenate(['foo', '', ''], 1), 'foo')
endfunction
function! s:suite.three_empty_left_right()
call s:assert.equals(lightline#concatenate(['', 'bar', ''], 0), 'bar')
call s:assert.equals(lightline#concatenate(['', 'bar', ''], 1), 'bar')
endfunction
function! s:suite.three_empty_left_middle()
call s:assert.equals(lightline#concatenate(['', '', 'baz'], 0), 'baz')
call s:assert.equals(lightline#concatenate(['', '', 'baz'], 1), 'baz')
endfunction
function! s:suite.three_empty_all()
call s:assert.equals(lightline#concatenate(['', '', ''], 0), '')
call s:assert.equals(lightline#concatenate(['', '', ''], 1), '')
endfunction
function! s:suite.keep_original()
let xs = ['', 'bar', '']
call s:assert.equals(lightline#concatenate(xs, 0), 'bar')
call s:assert.equals(xs, ['', 'bar', ''])
call s:assert.equals(lightline#concatenate(xs, 1), 'bar')
call s:assert.equals(xs, ['', 'bar', ''])
endfunction

View File

@@ -0,0 +1,15 @@
let s:suite = themis#suite('error')
let s:assert = themis#helper('assert')
function! s:message() abort
redir => messages
silent! messages
redir END
return split(messages, '\n')[-1]
endfunction
function! s:suite.error()
let message = 'An error occurred.'
call lightline#error(message)
call s:assert.equals(s:message(), 'lightline.vim: ' . message)
endfunction

View File

@@ -0,0 +1,667 @@
let s:suite = themis#suite('expand')
let s:assert = themis#helper('assert')
function! s:expand(...)
return call(SID('expand'), a:000)
endfunction
function! s:suite.expand()
let g:lightline = {}
call lightline#init()
call s:assert.equals(s:expand([]),
\ [[], [], ['0']])
endfunction
function! s:suite.default()
let g:lightline = {}
call lightline#init()
call s:assert.equals(s:expand([['mode', 'paste'], ['readonly', 'filename', 'modified']]),
\ [[['mode', 'paste'], ['readonly', 'filename', 'modified']], [[0, 0], [0, 0, 0]], ['0', '1', '2']])
endfunction
function! s:suite.custom()
function! Custom()
return [ ['left'], ['middle'], ['right'] ]
endfunction
let g:lightline = { 'component_expand': { 'custom': 'Custom' } }
call lightline#init()
call s:assert.equals(s:expand([['readonly', 'filename'], ['custom'], ['modified']]),
\ [[['readonly', 'filename'], ['left', 'middle', 'right'], ['modified']], [[0, 0], [1, 1, 1], [0]], ['0', '1', '2', '3']])
call s:assert.equals(s:expand([['readonly', 'filename', 'custom', 'modified']]),
\ [[['readonly', 'filename', 'left', 'middle', 'right', 'modified']], [[0, 0, 1, 1, 1, 0]], ['0', '1']])
delfunction Custom
endfunction
function! s:suite.custom_type()
function! Custom()
return [ ['left'], ['middle'], ['right'] ]
endfunction
let g:lightline = { 'component_expand': { 'custom': 'Custom' }, 'component_type': { 'custom': 'custom' } }
call lightline#init()
call s:assert.equals(s:expand([['readonly', 'filename'], ['custom'], ['modified']]),
\ [[['readonly', 'filename'], ['left'], ['middle'], ['right'], ['modified']], [[0, 0], [1], [1], [1], [0]], ['0', '1', 'custom', '1', '2', '3']])
call s:assert.equals(s:expand([['readonly', 'filename', 'custom', 'modified']]),
\ [[['readonly', 'filename', 'left'], ['middle'], ['right', 'modified']], [[0, 0, 1], [1], [1, 0]], ['0', 'custom', '0', '1']])
delfunction Custom
endfunction
function! s:suite.raw_type()
function! Custom()
return [ ['left'], ['middle'], ['right'] ]
endfunction
let g:lightline = { 'component_expand': { 'custom': 'Custom' }, 'component_type': { 'custom': 'raw' } }
call lightline#init()
call s:assert.equals(s:expand([['readonly', 'filename'], ['custom'], ['modified']]),
\ [[['readonly', 'filename'], ['left', 'middle', 'right'], ['modified']], [[0, 0], [2, 2, 2], [0]], ['0', '1', '2', '3']])
call s:assert.equals(s:expand([['readonly', 'filename', 'custom', 'modified']]),
\ [[['readonly', 'filename', 'left', 'middle', 'right', 'modified']], [[0, 0, 2, 2, 2, 0]], ['0', '1']])
delfunction Custom
endfunction
function! s:suite.component_raw()
function! Custom()
return [ ['left'], ['middle'], ['right'] ]
endfunction
let g:lightline = { 'component_expand': { 'custom': 'Custom' }, 'component_type': { 'custom': 'custom' }, 'component_raw': { 'custom': 1 } }
call lightline#init()
call s:assert.equals(s:expand([['readonly', 'filename'], ['custom'], ['modified']]),
\ [[['readonly', 'filename'], ['left'], ['middle'], ['right'], ['modified']], [[0, 0], [2], [2], [2], [0]], ['0', '1', 'custom', '1', '2', '3']])
call s:assert.equals(s:expand([['readonly', 'filename', 'custom', 'modified']]),
\ [[['readonly', 'filename', 'left'], ['middle'], ['right', 'modified']], [[0, 0, 2], [2], [2, 0]], ['0', 'custom', '0', '1']])
delfunction Custom
endfunction
function! s:suite.multiple()
function! Custom()
return [ ['x0', 'x1', 'x2'], ['y0', 'y1', 'y2'], ['z0', 'z1', 'z2'] ]
endfunction
let g:lightline = { 'component_expand': { 'custom': 'Custom' } }
call lightline#init()
call s:assert.equals(s:expand([['readonly', 'filename'], ['custom'], ['modified']]),
\ [[['readonly', 'filename'], ['x0', 'x1', 'x2', 'y0', 'y1', 'y2', 'z0', 'z1', 'z2'], ['modified']], [[0, 0], [1, 1, 1, 1, 1, 1, 1, 1, 1], [0]], ['0', '1', '2', '3']])
call s:assert.equals(s:expand([['readonly', 'filename', 'custom', 'modified']]),
\ [[['readonly', 'filename', 'x0', 'x1', 'x2', 'y0', 'y1', 'y2', 'z0', 'z1', 'z2', 'modified']], [[0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0]], ['0', '1']])
delfunction Custom
endfunction
function! s:suite.multiple_type()
function! Custom()
return [ ['x0', 'x1', 'x2'], ['y0', 'y1', 'y2'], ['z0', 'z1', 'z2'] ]
endfunction
let g:lightline = { 'component_expand': { 'custom': 'Custom' }, 'component_type': { 'custom': 'custom' } }
call lightline#init()
call s:assert.equals(s:expand([['readonly', 'filename'], ['custom'], ['modified']]),
\ [[['readonly', 'filename'], ['x0', 'x1', 'x2'], ['y0', 'y1', 'y2'], ['z0', 'z1', 'z2'], ['modified']], [[0, 0], [1, 1, 1], [1, 1, 1], [1, 1, 1], [0]], ['0', '1', 'custom', '1', '2', '3']])
call s:assert.equals(s:expand([['readonly', 'filename', 'custom', 'modified']]),
\ [[['readonly', 'filename', 'x0', 'x1', 'x2'], ['y0', 'y1', 'y2'], ['z0', 'z1', 'z2', 'modified']], [[0, 0, 1, 1, 1], [1, 1, 1], [1, 1, 1, 0]], ['0', 'custom', '0', '1']])
delfunction Custom
endfunction
function! s:suite.flatten()
function! Custom()
return [ 'left', 'middle', 'right' ]
endfunction
let g:lightline = { 'component_expand': { 'custom': 'Custom' } }
call lightline#init()
call s:assert.equals(s:expand([['readonly', 'filename'], ['custom'], ['modified']]),
\ [[['readonly', 'filename'], ['left', 'middle', 'right'], ['modified']], [[0, 0], [1, 1, 1], [0]], ['0', '1', '2', '3']])
call s:assert.equals(s:expand([['readonly', 'filename', 'custom', 'modified']]),
\ [[['readonly', 'filename', 'left', 'middle', 'right', 'modified']], [[0, 0, 1, 1, 1, 0]], ['0', '1']])
delfunction Custom
endfunction
function! s:suite.custom_type_flatten()
function! Custom()
return [ 'left', 'middle', 'right' ]
endfunction
let g:lightline = { 'component_expand': { 'custom': 'Custom' }, 'component_type': { 'custom': 'custom' } }
call lightline#init()
call s:assert.equals(s:expand([['readonly', 'filename'], ['custom'], ['modified']]),
\ [[['readonly', 'filename'], ['left'], ['middle'], ['right'], ['modified']], [[0, 0], [1], [1], [1], [0]], ['0', '1', 'custom', '1', '2', '3']])
call s:assert.equals(s:expand([['readonly', 'filename', 'custom', 'modified']]),
\ [[['readonly', 'filename', 'left'], ['middle'], ['right', 'modified']], [[0, 0, 1], [1], [1, 0]], ['0', 'custom', '0', '1']])
delfunction Custom
endfunction
function! s:suite.custom_string()
function! Custom()
return 'custom'
endfunction
let g:lightline = { 'component_expand': { 'custom': 'Custom' } }
call lightline#init()
call s:assert.equals(s:expand([['readonly', 'filename'], ['custom'], ['modified']]),
\ [[['readonly', 'filename'], ['custom'], ['modified']], [[0, 0], [1], [0]], ['0', '1', '2', '3']])
call s:assert.equals(s:expand([['readonly', 'filename', 'custom', 'modified']]),
\ [[['readonly', 'filename', 'custom', 'modified']], [[0, 0, 1, 0]], ['0', '1']])
delfunction Custom
endfunction
function! s:suite.custom_type_string()
function! Custom()
return 'custom'
endfunction
let g:lightline = { 'component_expand': { 'custom': 'Custom' }, 'component_type': { 'custom': 'custom' } }
call lightline#init()
call s:assert.equals(s:expand([['readonly', 'filename'], ['custom'], ['modified']]),
\ [[['readonly', 'filename'], ['custom'], ['modified']], [[0, 0], [1], [0]], ['0', 'custom', '2', '3']])
call s:assert.equals(s:expand([['readonly', 'filename', 'custom', 'modified']]),
\ [[['readonly', 'filename'], ['custom'], ['modified']], [[0, 0], [1], [0]], ['0', 'custom', '0', '1']])
delfunction Custom
endfunction
function! s:suite.custom_void_string()
function! Custom()
return ''
endfunction
let g:lightline = { 'component_expand': { 'custom': 'Custom' } }
call lightline#init()
call s:assert.equals(s:expand([['readonly', 'filename'], ['custom'], ['modified']]),
\ [[['readonly', 'filename'], [], ['modified']], [[0, 0], [], [0]], ['0', '1', '2', '3']])
call s:assert.equals(s:expand([['readonly', 'filename', 'custom', 'modified']]),
\ [[['readonly', 'filename', 'modified']], [[0, 0, 0]], ['0', '1']])
delfunction Custom
endfunction
function! s:suite.custom_type_void_string()
function! Custom()
return ''
endfunction
let g:lightline = { 'component_expand': { 'custom': 'Custom' }, 'component_type': { 'custom': 'custom' } }
call lightline#init()
call s:assert.equals(s:expand([['readonly', 'filename'], ['custom'], ['modified']]),
\ [[['readonly', 'filename'], [], ['modified']], [[0, 0], [], [0]], ['0', '1', '2', '3']])
call s:assert.equals(s:expand([['readonly', 'filename', 'custom', 'modified']]),
\ [[['readonly', 'filename', 'modified']], [[0, 0, 0]], ['0', '1']])
delfunction Custom
endfunction
function! s:suite.custom_number()
function! Custom()
return 24
endfunction
let g:lightline = { 'component_expand': { 'custom': 'Custom' } }
call lightline#init()
call s:assert.equals(s:expand([['readonly', 'filename'], ['custom'], ['modified']]),
\ [[['readonly', 'filename'], ['24'], ['modified']], [[0, 0], [1], [0]], ['0', '1', '2', '3']])
call s:assert.equals(s:expand([['readonly', 'filename', 'custom', 'modified']]),
\ [[['readonly', 'filename', '24', 'modified']], [[0, 0, 1, 0]], ['0', '1']])
delfunction Custom
endfunction
function! s:suite.custom_type_number()
function! Custom()
return 24
endfunction
let g:lightline = { 'component_expand': { 'custom': 'Custom' }, 'component_type': { 'custom': 'custom' } }
call lightline#init()
call s:assert.equals(s:expand([['readonly', 'filename'], ['custom'], ['modified']]),
\ [[['readonly', 'filename'], ['24'], ['modified']], [[0, 0], [1], [0]], ['0', 'custom', '2', '3']])
call s:assert.equals(s:expand([['readonly', 'filename', 'custom', 'modified']]),
\ [[['readonly', 'filename'], ['24'], ['modified']], [[0, 0], [1], [0]], ['0', 'custom', '0', '1']])
delfunction Custom
endfunction
function! s:suite.custom_void_string_array()
function! Custom()
return ['', '', '']
endfunction
let g:lightline = { 'component_expand': { 'custom': 'Custom' } }
call lightline#init()
call s:assert.equals(s:expand([['readonly', 'filename'], ['custom'], ['modified']]),
\ [[['readonly', 'filename'], [], ['modified']], [[0, 0], [], [0]], ['0', '1', '2', '3']])
call s:assert.equals(s:expand([['readonly', 'filename', 'custom', 'modified']]),
\ [[['readonly', 'filename', 'modified']], [[0, 0, 0]], ['0', '1']])
delfunction Custom
endfunction
function! s:suite.custom_type_void_string_array()
function! Custom()
return ['', '', '']
endfunction
let g:lightline = { 'component_expand': { 'custom': 'Custom' }, 'component_type': { 'custom': 'custom' } }
call lightline#init()
call s:assert.equals(s:expand([['readonly', 'filename'], ['custom'], ['modified']]),
\ [[['readonly', 'filename'], [], ['modified']], [[0, 0], [], [0]], ['0', '1', '2', '3']])
call s:assert.equals(s:expand([['readonly', 'filename', 'custom', 'modified']]),
\ [[['readonly', 'filename', 'modified']], [[0, 0, 0]], ['0', '1']])
delfunction Custom
endfunction
function! s:suite.custom_void_string_array_2()
function! Custom()
return [[''], [''], ['']]
endfunction
let g:lightline = { 'component_expand': { 'custom': 'Custom' } }
call lightline#init()
call s:assert.equals(s:expand([['readonly', 'filename'], ['custom'], ['modified']]),
\ [[['readonly', 'filename'], [], ['modified']], [[0, 0], [], [0]], ['0', '1', '2', '3']])
call s:assert.equals(s:expand([['readonly', 'filename', 'custom', 'modified']]),
\ [[['readonly', 'filename', 'modified']], [[0, 0, 0]], ['0', '1']])
delfunction Custom
endfunction
function! s:suite.custom_type_void_string_array_2()
function! Custom()
return [[''], [''], ['']]
endfunction
let g:lightline = { 'component_expand': { 'custom': 'Custom' }, 'component_type': { 'custom': 'custom' } }
call lightline#init()
call s:assert.equals(s:expand([['readonly', 'filename'], ['custom'], ['modified']]),
\ [[['readonly', 'filename'], [], ['modified']], [[0, 0], [], [0]], ['0', '1', '2', '3']])
call s:assert.equals(s:expand([['readonly', 'filename', 'custom', 'modified']]),
\ [[['readonly', 'filename', 'modified']], [[0, 0, 0]], ['0', '1']])
delfunction Custom
endfunction
function! s:suite.custom_void_string_array_3()
function! Custom()
return ['', 'custom', '']
endfunction
let g:lightline = { 'component_expand': { 'custom': 'Custom' } }
call lightline#init()
call s:assert.equals(s:expand([['readonly', 'filename'], ['custom'], ['modified']]),
\ [[['readonly', 'filename'], ['custom'], ['modified']], [[0, 0], [1], [0]], ['0', '1', '2', '3']])
call s:assert.equals(s:expand([['readonly', 'filename', 'custom', 'modified']]),
\ [[['readonly', 'filename', 'custom', 'modified']], [[0, 0, 1, 0]], ['0', '1']])
delfunction Custom
endfunction
function! s:suite.custom_type_void_string_array_3()
function! Custom()
return ['', 'custom', '']
endfunction
let g:lightline = { 'component_expand': { 'custom': 'Custom' }, 'component_type': { 'custom': 'custom' } }
call lightline#init()
call s:assert.equals(s:expand([['readonly', 'filename'], ['custom'], ['modified']]),
\ [[['readonly', 'filename'], ['custom'], ['modified']], [[0, 0], [1], [0]], ['0', 'custom', '2', '3']])
call s:assert.equals(s:expand([['readonly', 'filename', 'custom', 'modified']]),
\ [[['readonly', 'filename'], ['custom'], ['modified']], [[0, 0], [1], [0]], ['0', 'custom', '0', '1']])
delfunction Custom
endfunction
function! s:suite.custom_void_string_array_4()
function! Custom()
return [[''], ['custom'], ['']]
endfunction
let g:lightline = { 'component_expand': { 'custom': 'Custom' } }
call lightline#init()
call s:assert.equals(s:expand([['readonly', 'filename'], ['custom'], ['modified']]),
\ [[['readonly', 'filename'], ['custom'], ['modified']], [[0, 0], [1], [0]], ['0', '1', '2', '3']])
call s:assert.equals(s:expand([['readonly', 'filename', 'custom', 'modified']]),
\ [[['readonly', 'filename', 'custom', 'modified']], [[0, 0, 1, 0]], ['0', '1']])
delfunction Custom
endfunction
function! s:suite.custom_type_void_string_array_4()
function! Custom()
return [[''], ['custom'], ['']]
endfunction
let g:lightline = { 'component_expand': { 'custom': 'Custom' }, 'component_type': { 'custom': 'custom' } }
call lightline#init()
call s:assert.equals(s:expand([['readonly', 'filename'], ['custom'], ['modified']]),
\ [[['readonly', 'filename'], ['custom'], ['modified']], [[0, 0], [1], [0]], ['0', 'custom', '2', '3']])
call s:assert.equals(s:expand([['readonly', 'filename', 'custom', 'modified']]),
\ [[['readonly', 'filename'], ['custom'], ['modified']], [[0, 0], [1], [0]], ['0', 'custom', '0', '1']])
delfunction Custom
endfunction
function! s:suite.custom_left_nil()
function! Custom()
return [ [], ['y0', 'y1'], ['z0', 'z1'] ]
endfunction
let g:lightline = { 'component_expand': { 'custom': 'Custom' } }
call lightline#init()
call s:assert.equals(s:expand([['filename'], ['custom'], ['modified']]),
\ [[['filename'], ['y0', 'y1', 'z0', 'z1'], ['modified']], [[0], [1, 1, 1, 1], [0]], ['0', '1', '2', '3']])
call s:assert.equals(s:expand([['filename', 'custom', 'modified']]),
\ [[['filename', 'y0', 'y1', 'z0', 'z1', 'modified']], [[0, 1, 1, 1, 1, 0]], ['0', '1']])
delfunction Custom
endfunction
function! s:suite.custom_type_left_nil()
function! Custom()
return [ [], ['y0', 'y1'], ['z0', 'z1'] ]
endfunction
let g:lightline = { 'component_expand': { 'custom': 'Custom' }, 'component_type': { 'custom': 'custom' } }
call lightline#init()
call s:assert.equals(s:expand([['filename'], ['custom'], ['modified']]),
\ [[['filename'], ['y0', 'y1'], ['z0', 'z1'], ['modified']], [[0], [1, 1], [1, 1], [0]], ['0', 'custom', '1', '2', '3']])
call s:assert.equals(s:expand([['filename', 'custom', 'modified']]),
\ [[['filename'], ['y0', 'y1'], ['z0', 'z1', 'modified']], [[0], [1, 1], [1, 1, 0]], ['0', 'custom', '0', '1']])
delfunction Custom
endfunction
function! s:suite.custom_right_nil()
function! Custom()
return [ ['x0', 'x1'], ['y0', 'y1'], [] ]
endfunction
let g:lightline = { 'component_expand': { 'custom': 'Custom' } }
call lightline#init()
call s:assert.equals(s:expand([['filename'], ['custom'], ['modified']]),
\ [[['filename'], ['x0', 'x1', 'y0', 'y1'], ['modified']], [[0], [1, 1, 1, 1], [0]], ['0', '1', '2', '3']])
call s:assert.equals(s:expand([['filename', 'custom', 'modified']]),
\ [[['filename', 'x0', 'x1', 'y0', 'y1', 'modified']], [[0, 1, 1, 1, 1, 0]], ['0', '1']])
delfunction Custom
endfunction
function! s:suite.custom_type_right_nil()
function! Custom()
return [ ['x0', 'x1'], ['y0', 'y1'], [] ]
endfunction
let g:lightline = { 'component_expand': { 'custom': 'Custom' }, 'component_type': { 'custom': 'custom' } }
call lightline#init()
call s:assert.equals(s:expand([['filename'], ['custom'], ['modified']]),
\ [[['filename'], ['x0', 'x1'], ['y0', 'y1'], ['modified']], [[0], [1, 1], [1, 1], [0]], ['0', '1', 'custom', '2', '3']])
call s:assert.equals(s:expand([['filename', 'custom', 'modified']]),
\ [[['filename', 'x0', 'x1'], ['y0', 'y1'], ['modified']], [[0, 1, 1], [1, 1], [0]], ['0', 'custom', '0', '1']])
delfunction Custom
endfunction
function! s:suite.custom_one()
function! Custom()
return [ 'left' ]
endfunction
let g:lightline = { 'component_expand': { 'custom': 'Custom' } }
call lightline#init()
call s:assert.equals(s:expand([['readonly', 'filename'], ['custom'], ['modified']]),
\ [[['readonly', 'filename'], ['left'], ['modified']], [[0, 0], [1], [0]], ['0', '1', '2', '3']])
call s:assert.equals(s:expand([['readonly', 'filename', 'custom', 'modified']]),
\ [[['readonly', 'filename', 'left', 'modified']], [[0, 0, 1, 0]], ['0', '1']])
delfunction Custom
endfunction
function! s:suite.custom_type_one()
function! Custom()
return [ 'left' ]
endfunction
let g:lightline = { 'component_expand': { 'custom': 'Custom' }, 'component_type': { 'custom': 'custom' } }
call lightline#init()
call s:assert.equals(s:expand([['readonly', 'filename'], ['custom'], ['modified']]),
\ [[['readonly', 'filename'], ['left'], ['modified']], [[0, 0], [1], [0]], ['0', '1', '2', '3']])
call s:assert.equals(s:expand([['readonly', 'filename', 'custom', 'modified']]),
\ [[['readonly', 'filename', 'left', 'modified']], [[0, 0, 1, 0]], ['0', '1']])
delfunction Custom
endfunction
function! s:suite.custom_two()
function! Custom()
return [ 'left', 'middle']
endfunction
let g:lightline = { 'component_expand': { 'custom': 'Custom' } }
call lightline#init()
call s:assert.equals(s:expand([['readonly', 'filename'], ['custom'], ['modified']]),
\ [[['readonly', 'filename'], ['left', 'middle'], ['modified']], [[0, 0], [1, 1], [0]], ['0', '1', '2', '3']])
call s:assert.equals(s:expand([['readonly', 'filename', 'custom', 'modified']]),
\ [[['readonly', 'filename', 'left', 'middle', 'modified']], [[0, 0, 1, 1, 0]], ['0', '1']])
delfunction Custom
endfunction
function! s:suite.custom_type_two()
function! Custom()
return [ 'left', 'middle' ]
endfunction
let g:lightline = { 'component_expand': { 'custom': 'Custom' }, 'component_type': { 'custom': 'custom' } }
call lightline#init()
call s:assert.equals(s:expand([['readonly', 'filename'], ['custom'], ['modified']]),
\ [[['readonly', 'filename'], ['left'], ['middle'], ['modified']], [[0, 0], [1], [1], [0]], ['0', '1', 'custom', '2', '3']])
call s:assert.equals(s:expand([['readonly', 'filename', 'custom', 'modified']]),
\ [[['readonly', 'filename', 'left'], ['middle'], ['modified']], [[0, 0, 1], [1], [0]], ['0', 'custom', '0', '1']])
delfunction Custom
endfunction
function! s:suite.custom_mixed()
function! Custom()
return ['left', { 'custom': 24 }, [function('tr')]]
endfunction
let g:lightline = { 'component_expand': { 'custom': 'Custom' } }
call lightline#init()
call s:assert.equals(s:expand([['readonly', 'filename'], ['custom'], ['modified']]),
\ [[['readonly', 'filename'], ['left', '{''custom'': 24}', 'function(''tr'')'], ['modified']], [[0, 0], [1, 1, 1], [0]], ['0', '1', '2', '3']])
call s:assert.equals(s:expand([['readonly', 'filename', 'custom', 'modified']]),
\ [[['readonly', 'filename', 'left', '{''custom'': 24}', 'function(''tr'')', 'modified']], [[0, 0, 1, 1, 1, 0]], ['0', '1']])
delfunction Custom
endfunction
function! s:suite.custom_type_mixed()
function! Custom()
return ['left', { 'custom': 24 }, [function('tr')]]
endfunction
let g:lightline = { 'component_expand': { 'custom': 'Custom' }, 'component_type': { 'custom': 'custom' } }
call lightline#init()
call s:assert.equals(s:expand([['readonly', 'filename'], ['custom'], ['modified']]),
\ [[['readonly', 'filename'], ['left'], ['{''custom'': 24}'], ['function(''tr'')'], ['modified']], [[0, 0], [1], [1], [1], [0]], ['0', '1', 'custom', '1', '2', '3']])
call s:assert.equals(s:expand([['readonly', 'filename', 'custom', 'modified']]),
\ [[['readonly', 'filename', 'left'], ['{''custom'': 24}'], ['function(''tr'')', 'modified']], [[0, 0, 1], [1], [1, 0]], ['0', 'custom', '0', '1']])
delfunction Custom
endfunction
function! s:suite.custom_mixed_2()
function! Custom()
return [['left', ''], ['', { 'custom': 24 }, ''], [[function('tr')], '']]
endfunction
let g:lightline = { 'component_expand': { 'custom': 'Custom' } }
call lightline#init()
call s:assert.equals(s:expand([['readonly', 'filename'], ['custom'], ['modified']]),
\ [[['readonly', 'filename'], ['left', '{''custom'': 24}', '[function(''tr'')]'], ['modified']], [[0, 0], [1, 1, 1], [0]], ['0', '1', '2', '3']])
call s:assert.equals(s:expand([['readonly', 'filename', 'custom', 'modified']]),
\ [[['readonly', 'filename', 'left', '{''custom'': 24}', '[function(''tr'')]', 'modified']], [[0, 0, 1, 1, 1, 0]], ['0', '1']])
delfunction Custom
endfunction
function! s:suite.custom_type_mixed_2()
function! Custom()
return [['left', ''], ['', { 'custom': 24 }, ''], [[function('tr')], '']]
endfunction
let g:lightline = { 'component_expand': { 'custom': 'Custom' }, 'component_type': { 'custom': 'custom' } }
call lightline#init()
call s:assert.equals(s:expand([['readonly', 'filename'], ['custom'], ['modified']]),
\ [[['readonly', 'filename'], ['left'], ['{''custom'': 24}'], ['[function(''tr'')]'], ['modified']], [[0, 0], [1], [1], [1], [0]], ['0', '1', 'custom', '1', '2', '3']])
call s:assert.equals(s:expand([['readonly', 'filename', 'custom', 'modified']]),
\ [[['readonly', 'filename', 'left'], ['{''custom'': 24}'], ['[function(''tr'')]', 'modified']], [[0, 0, 1], [1], [1, 0]], ['0', 'custom', '0', '1']])
delfunction Custom
endfunction
function! s:suite.custom_error()
function! Custom()
throw 'error'
return 'custom'
endfunction
let g:lightline = { 'component_expand': { 'custom': 'Custom' } }
call lightline#init()
call s:assert.equals(s:expand([['readonly', 'filename'], ['custom'], ['modified']]),
\ [[['readonly', 'filename'], [], ['modified']], [[0, 0], [], [0]], ['0', '1', '2', '3']])
call s:assert.equals(s:expand([['readonly', 'filename', 'custom', 'modified']]),
\ [[['readonly', 'filename', 'modified']], [[0, 0, 0]], ['0', '1']])
delfunction Custom
endfunction
function! s:suite.custom_type_error()
function! Custom()
throw 'error'
return 'custom'
endfunction
let g:lightline = { 'component_expand': { 'custom': 'Custom' }, 'component_type': { 'custom': 'custom' } }
call lightline#init()
call s:assert.equals(s:expand([['readonly', 'filename'], ['custom'], ['modified']]),
\ [[['readonly', 'filename'], [], ['modified']], [[0, 0], [], [0]], ['0', '1', '2', '3']])
call s:assert.equals(s:expand([['readonly', 'filename', 'custom', 'modified']]),
\ [[['readonly', 'filename', 'modified']], [[0, 0, 0]], ['0', '1']])
delfunction Custom
endfunction
function! s:suite.notfound()
let g:lightline = { 'component_expand': { 'custom': 'NotFound' } }
call lightline#init()
call s:assert.equals(s:expand([['readonly', 'filename'], ['custom'], ['modified']]),
\ [[['readonly', 'filename'], [], ['modified']], [[0, 0], [], [0]], ['0', '1', '2', '3']])
call s:assert.equals(s:expand([['readonly', 'filename', 'custom', 'modified']]),
\ [[['readonly', 'filename', 'modified']], [[0, 0, 0]], ['0', '1']])
endfunction
function! s:suite.custom_type_notfound()
let g:lightline = { 'component_expand': { 'custom': 'NotFound' }, 'component_type': { 'custom': 'custom' } }
call lightline#init()
call s:assert.equals(s:expand([['readonly', 'filename'], ['custom'], ['modified']]),
\ [[['readonly', 'filename'], [], ['modified']], [[0, 0], [], [0]], ['0', '1', '2', '3']])
call s:assert.equals(s:expand([['readonly', 'filename', 'custom', 'modified']]),
\ [[['readonly', 'filename', 'modified']], [[0, 0, 0]], ['0', '1']])
endfunction
function! s:suite.duplicated_string()
function! Custom()
return 'custom'
endfunction
function! Modified()
return ''
endfunction
let g:lightline = { 'component_expand': { 'custom': 'Custom', 'modified': 'Modified' } }
call lightline#init()
call s:assert.equals(s:expand([['filename'], ['custom', 'custom'], ['modified']]),
\ [[['filename'], ['custom', 'custom'], []], [[0], [1, 1], []], ['0', '1', '2', '3']])
call s:assert.equals(s:expand([['filename', 'custom', 'custom', 'modified']]),
\ [[['filename', 'custom', 'custom']], [[0, 1, 1]], ['0', '1']])
delfunction Custom
delfunction Modified
endfunction
function! s:suite.duplicated_left_nil()
function! Custom()
return [ [], ['y0', 'y1'], ['z0', 'z1'] ]
endfunction
let g:lightline = { 'component_expand': { 'custom': 'Custom' } }
call lightline#init()
call s:assert.equals(s:expand([['filename'], ['custom', 'custom'], ['modified']]),
\ [[['filename'], ['y0', 'y1', 'z0', 'z1', 'y0', 'y1', 'z0', 'z1'], ['modified']], [[0], [1, 1, 1, 1, 1, 1, 1, 1], [0]], ['0', '1', '2', '3']])
call s:assert.equals(s:expand([['filename', 'custom', 'custom', 'modified']]),
\ [[['filename', 'y0', 'y1', 'z0', 'z1', 'y0', 'y1', 'z0', 'z1', 'modified']], [[0, 1, 1, 1, 1, 1, 1, 1, 1, 0]], ['0', '1']])
delfunction Custom
endfunction
function! s:suite.duplicated_type_left_nil()
function! Custom()
return [ [], ['y0', 'y1'], ['z0', 'z1'] ]
endfunction
let g:lightline = { 'component_expand': { 'custom': 'Custom' }, 'component_type': { 'custom': 'custom' } }
call lightline#init()
call s:assert.equals(s:expand([['filename'], ['custom', 'custom'], ['modified']]),
\ [[['filename'], ['y0', 'y1'], ['z0', 'z1'], ['y0', 'y1'], ['z0', 'z1'], ['modified']], [[0], [1, 1], [1, 1], [1, 1], [1, 1], [0]], ['0', 'custom', '1', 'custom', '1', '2', '3']])
call s:assert.equals(s:expand([['filename', 'custom', 'custom', 'modified']]),
\ [[['filename'], ['y0', 'y1'], ['z0', 'z1'], ['y0', 'y1'], ['z0', 'z1', 'modified']], [[0], [1, 1], [1, 1], [1, 1], [1, 1, 0]], ['0', 'custom', '0', 'custom', '0', '1']])
delfunction Custom
endfunction
function! s:suite.duplicated_right_nil()
function! Custom()
return [ ['x0', 'x1'], ['y0', 'y1'], [] ]
endfunction
let g:lightline = { 'component_expand': { 'custom': 'Custom' } }
call lightline#init()
call s:assert.equals(s:expand([['filename'], ['custom', 'custom'], ['modified']]),
\ [[['filename'], ['x0', 'x1', 'y0', 'y1', 'x0', 'x1', 'y0', 'y1'], ['modified']], [[0], [1, 1, 1, 1, 1, 1, 1, 1], [0]], ['0', '1', '2', '3']])
call s:assert.equals(s:expand([['filename', 'custom', 'custom', 'modified']]),
\ [[['filename', 'x0', 'x1', 'y0', 'y1', 'x0', 'x1', 'y0', 'y1', 'modified']], [[0, 1, 1, 1, 1, 1, 1, 1, 1, 0]], ['0', '1']])
delfunction Custom
endfunction
function! s:suite.duplicated_type_right_nil()
function! Custom()
return [ ['x0', 'x1'], ['y0', 'y1'], [] ]
endfunction
let g:lightline = { 'component_expand': { 'custom': 'Custom' }, 'component_type': { 'custom': 'custom' } }
call lightline#init()
call s:assert.equals(s:expand([['filename'], ['custom', 'custom'], ['modified']]),
\ [[['filename'], ['x0', 'x1'], ['y0', 'y1'], ['x0', 'x1'], ['y0', 'y1'], ['modified']], [[0], [1, 1], [1, 1], [1, 1], [1, 1], [0]], ['0', '1', 'custom', '1', 'custom', '2', '3']])
call s:assert.equals(s:expand([['filename', 'custom', 'custom', 'modified']]),
\ [[['filename', 'x0', 'x1'], ['y0', 'y1'], ['x0', 'x1'], ['y0', 'y1'], ['modified']], [[0, 1, 1], [1, 1], [1, 1], [1, 1], [0]], ['0', 'custom', '0', 'custom', '0', '1']])
delfunction Custom
endfunction
function! s:suite.duplicated_both_nil()
function! Custom()
return [ [], ['y0', 'y1'], [] ]
endfunction
let g:lightline = { 'component_expand': { 'custom': 'Custom' } }
call lightline#init()
call s:assert.equals(s:expand([['filename'], ['custom', 'custom'], ['modified']]),
\ [[['filename'], ['y0', 'y1', 'y0', 'y1'], ['modified']], [[0], [1, 1, 1, 1], [0]], ['0', '1', '2', '3']])
call s:assert.equals(s:expand([['filename', 'custom', 'custom', 'modified']]),
\ [[['filename', 'y0', 'y1', 'y0', 'y1', 'modified']], [[0, 1, 1, 1, 1, 0]], ['0', '1']])
delfunction Custom
endfunction
function! s:suite.duplicated_type_both_nil()
function! Custom()
return [ [], ['y0', 'y1'], [] ]
endfunction
let g:lightline = { 'component_expand': { 'custom': 'Custom' }, 'component_type': { 'custom': 'custom' } }
call lightline#init()
call s:assert.equals(s:expand([['filename'], ['custom', 'custom'], ['modified']]),
\ [[['filename'], ['y0', 'y1', 'y0', 'y1'], ['modified']], [[0], [1, 1, 1, 1], [0]], ['0', 'custom', '2', '3']])
call s:assert.equals(s:expand([['filename', 'custom', 'custom', 'modified']]),
\ [[['filename'], ['y0', 'y1', 'y0', 'y1'], ['modified']], [[0], [1, 1, 1, 1], [0]], ['0', 'custom', '0', '1']])
delfunction Custom
endfunction
function! s:suite.duplicated_both_nil_left_most()
function! Custom()
return [ [], ['y0', 'y1'], [] ]
endfunction
let g:lightline = { 'component_expand': { 'custom': 'Custom' } }
call lightline#init()
call s:assert.equals(s:expand([['custom', 'custom'], ['modified']]),
\ [[['y0', 'y1', 'y0', 'y1'], ['modified']], [[1, 1, 1, 1], [0]], ['0', '1', '2']])
call s:assert.equals(s:expand([['custom', 'custom', 'modified']]),
\ [[['y0', 'y1', 'y0', 'y1', 'modified']], [[1, 1, 1, 1, 0]], ['0', '1']])
delfunction Custom
endfunction
function! s:suite.duplicated_type_both_nil_left_most()
function! Custom()
return [ [], ['y0', 'y1'], [] ]
endfunction
let g:lightline = { 'component_expand': { 'custom': 'Custom' }, 'component_type': { 'custom': 'custom' } }
call lightline#init()
call s:assert.equals(s:expand([['custom', 'custom'], ['modified']]),
\ [[['y0', 'y1', 'y0', 'y1'], ['modified']], [[1, 1, 1, 1], [0]], ['custom', '1', '2']])
call s:assert.equals(s:expand([['custom', 'custom', 'modified']]),
\ [[['y0', 'y1', 'y0', 'y1'], ['modified']], [[1, 1, 1, 1], [0]], ['custom', '0', '1']])
delfunction Custom
endfunction
function! s:suite.duplicated_both_nil_right_most()
function! Custom()
return [ [], ['y0', 'y1'], [] ]
endfunction
let g:lightline = { 'component_expand': { 'custom': 'Custom' } }
call lightline#init()
call s:assert.equals(s:expand([['filename'], ['custom', 'custom']]),
\ [[['filename'], ['y0', 'y1', 'y0', 'y1']], [[0], [1, 1, 1, 1]], ['0', '1', '2']])
call s:assert.equals(s:expand([['filename', 'custom', 'custom']]),
\ [[['filename', 'y0', 'y1', 'y0', 'y1']], [[0, 1, 1, 1, 1]], ['0', '1']])
delfunction Custom
endfunction
function! s:suite.duplicated_type_both_nil_right_most()
function! Custom()
return [ [], ['y0', 'y1'], [] ]
endfunction
let g:lightline = { 'component_expand': { 'custom': 'Custom' }, 'component_type': { 'custom': 'custom' } }
call lightline#init()
call s:assert.equals(s:expand([['filename'], ['custom', 'custom']]),
\ [[['filename'], ['y0', 'y1', 'y0', 'y1']], [[0], [1, 1, 1, 1]], ['0', 'custom', '2']])
call s:assert.equals(s:expand([['filename', 'custom', 'custom']]),
\ [[['filename'], ['y0', 'y1', 'y0', 'y1']], [[0], [1, 1, 1, 1]], ['0', 'custom', '1']])
delfunction Custom
endfunction
function! s:suite.dictionary_function()
let g:lightline = { 'component_expand': { 'custom': 'g:lightline.Custom' } }
function! g:lightline.Custom()
return [ ['left'], ['middle'], ['right'] ]
endfunction
call lightline#init()
call s:assert.equals(s:expand([['readonly', 'filename'], ['custom'], ['modified']]),
\ [[['readonly', 'filename'], ['left', 'middle', 'right'], ['modified']], [[0, 0], [1, 1, 1], [0]], ['0', '1', '2', '3']])
call s:assert.equals(s:expand([['readonly', 'filename', 'custom', 'modified']]),
\ [[['readonly', 'filename', 'left', 'middle', 'right', 'modified']], [[0, 0, 1, 1, 1, 0]], ['0', '1']])
endfunction

View File

@@ -0,0 +1,171 @@
let s:suite = themis#suite('highlight')
let s:assert = themis#helper('assert')
function! s:suite.before_each()
hi clear
endfunction
function! s:hi(name)
redir => hi
silent! exec 'hi' a:name
redir END
return substitute(join(split(hi, "\n"), ''), ' \+', ' ', 'g')
endfunction
function! s:pattern(xs, ...) abort
let ys = a:0 ? a:xs[1:] : a:xs
let zs = get(a:000, 0, a:xs)
return 'ctermfg=' . ys[2] . ' ctermbg=' . zs[3] . '.*guifg=' . ys[0] . ' guibg=' . zs[1]
endfunction
function! s:suite.highlight()
let g:lightline = {}
call lightline#init()
call lightline#colorscheme()
let palette = lightline#palette()
call s:assert.match(s:hi('LightlineLeft_normal_0'), s:pattern(palette.normal.left[0]))
call s:assert.match(s:hi('LightlineLeft_normal_1'), s:pattern(palette.normal.left[1]))
call s:assert.match(s:hi('LightlineLeft_normal_2'), 'E411: highlight group not found\|cleared')
call s:assert.match(s:hi('LightlineRight_normal_0'), s:pattern(palette.normal.right[0]))
call s:assert.match(s:hi('LightlineRight_normal_1'), s:pattern(palette.normal.right[1]))
call s:assert.match(s:hi('LightlineRight_normal_2'), s:pattern(palette.normal.right[2]))
call s:assert.match(s:hi('LightlineRight_normal_3'), 'E411: highlight group not found\|cleared')
call s:assert.match(s:hi('LightlineMiddle_normal'), s:pattern(palette.normal.middle[0]))
endfunction
function! s:suite.insert()
let g:lightline = {}
call lightline#init()
call lightline#colorscheme()
call lightline#highlight('insert')
let palette = lightline#palette()
call s:assert.match(s:hi('LightlineLeft_insert_0'), s:pattern(palette.insert.left[0]))
call s:assert.match(s:hi('LightlineLeft_insert_1'), s:pattern(palette.insert.left[1]))
call s:assert.match(s:hi('LightlineLeft_insert_2'), 'E411: highlight group not found\|cleared')
call s:assert.match(s:hi('LightlineRight_insert_0'), s:pattern(palette.insert.right[0]))
call s:assert.match(s:hi('LightlineRight_insert_1'), s:pattern(palette.insert.right[1]))
call s:assert.match(s:hi('LightlineRight_insert_2'), s:pattern(palette.insert.right[2]))
call s:assert.match(s:hi('LightlineRight_insert_3'), 'E411: highlight group not found\|cleared')
call s:assert.match(s:hi('LightlineMiddle_insert'), s:pattern(palette.insert.middle[0]))
endfunction
function! s:suite.visual()
let g:lightline = {}
call lightline#init()
call lightline#colorscheme()
call lightline#highlight('visual')
let palette = lightline#palette()
call s:assert.match(s:hi('LightlineLeft_visual_0'), s:pattern(palette.visual.left[0]))
call s:assert.match(s:hi('LightlineLeft_visual_1'), s:pattern(palette.visual.left[1]))
call s:assert.match(s:hi('LightlineLeft_visual_2'), 'E411: highlight group not found\|cleared')
call s:assert.match(s:hi('LightlineRight_visual_0'), s:pattern(palette.normal.right[0]))
call s:assert.match(s:hi('LightlineRight_visual_1'), s:pattern(palette.normal.right[1]))
call s:assert.match(s:hi('LightlineRight_visual_2'), s:pattern(palette.normal.right[2]))
call s:assert.match(s:hi('LightlineRight_visual_3'), 'E411: highlight group not found\|cleared')
call s:assert.match(s:hi('LightlineMiddle_normal'), s:pattern(palette.normal.middle[0]))
endfunction
function! s:suite.replace()
let g:lightline = {}
call lightline#init()
call lightline#colorscheme()
call lightline#highlight('replace')
let palette = lightline#palette()
call s:assert.match(s:hi('LightlineLeft_replace_0'), s:pattern(palette.replace.left[0]))
call s:assert.match(s:hi('LightlineLeft_replace_1'), s:pattern(palette.replace.left[1]))
call s:assert.match(s:hi('LightlineLeft_replace_2'), 'E411: highlight group not found\|cleared')
call s:assert.match(s:hi('LightlineRight_replace_0'), s:pattern(palette.replace.right[0]))
call s:assert.match(s:hi('LightlineRight_replace_1'), s:pattern(palette.replace.right[1]))
call s:assert.match(s:hi('LightlineRight_replace_2'), s:pattern(palette.replace.right[2]))
call s:assert.match(s:hi('LightlineRight_replace_3'), 'E411: highlight group not found\|cleared')
call s:assert.match(s:hi('LightlineMiddle_replace'), s:pattern(palette.replace.middle[0]))
endfunction
function! s:suite.left_right()
let g:lightline = {
\ 'active': {
\ 'left': [ [ 'mode', 'paste' ], [ 'readonly' ], [ 'filename' ], [ 'modified' ] ],
\ 'right': [ [ 'lineinfo' ], [ 'percent' ], [ 'fileformat' ], [ 'fileencoding' ], [ 'filetype' ] ]
\ },
\ }
call lightline#init()
call lightline#colorscheme()
let palette = lightline#palette()
call s:assert.match(s:hi('LightlineLeft_normal_0'), s:pattern(palette.normal.left[0]))
call s:assert.match(s:hi('LightlineLeft_normal_1'), s:pattern(palette.normal.left[1]))
call s:assert.match(s:hi('LightlineLeft_normal_2'), s:pattern(palette.normal.middle[0]))
call s:assert.match(s:hi('LightlineLeft_normal_3'), s:pattern(palette.normal.middle[0]))
call s:assert.match(s:hi('LightlineLeft_normal_4'), 'E411: highlight group not found\|cleared')
call s:assert.match(s:hi('LightlineRight_normal_0'), s:pattern(palette.normal.right[0]))
call s:assert.match(s:hi('LightlineRight_normal_1'), s:pattern(palette.normal.right[1]))
call s:assert.match(s:hi('LightlineRight_normal_2'), s:pattern(palette.normal.right[2]))
call s:assert.match(s:hi('LightlineRight_normal_3'), s:pattern(palette.normal.middle[0]))
call s:assert.match(s:hi('LightlineRight_normal_4'), s:pattern(palette.normal.middle[0]))
call s:assert.match(s:hi('LightlineRight_normal_5'), 'E411: highlight group not found\|cleared')
call s:assert.match(s:hi('LightlineMiddle_normal'), s:pattern(palette.normal.middle[0]))
endfunction
function! s:suite.no_components()
let g:lightline = {
\ 'active': {
\ 'left': [],
\ 'right': []
\ },
\ 'inactive': {
\ 'left': [],
\ 'right': []
\ },
\ }
call lightline#init()
call lightline#colorscheme()
let palette = lightline#palette()
call s:assert.match(s:hi('LightlineLeft_normal_0'), s:pattern(palette.normal.left[0]))
call s:assert.match(s:hi('LightlineLeft_normal_1'), 'E411: highlight group not found\|cleared')
call s:assert.match(s:hi('LightlineRight_normal_0'), s:pattern(palette.normal.right[0]))
call s:assert.match(s:hi('LightlineRight_normal_1'), 'E411: highlight group not found\|cleared')
call s:assert.match(s:hi('LightlineMiddle_normal'), s:pattern(palette.normal.middle[0]))
endfunction
function! s:suite.subseparator()
let g:lightline = {
\ 'active': {
\ 'left': [ [ 'mode', 'paste' ], [ 'readonly' ], [ 'filename' ], [ 'modified' ] ],
\ 'right': [ [ 'lineinfo' ], [ 'percent' ], [ 'fileformat' ], [ 'fileencoding' ], [ 'filetype' ] ]
\ },
\ }
call lightline#init()
call lightline#colorscheme()
let palette = lightline#palette()
for i in range(4)
for j in range(5)
if i + 1 == j
call s:assert.match(s:hi(printf('LightlineLeft_normal_%s_%s', i, j)), s:pattern(get(palette.normal.left, i, palette.normal.middle[0]), get(palette.normal.left, j, palette.normal.middle[0])))
else
call s:assert.match(s:hi(printf('LightlineLeft_normal_%s_%s', i, j)), 'E411: highlight group not found\|cleared')
endif
endfor
endfor
endfunction
function! s:suite.component_type()
let g:lightline = { 'component_type': { 'error': 'error', 'warning': 'warning' } }
call lightline#init()
call lightline#colorscheme()
let palette = lightline#palette()
for type in ['error', 'warning']
call s:assert.match(s:hi(printf('LightlineLeft_normal_%s', type)), s:pattern(palette.normal[type][0]))
call s:assert.match(s:hi(printf('LightlineLeft_normal_0_%s', type)), s:pattern(palette.normal.left[0], palette.normal[type][0]))
call s:assert.match(s:hi(printf('LightlineLeft_normal_1_%s', type)), s:pattern(palette.normal.left[1], palette.normal[type][0]))
call s:assert.match(s:hi(printf('LightlineLeft_normal_2_%s', type)), 'E411: highlight group not found\|cleared')
call s:assert.match(s:hi(printf('LightlineLeft_normal_%s_0', type)), s:pattern(palette.normal[type][0], palette.normal.left[0]))
call s:assert.match(s:hi(printf('LightlineLeft_normal_%s_1', type)), s:pattern(palette.normal[type][0], palette.normal.left[1]))
call s:assert.match(s:hi(printf('LightlineLeft_normal_%s_2', type)), s:pattern(palette.normal[type][0], palette.normal.middle[0]))
call s:assert.match(s:hi(printf('LightlineLeft_normal_%s_3', type)), 'E411: highlight group not found\|cleared')
endfor
for type1 in ['error', 'warning']
for type2 in ['error', 'warning']
call s:assert.match(s:hi(printf('LightlineLeft_normal_%s_%s', type1, type2)), s:pattern(palette.normal[type1][0], palette.normal[type2][0]))
endfor
endfor
endfunction

View File

@@ -0,0 +1,157 @@
let s:suite = themis#suite('link')
let s:assert = themis#helper('assert')
function! s:suite.before_each()
call s:clear()
let g:lightline = {}
call lightline#init()
call lightline#colorscheme()
endfunction
function! s:clear()
hi clear
redir => hi
silent! hi
redir END
for line in split(hi, '\n')
if match(line, 'links to') > 0
exec 'hi link' matchstr(line, '^\S*') 'NONE'
endif
endfor
endfunction
function! s:hi(name)
redir => hi
silent! exec 'hi' a:name
redir END
return substitute(join(split(hi, "\n"), ''), ' \+', ' ', 'g')
endfunction
function! s:suite.link()
call lightline#link()
call s:assert.match(s:hi('LightlineLeft_active_0'), 'LightlineLeft_normal_0')
call s:assert.match(s:hi('LightlineLeft_active_1'), 'LightlineLeft_normal_1')
call s:assert.match(s:hi('LightlineLeft_active_2'), 'E411: highlight group not found\|cleared')
call s:assert.match(s:hi('LightlineRight_active_0'), 'LightlineRight_normal_0')
call s:assert.match(s:hi('LightlineRight_active_1'), 'LightlineRight_normal_1')
call s:assert.match(s:hi('LightlineRight_active_2'), 'LightlineRight_normal_2')
call s:assert.match(s:hi('LightlineRight_active_3'), 'E411: highlight group not found\|cleared')
call s:assert.match(s:hi('LightlineMiddle_active'), 'LightlineMiddle_normal')
endfunction
function! s:suite.insert()
call lightline#link('i')
call s:assert.match(s:hi('LightlineLeft_active_0'), 'LightlineLeft_insert_0')
call s:assert.match(s:hi('LightlineLeft_active_1'), 'LightlineLeft_insert_1')
call s:assert.match(s:hi('LightlineLeft_active_2'), 'E411: highlight group not found\|cleared')
call s:assert.match(s:hi('LightlineRight_active_0'), 'LightlineRight_insert_0')
call s:assert.match(s:hi('LightlineRight_active_1'), 'LightlineRight_insert_1')
call s:assert.match(s:hi('LightlineRight_active_2'), 'LightlineRight_insert_2')
call s:assert.match(s:hi('LightlineRight_active_3'), 'E411: highlight group not found\|cleared')
call s:assert.match(s:hi('LightlineMiddle_active'), 'LightlineMiddle_insert')
endfunction
function! s:suite.visual()
call lightline#link('v')
call s:assert.match(s:hi('LightlineLeft_active_0'), 'LightlineLeft_visual_0')
call s:assert.match(s:hi('LightlineLeft_active_1'), 'LightlineLeft_visual_1')
call s:assert.match(s:hi('LightlineLeft_active_2'), 'E411: highlight group not found\|cleared')
call s:assert.match(s:hi('LightlineRight_active_0'), 'LightlineRight_visual_0')
call s:assert.match(s:hi('LightlineRight_active_1'), 'LightlineRight_visual_1')
call s:assert.match(s:hi('LightlineRight_active_2'), 'LightlineRight_visual_2')
call s:assert.match(s:hi('LightlineRight_active_3'), 'E411: highlight group not found\|cleared')
call s:assert.match(s:hi('LightlineMiddle_active'), 'LightlineMiddle_visual')
endfunction
function! s:suite.replace()
call lightline#link('R')
call s:assert.match(s:hi('LightlineLeft_active_0'), 'LightlineLeft_replace_0')
call s:assert.match(s:hi('LightlineLeft_active_1'), 'LightlineLeft_replace_1')
call s:assert.match(s:hi('LightlineLeft_active_2'), 'E411: highlight group not found\|cleared')
call s:assert.match(s:hi('LightlineRight_active_0'), 'LightlineRight_replace_0')
call s:assert.match(s:hi('LightlineRight_active_1'), 'LightlineRight_replace_1')
call s:assert.match(s:hi('LightlineRight_active_2'), 'LightlineRight_replace_2')
call s:assert.match(s:hi('LightlineRight_active_3'), 'E411: highlight group not found\|cleared')
call s:assert.match(s:hi('LightlineMiddle_active'), 'LightlineMiddle_replace')
endfunction
function! s:suite.left_right()
let g:lightline = {
\ 'active': {
\ 'left': [ [ 'mode', 'paste' ], [ 'readonly' ], [ 'filename' ], [ 'modified' ] ],
\ 'right': [ [ 'lineinfo' ], [ 'percent' ], [ 'fileformat' ], [ 'fileencoding' ], [ 'filetype' ] ]
\ },
\ }
call lightline#init()
call lightline#colorscheme()
call lightline#link()
call s:assert.match(s:hi('LightlineLeft_active_0'), 'LightlineLeft_normal_0')
call s:assert.match(s:hi('LightlineLeft_active_1'), 'LightlineLeft_normal_1')
call s:assert.match(s:hi('LightlineLeft_active_2'), 'LightlineLeft_normal_2')
call s:assert.match(s:hi('LightlineLeft_active_3'), 'LightlineLeft_normal_3')
call s:assert.match(s:hi('LightlineLeft_active_4'), 'E411: highlight group not found')
call s:assert.match(s:hi('LightlineRight_active_0'), 'LightlineRight_normal_0')
call s:assert.match(s:hi('LightlineRight_active_1'), 'LightlineRight_normal_1')
call s:assert.match(s:hi('LightlineRight_active_2'), 'LightlineRight_normal_2')
call s:assert.match(s:hi('LightlineRight_active_3'), 'LightlineRight_normal_3')
call s:assert.match(s:hi('LightlineRight_active_4'), 'LightlineRight_normal_4')
call s:assert.match(s:hi('LightlineRight_active_5'), 'E411: highlight group not found')
call s:assert.match(s:hi('LightlineMiddle_active'), 'LightlineMiddle_normal')
endfunction
function! s:suite.subseparator()
let g:lightline = {
\ 'active': {
\ 'left': [ [ 'mode', 'paste' ], [ 'readonly' ], [ 'filename' ], [ 'modified' ] ],
\ 'right': [ [ 'lineinfo' ], [ 'percent' ], [ 'fileformat' ], [ 'fileencoding' ], [ 'filetype' ] ]
\ },
\ }
call lightline#init()
call lightline#colorscheme()
call lightline#link()
for i in range(4)
for j in range(5)
if i + 1 == j
call s:assert.match(s:hi(printf('LightlineLeft_active_%s_%s', i, j)), printf('LightlineLeft_normal_%s_%s', i, j))
else
call s:assert.match(s:hi(printf('LightlineLeft_active_%s_%s', i, j)), 'E411: highlight group not found')
endif
endfor
endfor
endfunction
function! s:suite.component_type()
let g:lightline = { 'component_type': { 'error': 'error', 'warning': 'warning' } }
call lightline#init()
call lightline#colorscheme()
call lightline#link()
for type in ['error', 'warning']
call s:assert.match(s:hi(printf('LightlineLeft_active_%s', type)), printf('LightlineLeft_normal_%s', type))
call s:assert.match(s:hi(printf('LightlineLeft_active_0_%s', type)), printf('LightlineLeft_normal_0_%s', type))
call s:assert.match(s:hi(printf('LightlineLeft_active_1_%s', type)), printf('LightlineLeft_normal_1_%s', type))
call s:assert.match(s:hi(printf('LightlineLeft_active_2_%s', type)), 'E411: highlight group not found')
call s:assert.match(s:hi(printf('LightlineLeft_active_%s_0', type)), printf('LightlineLeft_normal_%s_0', type))
call s:assert.match(s:hi(printf('LightlineLeft_active_%s_1', type)), printf('LightlineLeft_normal_%s_1', type))
call s:assert.match(s:hi(printf('LightlineLeft_active_%s_2', type)), printf('LightlineLeft_normal_%s_2', type))
call s:assert.match(s:hi(printf('LightlineLeft_active_%s_3', type)), 'E411: highlight group not found')
endfor
for type1 in ['error', 'warning']
for type2 in ['error', 'warning']
call s:assert.match(s:hi(printf('LightlineLeft_active_%s_%s', type1, type2)), printf('LightlineLeft_normal_%s_%s', type1, type2))
endfor
endfor
endfunction
function! s:suite.hi_clear()
call lightline#link()
colorscheme default
call lightline#link()
call s:assert.match(s:hi('LightlineLeft_active_0'), 'LightlineLeft_normal_0')
call s:assert.match(s:hi('LightlineLeft_active_1'), 'LightlineLeft_normal_1')
call s:assert.match(s:hi('LightlineLeft_active_2'), 'E411: highlight group not found\|cleared')
call s:assert.match(s:hi('LightlineRight_active_0'), 'LightlineRight_normal_0')
call s:assert.match(s:hi('LightlineRight_active_1'), 'LightlineRight_normal_1')
call s:assert.match(s:hi('LightlineRight_active_2'), 'LightlineRight_normal_2')
call s:assert.match(s:hi('LightlineRight_active_3'), 'E411: highlight group not found\|cleared')
call s:assert.match(s:hi('LightlineMiddle_active'), 'LightlineMiddle_normal')
endfunction

View File

@@ -0,0 +1,14 @@
let s:suite = themis#suite('mode')
let s:assert = themis#helper('assert')
function! s:suite.mode()
let g:lightline = {}
call lightline#init()
call s:assert.equals(lightline#mode(), 'NORMAL')
endfunction
function! s:suite.mode_map()
let g:lightline = { 'mode_map': { 'n': 'N' } }
call lightline#init()
call s:assert.equals(lightline#mode(), 'N')
endfunction

View File

@@ -0,0 +1,98 @@
let s:suite = themis#suite('onetab')
let s:assert = themis#helper('assert')
function! s:suite.before_each()
let g:lightline = {}
call lightline#init()
tabnew
tabonly
endfunction
function! s:suite.onetab()
call s:assert.equals(lightline#onetab(1, 1), '1 [No Name]')
endfunction
function! s:suite.tabnew()
tabnew
call s:assert.equals(lightline#onetab(1, 0), '1 [No Name]')
call s:assert.equals(lightline#onetab(2, 1), '2 [No Name]')
endfunction
function! s:suite.tabnew_tabnew()
tabnew
tabnew
call s:assert.equals(lightline#onetab(1, 0), '1 [No Name]')
call s:assert.equals(lightline#onetab(2, 0), '2 [No Name]')
call s:assert.equals(lightline#onetab(3, 1), '3 [No Name]')
endfunction
function! s:suite.modified()
call append(0, '')
call s:assert.equals(lightline#onetab(1, 1), '1 [No Name] +')
undo
endfunction
function! s:suite.filename()
edit test
call s:assert.equals(lightline#onetab(1, 1), '1 test')
tabnew
bunload test
endfunction
function! s:suite.filename_modified()
edit test
call append(0, '')
call s:assert.equals(lightline#onetab(1, 1), '1 test +')
tabnew
bunload! test
endfunction
function! s:suite.active_inactive()
let g:lightline = { 'tab': { 'active': [ 'tabnum', 'filename' ], 'inactive': [ 'filename' ] } }
call lightline#init()
edit test
call append(0, '')
call s:assert.equals(lightline#onetab(1, 1), '1 test')
call s:assert.equals(lightline#onetab(1, 0), 'test')
tabnew
bunload! test
endfunction
function! s:suite.tab_component()
let g:lightline = { 'tab': { 'active': [ 'custom' ] }, 'tab_component': { 'custom': 'custom' } }
call lightline#init()
call s:assert.equals(lightline#onetab(1, 1), 'custom')
call s:assert.equals(lightline#onetab(2, 1), 'custom')
endfunction
function! s:suite.tab_component_function()
function! Custom(n)
return 'custom: ' . a:n
endfunction
let g:lightline = { 'tab': { 'active': [ 'custom' ] }, 'tab_component_function': { 'custom': 'Custom' } }
call lightline#init()
call s:assert.equals(lightline#onetab(1, 1), 'custom: 1')
call s:assert.equals(lightline#onetab(2, 1), 'custom: 2')
delfunction Custom
endfunction
function! s:suite.tab_component_empty_middle()
let g:lightline = { 'tab': { 'active': [ 'tabnum', 'custom', 'filename' ], 'inactive': [ 'tabnum', 'custom', 'custom', 'filename' ] }, 'tab_component': { 'custom': '' } }
call lightline#init()
call s:assert.equals(lightline#onetab(1, 1), '1 [No Name]')
call s:assert.equals(lightline#onetab(2, 1), '2 [No Name]')
endfunction
function! s:suite.tab_component_empty_left()
let g:lightline = { 'tab': { 'active': [ 'custom', 'filename' ], 'inactive': [ 'custom', 'custom', 'filename' ] }, 'tab_component': { 'custom': '' } }
call lightline#init()
call s:assert.equals(lightline#onetab(1, 1), '[No Name]')
call s:assert.equals(lightline#onetab(2, 1), '[No Name]')
endfunction
function! s:suite.tab_component_empty_middle()
let g:lightline = { 'tab': { 'active': [ 'tabnum', 'custom' ], 'inactive': [ 'tabnum', 'custom', 'custom' ] }, 'tab_component': { 'custom': '' } }
call lightline#init()
call s:assert.equals(lightline#onetab(1, 1), '1')
call s:assert.equals(lightline#onetab(2, 1), '2')
endfunction

View File

@@ -0,0 +1,19 @@
if !exists('*popup_menu') || !exists('*win_execute')
finish
endif
let s:suite = themis#suite('popup')
let s:assert = themis#helper('assert')
function! s:suite.before_each()
let g:lightline = {}
call lightline#init()
tabnew
tabonly
endfunction
function! s:suite.win_execute_setfiletype()
let id = popup_menu(['aaa', 'bbb'], {})
call win_execute(id, 'setfiletype vim')
call popup_close(id)
endfunction

View File

@@ -0,0 +1,25 @@
let s:suite = themis#suite('quickfix')
let s:assert = themis#helper('assert')
function! s:suite.before_each()
let g:lightline = {}
call lightline#init()
tabnew
tabonly
endfunction
function! s:suite.quickfix_statusline()
call setloclist(winnr(), [])
lopen
wincmd p
call setloclist(winnr(), [])
for n in range(1, winnr('$'))
let statusline = getwinvar(n, '&statusline')
call s:assert.match(statusline, 'lightline')
if has('patch-8.1.1715')
call s:assert.match(statusline, n == 1 ? '_active_' : '_inactive_')
else
call s:assert.match(statusline, n != 1 ? '_active_' : '_inactive_')
endif
endfor
endfunction

View File

@@ -0,0 +1,407 @@
let s:suite = themis#suite('subseparator')
let s:assert = themis#helper('assert')
function! s:subseparator(...)
return eval(substitute(call(SID('subseparator'), a:000), '^%{\|}$', '', 'g'))
endfunction
function! s:suite.subseparator_component()
let g:lightline = { 'component': { 'custom1': 'custom1', 'custom2': 'custom2', 'custom3': 'custom3' } }
call lightline#init()
call s:assert.equals(s:subseparator(['custom1', 'custom2', 'custom3'], '|', [0, 0, 0]), '|')
endfunction
function! s:suite.subseparator_component_visible_condition_1()
let g:lightline = { 'component': { 'custom1': 'custom1', 'custom2': 'custom2', 'custom3': 'custom3' }, 'component_visible_condition': { 'custom1': '1', 'custom2': '1', 'custom3': '1' } }
call lightline#init()
call s:assert.equals(s:subseparator(['custom1', 'custom2', 'custom3'], '|', [0, 0, 0]), '|')
endfunction
function! s:suite.subseparator_component_visible_condition_2()
let g:lightline = { 'component': { 'custom1': 'custom1', 'custom2': 'custom2', 'custom3': 'custom3' }, 'component_visible_condition': { 'custom1': '0', 'custom2': '1', 'custom3': '1' } }
call lightline#init()
call s:assert.equals(s:subseparator(['custom1', 'custom2', 'custom3'], '|', [0, 0, 0]), '')
endfunction
function! s:suite.subseparator_component_visible_condition_3()
let g:lightline = { 'component': { 'custom1': 'custom1', 'custom2': 'custom2', 'custom3': 'custom3' }, 'component_visible_condition': { 'custom1': '1', 'custom2': '0', 'custom3': '1' } }
call lightline#init()
call s:assert.equals(s:subseparator(['custom1', 'custom2', 'custom3'], '|', [0, 0, 0]), '|')
endfunction
function! s:suite.subseparator_component_visible_condition_4()
let g:lightline = { 'component': { 'custom1': 'custom1', 'custom2': 'custom2', 'custom3': 'custom3' }, 'component_visible_condition': { 'custom1': '1', 'custom2': '0', 'custom3': '0' } }
call lightline#init()
call s:assert.equals(s:subseparator(['custom1', 'custom2', 'custom3'], '|', [0, 0, 0]), '')
endfunction
function! s:suite.subseparator_component_visible_condition_5()
let g:lightline = { 'component': { 'custom1': 'custom1', 'custom2': 'custom2', 'custom3': 'custom3' }, 'component_visible_condition': { 'custom1': '0', 'custom2': '0', 'custom3': '0' } }
call lightline#init()
call s:assert.equals(s:subseparator(['custom1', 'custom2', 'custom3'], '|', [0, 0, 0]), '')
endfunction
function! s:suite.subseparator_component_visible_condition_6()
let g:lightline = { 'component': { 'custom1': 'custom1', 'custom2': 'custom2', 'custom3': 'custom3' }, 'component_visible_condition': { 'custom1': '1||0', 'custom2': '0', 'custom3': '0' } }
call lightline#init()
call s:assert.equals(s:subseparator(['custom1', 'custom2', 'custom3'], '|', [0, 0, 0]), '')
endfunction
function! s:suite.subseparator_component_visible_condition_7()
let g:lightline = { 'component': { 'custom1': 'custom1', 'custom2': 'custom2', 'custom3': 'custom3' }, 'component_visible_condition': { 'custom1': '1||1', 'custom2': '0', 'custom3': '0' } }
call lightline#init()
call s:assert.equals(s:subseparator(['custom1', 'custom2', 'custom3'], '|', [0, 0, 0]), '')
endfunction
function! s:suite.subseparator_component_function()
function! Custom1()
return 'custom1'
endfunction
function! Custom2()
return 'custom2'
endfunction
function! Custom3()
return 'custom3'
endfunction
let g:lightline = { 'component_function': { 'custom1': 'Custom1', 'custom2': 'Custom2', 'custom3': 'Custom3' } }
call lightline#init()
call s:assert.equals(s:subseparator(['custom1', 'custom2', 'custom3'], '|', [0, 0, 0]), '|')
delfunction Custom1
delfunction Custom2
delfunction Custom3
endfunction
function! s:suite.subseparator_component_function_1()
function! Custom1()
return 'custom1'
endfunction
let g:lightline = { 'component_function': { 'custom1': 'Custom1', 'custom2': 'Custom2', 'custom3': 'Custom3' } }
call lightline#init()
call s:assert.equals(s:subseparator(['custom1', 'custom2', 'custom3'], '|', [0, 0, 0]), '')
delfunction Custom1
endfunction
function! s:suite.subseparator_component_function_2()
function! Custom1()
return 'custom1'
endfunction
function! Custom2()
return 'custom2'
endfunction
let g:lightline = { 'component_function': { 'custom1': 'Custom1', 'custom2': 'Custom2', 'custom3': 'Custom3' } }
call lightline#init()
call s:assert.equals(s:subseparator(['custom1', 'custom2', 'custom3'], '|', [0, 0, 0]), '|')
delfunction Custom1
delfunction Custom2
endfunction
function! s:suite.subseparator_component_function_3()
function! Custom1()
return 'custom1'
endfunction
function! Custom3()
return 'custom3'
endfunction
let g:lightline = { 'component_function': { 'custom1': 'Custom1', 'custom2': 'Custom2', 'custom3': 'Custom3' } }
call lightline#init()
call s:assert.equals(s:subseparator(['custom1', 'custom2', 'custom3'], '|', [0, 0, 0]), '|')
delfunction Custom1
delfunction Custom3
endfunction
function! s:suite.subseparator_component_function_4()
function! Custom2()
return 'custom2'
endfunction
function! Custom3()
return 'custom3'
endfunction
let g:lightline = { 'component_function': { 'custom1': 'Custom1', 'custom2': 'Custom2', 'custom3': 'Custom3' } }
call lightline#init()
call s:assert.equals(s:subseparator(['custom1', 'custom2', 'custom3'], '|', [0, 0, 0]), '')
delfunction Custom2
delfunction Custom3
endfunction
function! s:suite.subseparator_component_function_5()
function! Custom1()
return ''
endfunction
function! Custom2()
return 'custom2'
endfunction
function! Custom3()
return 'custom3'
endfunction
let g:lightline = { 'component_function': { 'custom1': 'Custom1', 'custom2': 'Custom2', 'custom3': 'Custom3' } }
call lightline#init()
call s:assert.equals(s:subseparator(['custom1', 'custom2', 'custom3'], '|', [0, 0, 0]), '')
delfunction Custom1
delfunction Custom2
delfunction Custom3
endfunction
function! s:suite.subseparator_component_function_6()
function! Custom1()
return ''
endfunction
function! Custom2()
return ''
endfunction
function! Custom3()
return 'custom3'
endfunction
let g:lightline = { 'component_function': { 'custom1': 'Custom1', 'custom2': 'Custom2', 'custom3': 'Custom3' } }
call lightline#init()
call s:assert.equals(s:subseparator(['custom1', 'custom2', 'custom3'], '|', [0, 0, 0]), '')
delfunction Custom1
delfunction Custom2
delfunction Custom3
endfunction
function! s:suite.subseparator_component_function_7()
function! Custom1()
return 'custom1'
endfunction
function! Custom2()
return ''
endfunction
function! Custom3()
return ''
endfunction
let g:lightline = { 'component_function': { 'custom1': 'Custom1', 'custom2': 'Custom2', 'custom3': 'Custom3' } }
call lightline#init()
call s:assert.equals(s:subseparator(['custom1', 'custom2', 'custom3'], '|', [0, 0, 0]), '')
delfunction Custom1
delfunction Custom2
delfunction Custom3
endfunction
function! s:suite.subseparator_component_function_visible_condition_1()
function! Custom1()
return 'custom1'
endfunction
function! Custom2()
return 'custom2'
endfunction
function! Custom3()
return 'custom3'
endfunction
let g:lightline = { 'component_function': { 'custom1': 'Custom1', 'custom2': 'Custom2', 'custom3': 'Custom3' }, 'component_function_visible_condition': { 'custom1': '1', 'custom2': '1', 'custom3': '1' } }
call lightline#init()
call s:assert.equals(s:subseparator(['custom1', 'custom2', 'custom3'], '|', [0, 0, 0]), '|')
endfunction
function! s:suite.subseparator_component_function_visible_condition_2()
function! Custom1()
return 'custom1'
endfunction
function! Custom2()
return 'custom2'
endfunction
function! Custom3()
return 'custom3'
endfunction
let g:lightline = { 'component_function': { 'custom1': 'Custom1', 'custom2': 'Custom2', 'custom3': 'Custom3' }, 'component_function_visible_condition': { 'custom1': '0', 'custom2': '1', 'custom3': '1' } }
call lightline#init()
call s:assert.equals(s:subseparator(['custom1', 'custom2', 'custom3'], '|', [0, 0, 0]), '')
endfunction
function! s:suite.subseparator_component_function_visible_condition_3()
function! Custom1()
return 'custom1'
endfunction
function! Custom2()
return 'custom2'
endfunction
function! Custom3()
return 'custom3'
endfunction
let g:lightline = { 'component_function': { 'custom1': 'Custom1', 'custom2': 'Custom2', 'custom3': 'Custom3' }, 'component_function_visible_condition': { 'custom1': '1', 'custom2': '0', 'custom3': '1' } }
call lightline#init()
call s:assert.equals(s:subseparator(['custom1', 'custom2', 'custom3'], '|', [0, 0, 0]), '|')
endfunction
function! s:suite.subseparator_component_function_visible_condition_4()
function! Custom1()
return 'custom1'
endfunction
function! Custom2()
return 'custom2'
endfunction
function! Custom3()
return 'custom3'
endfunction
let g:lightline = { 'component_function': { 'custom1': 'Custom1', 'custom2': 'Custom2', 'custom3': 'Custom3' }, 'component_function_visible_condition': { 'custom1': '1', 'custom2': '0', 'custom3': '0' } }
call lightline#init()
call s:assert.equals(s:subseparator(['custom1', 'custom2', 'custom3'], '|', [0, 0, 0]), '')
endfunction
function! s:suite.subseparator_component_function_visible_condition_5()
function! Custom1()
return 'custom1'
endfunction
function! Custom2()
return ''
endfunction
function! Custom3()
return ''
endfunction
let g:lightline = { 'component_function': { 'custom1': 'Custom1', 'custom2': 'Custom2', 'custom3': 'Custom3' }, 'component_function_visible_condition': { 'custom1': '0' } }
call lightline#init()
call s:assert.equals(s:subseparator(['custom1', 'custom2', 'custom3'], '|', [0, 0, 0]), '')
endfunction
function! s:suite.subseparator_component_function_visible_condition_6()
function! Custom1()
return ''
endfunction
function! Custom2()
return 'custom2'
endfunction
function! Custom3()
return 'custom3'
endfunction
let g:lightline = { 'component_function': { 'custom1': 'Custom1', 'custom2': 'Custom2', 'custom3': 'Custom3' }, 'component_function_visible_condition': { 'custom2': '1', 'custom3': '1' } }
call lightline#init()
call s:assert.equals(s:subseparator(['custom1', 'custom2', 'custom3'], '|', [0, 0, 0]), '')
endfunction
function! s:suite.subseparator_component_function_visible_condition_7()
function! Custom1()
return 'custom1'
endfunction
function! Custom2()
return ''
endfunction
function! Custom3()
return 'custom3'
endfunction
let g:lightline = { 'component_function': { 'custom1': 'Custom1', 'custom2': 'Custom2', 'custom3': 'Custom3' }, 'component_function_visible_condition': { 'custom3': '1' } }
call lightline#init()
call s:assert.equals(s:subseparator(['custom1', 'custom2', 'custom3'], '|', [0, 0, 0]), '|')
endfunction
function! s:suite.subseparator_component_expand()
function! Custom1()
return 'custom1'
endfunction
function! Custom2()
return 'custom2'
endfunction
function! Custom3()
return 'custom3'
endfunction
let g:lightline = { 'component_expand': { 'custom1': 'Custom1', 'custom2': 'Custom2', 'custom3': 'Custom3' } }
call lightline#init()
call s:assert.equals(s:subseparator(['custom1', 'custom2', 'custom3'], '|', [1, 1, 1]), '|')
delfunction Custom1
delfunction Custom2
delfunction Custom3
endfunction
function! s:suite.subseparator_component_expand()
function! Custom1()
return 'custom1'
endfunction
function! Custom2()
return 'custom2'
endfunction
function! Custom3()
return 'custom3'
endfunction
let g:lightline = { 'component_expand': { 'custom1': 'Custom1', 'custom2': 'Custom2', 'custom3': 'Custom3' } }
call lightline#init()
call s:assert.equals(s:subseparator(['custom1', 'custom2', 'custom3'], '|', [1, 1, 1]), '|')
delfunction Custom1
delfunction Custom2
delfunction Custom3
endfunction
function! s:suite.subseparator_component_expand_1()
function! Custom1()
return 'custom1'
endfunction
function! Custom2()
return 'custom2'
endfunction
function! Custom3()
return 'custom3'
endfunction
let g:lightline = { 'component_expand': { 'custom1': 'Custom1' }, 'component_function': { 'custom2': 'Custom2', 'custom3': 'Custom3' } }
call lightline#init()
call s:assert.equals(s:subseparator(['custom1', 'custom2', 'custom3'], '|', [1, 0, 0]), '|')
delfunction Custom1
delfunction Custom2
delfunction Custom3
endfunction
function! s:suite.subseparator_component_expand_2()
function! Custom1()
return 'custom1'
endfunction
function! Custom2()
return 'custom2'
endfunction
function! Custom3()
return 'custom3'
endfunction
let g:lightline = { 'component_expand': { 'custom1': 'Custom1', 'custom2': 'Custom2' }, 'component_function': { 'custom3': 'Custom3' } }
call lightline#init()
call s:assert.equals(s:subseparator(['custom1', 'custom2', 'custom3'], '|', [1, 1, 0]), '|')
delfunction Custom1
delfunction Custom2
delfunction Custom3
endfunction
function! s:suite.subseparator_component_expand_3()
function! Custom1()
return ''
endfunction
function! Custom2()
return 'custom2'
endfunction
function! Custom3()
return 'custom3'
endfunction
let g:lightline = { 'component_function': { 'custom1': 'Custom1', 'custom2': 'Custom2' }, 'component_expand': { 'custom3': 'Custom3' } }
call lightline#init()
call s:assert.equals(s:subseparator(['custom1', 'custom2', 'custom3'], '|', [0, 0, 1]), '')
delfunction Custom1
delfunction Custom2
delfunction Custom3
endfunction
function! s:suite.subseparator_component_not_found()
function! Custom1()
return 'custom1'
endfunction
let g:lightline = { 'component_function': { 'custom1': 'Custom1' } }
call lightline#init()
call s:assert.equals(s:subseparator(['custom1', 'custom2', 'custom3'], '|', [0, 0, 0]), '')
delfunction Custom1
endfunction
function! s:suite.subseparator_component_not_found_1()
function! Custom2()
return 'custom2'
endfunction
let g:lightline = { 'component_function': { 'custom2': 'Custom2' } }
call lightline#init()
call s:assert.equals(s:subseparator(['custom1', 'custom2', 'custom3'], '|', [0, 0, 0]), '')
delfunction Custom2
endfunction
function! s:suite.subseparator_component_not_found_2()
function! Custom1()
return 'custom1'
endfunction
function! Custom2()
return 'custom2'
endfunction
let g:lightline = { 'component_function': { 'custom1': 'Custom1', 'custom2': 'Custom2' } }
call lightline#init()
call s:assert.equals(s:subseparator(['custom1', 'custom2', 'custom3'], '|', [0, 0, 0]), '|')
delfunction Custom1
delfunction Custom2
endfunction

View File

@@ -0,0 +1,67 @@
let s:suite = themis#suite('tabline')
let s:assert = themis#helper('assert')
function! s:suite.before_each()
let g:lightline = {}
call lightline#init()
tabnew
tabonly
endfunction
function! s:suite.tabline()
call s:assert.equals(&tabline, '%!lightline#tabline()')
endfunction
function! s:suite.enabled()
let g:lightline = { 'enable': { 'tabline': 1 } }
call lightline#init()
call s:assert.equals(&tabline, '%!lightline#tabline()')
endfunction
function! s:suite.disabled()
let g:lightline = { 'enable': { 'tabline': 0 } }
call lightline#init()
call s:assert.equals(&tabline, '')
endfunction
function! s:suite.tabnew()
let tabline = lightline#tabline()
tabnew
call s:assert.not_equals(lightline#tabline(), tabline)
endfunction
function! s:suite.tabnew_first()
let tabline = lightline#tabline()
0tabnew
call s:assert.not_equals(lightline#tabline(), tabline)
endfunction
function! s:suite.tabnext()
tabnew
let tabline = lightline#tabline()
tabnext
call s:assert.not_equals(lightline#tabline(), tabline)
endfunction
function! s:suite.tabonly()
tabnew
tabfirst
let tabline = lightline#tabline()
tabonly
call s:assert.not_equals(lightline#tabline(), tabline)
endfunction
function! s:suite.tabclose()
tabnew
let tabline = lightline#tabline()
tabclose
call s:assert.not_equals(lightline#tabline(), tabline)
endfunction
function! s:suite.tabclose_last()
tabnew
tabfirst
let tabline = lightline#tabline()
$tabclose
call s:assert.not_equals(lightline#tabline(), tabline)
endfunction

View File

@@ -0,0 +1,99 @@
let s:suite = themis#suite('tabs')
let s:assert = themis#helper('assert')
function! s:suite.before_each()
set columns=180
call lightline#init()
tabnew
tabonly
endfunction
function! s:tab(number, ...) abort
let active = get(a:000, 0, 0)
let last = get(a:000, 1, 0)
return '%' . a:number . 'T%{lightline#onetab(' . a:number . ',' . active . ')}' . (last ? '%T' : '')
endfunction
function! s:suite.tabs()
call s:assert.equals(lightline#tabs(), [[], [s:tab(1, 1, 1)], []])
endfunction
function! s:suite.tabnew()
tabnew
call s:assert.equals(lightline#tabs(), [[s:tab(1)], [s:tab(2, 1, 1)], []])
endfunction
function! s:suite.tabnew_tabnew()
tabnew
tabnew
call s:assert.equals(lightline#tabs(), [[s:tab(1), s:tab(2)], [s:tab(3, 1, 1)], []])
endfunction
function! s:suite.tabnew_tabfirst()
tabnew
tabfirst
call s:assert.equals(lightline#tabs(), [[], [s:tab(1, 1)], [s:tab(2, 0, 1)]])
endfunction
function! s:suite.tabnew_tabnew_tabfirst()
tabnew
tabnew
tabfirst
call s:assert.equals(lightline#tabs(), [[], [s:tab(1, 1)], [s:tab(2), s:tab(3, 0, 1)]])
endfunction
function! s:suite.tabnew_tabnew_tabprevious()
tabnew
tabnew
tabprevious
call s:assert.equals(lightline#tabs(), [[s:tab(1)], [s:tab(2, 1)], [s:tab(3, 0, 1)]])
endfunction
function! s:suite.tabnew_20()
for i in range(19)
tabnew
endfor
call s:assert.equals(lightline#tabs(), [[s:tab(1), s:tab(2), s:tab(3), s:tab(4), '...', s:tab(16), s:tab(17), s:tab(18), s:tab(19)], [s:tab(20, 1, 1)], []])
endfunction
function! s:suite.tabnew_20_tabfirst()
for i in range(19)
tabnew
endfor
tabfirst
call s:assert.equals(lightline#tabs(), [[], [s:tab(1, 1)], [s:tab(2), s:tab(3), s:tab(4), '%<' . s:tab(5), '...', '%<' . s:tab(17), '%<' . s:tab(18), '%<' . s:tab(19), '%<' . s:tab(20, 0, 1)]])
endfunction
function! s:suite.tabnew_20_tabfirst_tabnext()
for i in range(19)
tabnew
endfor
tabfirst
tabnext
call s:assert.equals(lightline#tabs(), [[s:tab(1)], [s:tab(2, 1)], [s:tab(3), s:tab(4), s:tab(5), '%<' . s:tab(6), '...', '%<' . s:tab(18), '%<' . s:tab(19), '%<' . s:tab(20, 0, 1)]])
endfunction
function! s:suite.tabnew_20_tabnext_10()
for i in range(19)
tabnew
endfor
tabnext 10
call s:assert.equals(lightline#tabs(), [[s:tab(1), s:tab(2), '...', s:tab(8), s:tab(9)], [s:tab(10, 1)], [s:tab(11), s:tab(12), '...', '%<' . s:tab(19), '%<' . s:tab(20, 0, 1)]])
endfunction
function! s:suite.tabnew_20_tabprevious()
for i in range(19)
tabnew
endfor
tabprevious
call s:assert.equals(lightline#tabs(), [[s:tab(1), s:tab(2), s:tab(3), '...', s:tab(15), s:tab(16), s:tab(17), s:tab(18)], [s:tab(19, 1)], [s:tab(20, 0, 1)]])
endfunction
function! s:suite.tabnew_20_tabprevious_tabprevious()
for i in range(19)
tabnew
endfor
tabprevious
tabprevious
call s:assert.equals(lightline#tabs(), [[s:tab(1), s:tab(2), s:tab(3), '...', s:tab(15), s:tab(16), s:tab(17)], [s:tab(18, 1)], [s:tab(19), s:tab(20, 0, 1)]])
endfunction

View File

@@ -0,0 +1,51 @@
let s:suite = themis#suite('toggle')
let s:assert = themis#helper('assert')
function! s:suite.before_each()
let g:lightline = {}
call lightline#init()
tabnew
tabonly
endfunction
function! s:suite.default()
call s:assert.equals(exists('#lightline'), 1)
call s:assert.equals(exists('#lightline-disable'), 0)
call s:assert.not_equals(&statusline, '')
call s:assert.not_equals(&tabline, '')
endfunction
function! s:suite.disable_enable()
call lightline#disable()
call s:assert.equals(exists('#lightline'), 0)
call s:assert.equals(exists('#lightline-disable'), 1)
call s:assert.equals(&statusline, '')
call s:assert.equals(&tabline, '')
call lightline#update()
call s:assert.equals(&statusline, '')
call s:assert.equals(&tabline, '')
call lightline#enable()
call s:assert.equals(exists('#lightline'), 1)
call s:assert.equals(exists('#lightline-disable'), 0)
call s:assert.not_equals(&statusline, '')
call s:assert.not_equals(&tabline, '')
call lightline#disable()
call lightline#disable()
call lightline#enable()
call lightline#enable()
call s:assert.equals(exists('#lightline'), 1)
call s:assert.equals(exists('#lightline-disable'), 0)
endfunction
function! s:suite.toggle()
call lightline#toggle()
call s:assert.equals(exists('#lightline'), 0)
call s:assert.equals(exists('#lightline-disable'), 1)
call s:assert.equals(&statusline, '')
call s:assert.equals(&tabline, '')
call lightline#toggle()
call s:assert.equals(exists('#lightline'), 1)
call s:assert.equals(exists('#lightline-disable'), 0)
call s:assert.not_equals(&statusline, '')
call s:assert.not_equals(&tabline, '')
endfunction

View File

@@ -0,0 +1,46 @@
let s:suite = themis#suite('uniq')
let s:assert = themis#helper('assert')
function! s:uniq(...)
try
return call(SID('uniq'), a:000)
catch
return call(function('uniq'), a:000)
endtry
endfunction
function! s:suite.nil()
call s:assert.equals(s:uniq([]), [])
endfunction
function! s:suite.one()
call s:assert.equals(s:uniq(['foo']), ['foo'])
endfunction
function! s:suite.two()
call s:assert.equals(s:uniq(['foo', 'bar']), ['foo', 'bar'])
endfunction
function! s:suite.three()
call s:assert.equals(s:uniq(['foo', 'bar', 'baz']), ['foo', 'bar', 'baz'])
endfunction
function! s:suite.two_duplicated()
call s:assert.equals(s:uniq(['foo', 'foo']), ['foo'])
endfunction
function! s:suite.three_duplicated()
call s:assert.equals(s:uniq(['foo', 'bar', 'foo']), ['foo', 'bar', 'foo'])
endfunction
function! s:suite.many1()
call s:assert.equals(s:uniq(['foo', 'foo', 'bar', 'baz', 'baz', 'qux', 'foo']), ['foo', 'bar', 'baz', 'qux', 'foo'])
endfunction
function! s:suite.many2()
call s:assert.equals(s:uniq(['foo', 'foo', 'foo', 'foo', 'bar', 'bar', 'bar']), ['foo', 'bar'])
endfunction
function! s:suite.many3()
call s:assert.equals(s:uniq(['foo', 'foo', 'bar', 'bar', 'bar', 'foo', 'foo', 'foo']), ['foo', 'bar', 'foo'])
endfunction

62
configs/.vimrc Normal file
View File

@@ -0,0 +1,62 @@
" An example for a vimrc file.
"
" Maintainer: Bram Moolenaar <Bram@vim.org>
" Last change: 2019 Dec 17
"
" To use it, copy it to
" for Unix: ~/.vimrc
" for Amiga: s:.vimrc
" for MS-Windows: $VIM\_vimrc
" for Haiku: ~/config/settings/vim/vimrc
" for OpenVMS: sys$login:.vimrc
" When started as "evim", evim.vim will already have done these settings, bail
" out.
if v:progname =~? "evim"
finish
endif
" Get the defaults that most users want.
source $VIMRUNTIME/defaults.vim
if has("vms")
set nobackup " do not keep a backup file, use versions instead
else
"set backup " keep a backup file (restore to previous version)
if has('persistent_undo')
"set undofile " keep an undo file (undo changes after closing)
endif
endif
if &t_Co > 2 || has("gui_running")
" Switch on highlighting the last used search pattern.
set hlsearch
endif
" Put these in an autocmd group, so that we can delete them easily.
augroup vimrcEx
au!
" For all text files set 'textwidth' to 78 characters.
autocmd FileType text setlocal textwidth=78
augroup END
" Add optional packages.
"
" The matchit plugin makes the % command work better, but it is not backwards
" compatible.
" The ! means the package won't be loaded right away but when plugins are
" loaded during initialization.
if has('syntax') && has('eval')
packadd! matchit
endif
set relativenumber
set laststatus=2
set noshowmode
set expandtab
set tabstop=4
set shiftwidth=4
let g:lightline = {'colorscheme': 'jellybeans'}

View File

@@ -0,0 +1,65 @@
" You can edit this file by hand.
" The " character at the beginning of a line comments out the line.
" Blank lines are ignored.
" The Default color scheme is used for any directory that does not have
" a specified scheme and for parts of user interface like menus. A
" color scheme set for a base directory will also
" be used for the sub directories.
" The standard ncurses colors are:
" Default = -1 = None, can be used for transparency or default color
" Black = 0
" Red = 1
" Green = 2
" Yellow = 3
" Blue = 4
" Magenta = 5
" Cyan = 6
" White = 7
" Light versions of colors are also available (set bold attribute):
" LightBlack
" LightRed
" LightGreen
" LightYellow
" LightBlue
" LightMagenta
" LightCyan
" LightWhite
" Available attributes (some of them can be combined):
" bold
" underline
" reverse or inverse
" standout
" none
" Vifm supports 256 colors you can use color numbers 0-255
" (requires properly set up terminal: set your TERM environment variable
" (directly or using resources) to some color terminal name (e.g.
" xterm-256color) from /usr/lib/terminfo/; you can check current number
" of colors in your terminal with tput colors command)
" highlight group cterm=attrs ctermfg=foreground_color ctermbg=background_color
highlight clear
highlight Win cterm=none ctermfg=white ctermbg=black
highlight Directory cterm=bold ctermfg=cyan ctermbg=default
highlight Link cterm=bold ctermfg=yellow ctermbg=default
highlight BrokenLink cterm=bold ctermfg=red ctermbg=default
highlight Socket cterm=bold ctermfg=magenta ctermbg=default
highlight Device cterm=bold ctermfg=red ctermbg=default
highlight Fifo cterm=bold ctermfg=cyan ctermbg=default
highlight Executable cterm=bold ctermfg=green ctermbg=default
highlight Selected cterm=bold ctermfg=magenta ctermbg=default
highlight CurrLine cterm=bold ctermfg=default ctermbg=blue
highlight TopLine cterm=none ctermfg=black ctermbg=white
highlight TopLineSel cterm=bold ctermfg=black ctermbg=default
highlight StatusLine cterm=bold ctermfg=black ctermbg=white
highlight WildMenu cterm=underline,reverse ctermfg=white ctermbg=black
highlight CmdLine cterm=none ctermfg=white ctermbg=black
highlight ErrorMsg cterm=none ctermfg=red ctermbg=black
highlight Border cterm=none ctermfg=black ctermbg=white
highlight JobLine cterm=bold,reverse ctermfg=black ctermbg=white

View File

@@ -0,0 +1,33 @@
" by astrell
" with builtin regular/root user differentiation
highlight clear
highlight Border cterm=none ctermfg=black ctermbg=131
highlight TopLine cterm=none ctermfg=black ctermbg=white
highlight TopLineSel cterm=bold ctermfg=default ctermbg=default
highlight StatusLine cterm=none ctermfg=black ctermbg=white
highlight WildMenu cterm=none ctermfg=default ctermbg=153
highlight CmdLine cterm=none ctermfg=white ctermbg=black
highlight ErrorMsg cterm=none ctermfg=red ctermbg=default
highlight Win cterm=none ctermfg=0 ctermbg=224
highlight Directory cterm=bold ctermfg=17 ctermbg=default
highlight Link cterm=none ctermfg=94 ctermbg=default
highlight BrokenLink cterm=bold ctermfg=160 ctermbg=default
highlight Socket cterm=bold ctermfg=91 ctermbg=default
highlight Device cterm=bold ctermfg=52 ctermbg=default
highlight Fifo cterm=bold ctermfg=105 ctermbg=default
highlight Executable cterm=bold ctermfg=23 ctermbg=default
highlight Selected cterm=bold ctermfg=default ctermbg=182
highlight CurrLine cterm=bold ctermfg=238 ctermbg=153
highlight OtherLine cterm=default ctermfg=default ctermbg=default
" overwrite some colors for root user
if $USER == 'root'
highlight Win cterm=none ctermfg=0 ctermbg=182
highlight Selected cterm=bold ctermfg=default ctermbg=217
endif

View File

@@ -0,0 +1,24 @@
" Dark Desert
" by Karol M. Langner
" based on Desert by Michael jubalh Vetter
" https://github.com/vifm/vifm-colors
highlight clear
highlight Win cterm=none ctermfg=220 ctermbg=233
highlight Directory cterm=bold ctermfg=77 ctermbg=default
highlight Link cterm=bold ctermfg=239 ctermbg=default
highlight BrokenLink cterm=bold ctermfg=red ctermbg=default
highlight Socket cterm=bold ctermfg=24 ctermbg=default
highlight Device cterm=bold ctermfg=31 ctermbg=default
highlight Fifo cterm=bold ctermfg=31 ctermbg=default
highlight Executable cterm=bold ctermfg=green ctermbg=default
highlight Selected cterm=bold ctermfg=magenta ctermbg=default
highlight CurrLine cterm=bold ctermfg=131 ctermbg=228
highlight TopLine cterm=none ctermfg=124 ctermbg=235
highlight TopLineSel cterm=bold ctermfg=124 ctermbg=235
highlight StatusLine cterm=bold ctermfg=124 ctermbg=235
highlight WildMenu cterm=underline,reverse ctermfg=white ctermbg=black
highlight CmdLine cterm=none ctermfg=217 ctermbg=black
highlight ErrorMsg cterm=none ctermfg=7 ctermbg=1
highlight Border cterm=none ctermfg=black ctermbg=235

View File

@@ -0,0 +1,23 @@
" Desert
" by Michael jubalh Vetter
" https://github.com/jubalh/vifm-colors
highlight clear
highlight Win cterm=none ctermfg=220 ctermbg=237
highlight Directory cterm=bold ctermfg=77 ctermbg=default
highlight Link cterm=bold ctermfg=239 ctermbg=default
highlight BrokenLink cterm=bold ctermfg=red ctermbg=default
highlight Socket cterm=bold ctermfg=24 ctermbg=default
highlight Device cterm=bold ctermfg=31 ctermbg=default
highlight Fifo cterm=bold ctermfg=31 ctermbg=default
highlight Executable cterm=bold ctermfg=green ctermbg=default
highlight Selected cterm=bold ctermfg=magenta ctermbg=default
highlight CurrLine cterm=bold ctermfg=131 ctermbg=228
highlight TopLine cterm=none ctermfg=black ctermbg=white
highlight TopLineSel cterm=bold ctermfg=red ctermbg=default
highlight StatusLine cterm=bold ctermfg=red ctermbg=white
highlight WildMenu cterm=underline,reverse ctermfg=white ctermbg=black
highlight CmdLine cterm=none ctermfg=217 ctermbg=black
highlight ErrorMsg cterm=none ctermfg=7 ctermbg=1
highlight Border cterm=none ctermfg=black ctermbg=white

View File

@@ -0,0 +1,45 @@
" VIFM COLORS
" dracula
" based on: https://github.com/istib/dotfiles/blob/master/vifm/vifm-colors
" Default = -1 = None, can be used for transparency or default color
" Black = 0
" Red = 1
" Green = 2
" Yellow = 3
" Blue = 4
" Magenta = 5
" Cyan = 6
" White = 7
" STYLES
" bold
" underline
" reverse or inverse
" standout
" none
highlight clear
highlight Win cterm=none ctermfg=default ctermbg=none
highlight TopLine cterm=none ctermfg=blue ctermbg=none
highlight TopLineSel cterm=none ctermfg=magenta ctermbg=none
highlight StatusLine cterm=none ctermfg=blue ctermbg=none
highlight Border cterm=none ctermfg=blue ctermbg=none
highlight Selected cterm=bold ctermfg=magenta ctermbg=default
highlight CurrLine cterm=bold ctermfg=236 ctermbg=blue
highlight WildMenu cterm=none,reverse ctermfg=blue ctermbg=236
highlight CmdLine cterm=none ctermfg=255 ctermbg=236
highlight ErrorMsg cterm=none ctermfg=red ctermbg=black
highlight Directory cterm=none ctermfg=blue ctermbg=default
highlight Link cterm=none ctermfg=cyan ctermbg=default
highlight BrokenLink cterm=none ctermfg=red ctermbg=default
highlight Socket cterm=none ctermfg=magenta ctermbg=black
highlight Device cterm=none ctermfg=red ctermbg=default
highlight Fifo cterm=none ctermfg=yellow ctermbg=black
highlight Executable cterm=none ctermfg=green ctermbg=default

View File

@@ -0,0 +1,74 @@
" dwmlight
" Author: SaeidSaati
" I suggest you to use PaperColor colorscheme in vim/nvim, then this theme will match with it
" SEE THIS WEBSITE: https://www.calmar.ws/vim/256-xterm-24bit-rgb-color-chart.html
" https://github.com/vifm/vifm-colors
" =============================
" The standard ncurses colors are:
" =============================
" Default = -1 = None, can be used for transparency or default color
" Black = 0 = 16
" Red = 1
" Green = 2
" Yellow = 3
" Blue = 4
" Magenta = 5
" Cyan = 6
" White = 7 = 231
" =============================
" Available attributes (some of them can be combined):
" =============================
" bold
" underline
" reverse or inverse
" standout
" italic (on unsupported systems becomes reverse)
" none
" =============================
" export TERM=xterm-256color (in your .bashrc or .zshrc)
" =============================
" Vifm supports 256 colors you can use color numbers 0-255
" (requires properly set up terminal: set your TERM environment variable
" (directly or using resources) to some color terminal name (e.g.
" xterm-256color) from /usr/lib/terminfo/; you can check current number
" of colors in your terminal with tput colors command)
" =============================
" Explanation
" =============================
" highlight group cterm=attrs ctermfg=foreground_color ctermbg=background_color
" =============================
" Color Scheme
" =============================
highlight clear
highlight SuggestBox cterm=none ctermfg=24 ctermbg=255
highlight Win cterm=none ctermfg=238 ctermbg=255
highlight Directory cterm=bold ctermfg=25 ctermbg=255
highlight Link cterm=none ctermfg=27 ctermbg=255
highlight BrokenLink cterm=bold ctermfg=196 ctermbg=255
highlight Socket cterm=bold ctermfg=24 ctermbg=251
highlight Device cterm=none ctermfg=57 ctermbg=255
highlight Fifo cterm=none ctermfg=24 ctermbg=255
highlight Executable cterm=none ctermfg=125 ctermbg=255
highlight Selected cterm=none ctermfg=16 ctermbg=154
highlight CurrLine cterm=reverse ctermfg=-1 ctermbg=-1 " none 238 254
highlight TopLineSel cterm=none ctermfg=255 ctermbg=31
highlight TopLine cterm=none ctermfg=255 ctermbg=24
"highlight TopLineSel cterm=none ctermfg=240 ctermbg=254
highlight StatusLine cterm=none ctermfg=255 ctermbg=24
highlight WildMenu cterm=none ctermfg=255 ctermbg=31
highlight CmdLine cterm=none ctermfg=255 ctermbg=24
highlight ErrorMsg cterm=bold ctermfg=16 ctermbg=166
highlight Border cterm=none ctermfg=255 ctermbg=255

View File

@@ -0,0 +1,28 @@
" G80
" Reset all styles first
highlight clear
highlight Border cterm=none ctermfg=237 ctermbg=237
highlight TopLine cterm=none ctermfg=188 ctermbg=237
highlight TopLineSel cterm=underline ctermfg=188 ctermbg=237
highlight Win cterm=none ctermfg=188 ctermbg=237
highlight Directory cterm=none ctermfg=188 ctermbg=237
highlight CurrLine cterm=none ctermfg=188 ctermbg=236
highlight OtherLine cterm=none ctermfg=247 ctermbg=237
highlight Selected cterm=none ctermfg=188 ctermbg=238
highlight JobLine cterm=bold ctermfg=188 ctermbg=238
highlight StatusLine cterm=none ctermfg=188 ctermbg=235
highlight WildMenu cterm=none ctermfg=188 ctermbg=238
highlight CmdLine cterm=none ctermfg=188 ctermbg=237
highlight ErrorMsg cterm=none ctermfg=188 ctermbg=237
highlight Executable cterm=none ctermfg=188 ctermbg=237
highlight Link cterm=none ctermfg=188 ctermbg=237
highlight BrokenLink cterm=none ctermfg=188 ctermbg=237
highlight Device cterm=none ctermfg=188 ctermbg=237
highlight Fifo cterm=none ctermfg=188 ctermbg=237
highlight Socket cterm=none ctermfg=188 ctermbg=237

View File

@@ -0,0 +1,30 @@
" gruvbox color scheme approximation for vifm
" Reset all styles first
highlight clear
highlight Border cterm=none ctermfg=235 ctermbg=default
highlight TopLine cterm=none ctermfg=214 ctermbg=235
highlight TopLineSel cterm=bold ctermfg=214 ctermbg=237
highlight Win cterm=none ctermfg=223 ctermbg=default
"highlight OtherWin cterm=none ctermfg=223 ctermbg=236
highlight Directory cterm=bold ctermfg=109 ctermbg=default
highlight CurrLine cterm=bold,inverse ctermfg=default ctermbg=default
highlight OtherLine cterm=bold ctermfg=default ctermbg=235
highlight Selected cterm=none ctermfg=223 ctermbg=237
highlight JobLine cterm=bold ctermfg=116 ctermbg=238
highlight StatusLine cterm=bold ctermfg=144 ctermbg=236
highlight ErrorMsg cterm=bold ctermfg=167 ctermbg=default
highlight WildMenu cterm=bold ctermfg=235 ctermbg=144
highlight CmdLine cterm=none ctermfg=223 ctermbg=default
highlight Executable cterm=bold ctermfg=142 ctermbg=default
highlight Link cterm=none ctermfg=132 ctermbg=default
highlight BrokenLink cterm=bold ctermfg=167 ctermbg=default
highlight Device cterm=none,standout ctermfg=214 ctermbg=default
highlight Fifo cterm=none ctermfg=172 ctermbg=default
highlight Socket cterm=bold ctermfg=223 ctermbg=default

View File

@@ -0,0 +1,29 @@
" iceberg
" by puven12
"
" This colorscheme is based on iceberg colorscheme for vim
" by cocopon
highlight clear
highlight Win cterm=none ctermfg=255 ctermbg=234
highlight Directory cterm=bold ctermfg=109 ctermbg=default
highlight Link cterm=bold ctermfg=216 ctermbg=234
highlight BrokenLink cterm=bold ctermfg=red ctermbg=239
highlight Socket cterm=bold ctermfg=green ctermbg=default
highlight Device cterm=bold ctermfg=red ctermbg=default
highlight Fifo cterm=bold ctermfg=150 ctermbg=default
highlight Executable cterm=none ctermfg=150 ctermbg=default
highlight Selected cterm=none ctermfg=255 ctermbg=236
highlight CurrLine cterm=reverse
highlight TopLine cterm=none ctermfg=255 ctermbg=234
highlight TopLineSel cterm=bold ctermfg=110 ctermbg=default
highlight StatusLine cterm=none ctermfg=240 ctermbg=235
highlight WildMenu cterm=underline,reverse ctermfg=255 ctermbg=black
highlight CmdLine cterm=none ctermfg=255 ctermbg=234
highlight ErrorMsg cterm=none ctermfg=203 ctermbg=234
highlight Border cterm=none ctermfg=black ctermbg=234
highlight JobLine cterm=bold,reverse ctermfg=black ctermbg=255
highlight SuggestBox cterm=bold ctermfg=default ctermbg=default
highlight CmpMismatch cterm=bold ctermfg=255 ctermbg=red
highlight AuxWin cterm=bold,underline,reverse,standout ctermfg=default ctermbg=default

View File

@@ -0,0 +1,25 @@
" lucius
" by francogonzaga
"
" https://gist.github.com/francogonzaga/5509523
"
" This color scheme is loosely based on the lucius color scheme for vim
highlight clear
highlight Win cterm=none ctermfg=250 ctermbg=236
highlight Directory cterm=bold ctermfg=4 ctermbg=236
highlight Link cterm=bold ctermfg=yellow ctermbg=236
highlight BrokenLink cterm=bold ctermfg=red ctermbg=none
highlight Socket cterm=bold ctermfg=magenta ctermbg=black
highlight Device cterm=bold ctermfg=red ctermbg=black
highlight Fifo cterm=bold ctermfg=cyan ctermbg=none
highlight Executable cterm=bold ctermfg=112 ctermbg=236
highlight Selected cterm=none ctermfg=236 ctermbg=208
highlight CurrLine cterm=bold ctermfg=251 ctermbg=240
highlight TopLine cterm=none ctermfg=black ctermbg=240
highlight TopLineSel cterm=none ctermfg=250 ctermbg=12
highlight StatusLine cterm=bold ctermfg=255 ctermbg=12
highlight WildMenu cterm=underline,reverse ctermfg=white ctermbg=black
highlight CmdLine cterm=none ctermfg=white ctermbg=240
highlight ErrorMsg cterm=none ctermfg=250 ctermbg=124
highlight Border cterm=none ctermfg=236 ctermbg=236

View File

@@ -0,0 +1,27 @@
" Matrix
" by Michael jubalh Vetter
" https://github.com/jubalh/vifm-colors
highlight clear
highlight Win cterm=none ctermfg=green ctermbg=black
highlight TopLine cterm=none ctermfg=green ctermbg=none
highlight TopLineSel cterm=none ctermfg=green ctermbg=none
highlight StatusLine cterm=none ctermfg=green ctermbg=none
highlight Border cterm=none ctermfg=green ctermbg=none
highlight Selected cterm=bold ctermfg=red ctermbg=default
highlight CurrLine cterm=bold ctermfg=black ctermbg=green
highlight WildMenu cterm=underline,reverse ctermfg=white ctermbg=black
highlight CmdLine cterm=none ctermfg=white ctermbg=black
highlight ErrorMsg cterm=none ctermfg=red ctermbg=black
highlight Directory cterm=none ctermfg=blue ctermbg=default
highlight Link cterm=none ctermfg=yellow ctermbg=default
highlight BrokenLink cterm=none ctermfg=red ctermbg=default
highlight Socket cterm=none ctermfg=yellow ctermbg=default
highlight Device cterm=none ctermfg=yellow ctermbg=default
highlight Fifo cterm=none ctermfg=yellow ctermbg=default
highlight Executable cterm=none ctermfg=green ctermbg=default

View File

@@ -0,0 +1,26 @@
" mimicking midnight commander
" by Petteri Knihti, update by Jose Riha
highlight clear
highlight Win cterm=none ctermfg=white ctermbg=blue
highlight CurrLine cterm=none ctermfg=black ctermbg=cyan
highlight Selected cterm=bold ctermfg=yellow ctermbg=default
highlight TopLine cterm=none ctermfg=white ctermbg=blue
highlight TopLineSel cterm=none ctermfg=black ctermbg=white
highlight StatusLine cterm=none ctermfg=black ctermbg=cyan
highlight Border cterm=none ctermfg=none ctermbg=blue
highlight WildMenu cterm=reverse ctermfg=black ctermbg=white
highlight CmdLine cterm=none ctermfg=white ctermbg=black
highlight ErrorMsg cterm=none ctermfg=red ctermbg=black
highlight Directory cterm=none ctermfg=lightwhite ctermbg=default
highlight Link cterm=none ctermfg=white ctermbg=default
highlight BrokenLink cterm=none ctermfg=lightred ctermbg=default
highlight Socket cterm=none ctermfg=lightmagenta ctermbg=default
highlight Device cterm=none ctermfg=lightmagenta ctermbg=default
highlight Fifo cterm=none ctermfg=black ctermbg=default
highlight Executable cterm=none ctermfg=lightgreen ctermbg=default

View File

@@ -0,0 +1,31 @@
" Molokai
" by Miguel Madrid Mencia
" https://github.com/vifm/vifm-colors
highlight clear
highlight Border cterm=none ctermfg=black ctermbg=232
highlight BrokenLink cterm=bold ctermfg=red ctermbg=default
highlight CmdLine cterm=none ctermfg=white ctermbg=black
highlight CurrLine cterm=bold ctermfg=default ctermbg=208
highlight Device cterm=bold ctermfg=red ctermbg=default
highlight Directory cterm=bold ctermfg=12 ctermbg=default
highlight ErrorMsg cterm=none ctermfg=red ctermbg=black
highlight Executable cterm=bold ctermfg=green ctermbg=default
highlight Fifo cterm=bold ctermfg=cyan ctermbg=default
highlight Link cterm=bold ctermfg=green ctermbg=default
highlight OtherLine cterm=bold ctermfg=default ctermbg=130
highlight Selected cterm=bold ctermfg=magenta ctermbg=default
highlight Socket cterm=bold ctermfg=magenta ctermbg=default
highlight StatusLine cterm=none ctermfg=white ctermbg=233
highlight SuggestBox cterm=none ctermfg=white ctermbg=black
highlight TopLine cterm=none ctermfg=15 ctermbg=233
highlight TopLineSel cterm=none ctermfg=148 ctermbg=default
highlight WildMenu cterm=underline,reverse ctermfg=white ctermbg=black
highlight Win cterm=none ctermfg=white ctermbg=black
if $USER == 'root'
highlight Border cterm=none ctermfg=default ctermbg=red
highlight StatusLine cterm=none ctermfg=white ctermbg=red
highlight TopLine cterm=none ctermfg=default ctermbg=red
endif

View File

@@ -0,0 +1,89 @@
" vim: filetype=vifm :
" xterm color customization:
"
" ! regular (not bold) red
" XTerm*color1: #ff3030
" ! regular (not bold) green
" XTerm*color2: #70dd70
" ! regular (not bold) yellow
" XTerm*color3: #f0f000
" ! regular (not bold) blue
" XTerm*color4: #6060dd
" ! bold red
" XTerm*color9: #ff8080
" ! bold green
" XTerm*color10: #20dd20
" ! bold yellow
" XTerm*color11: #e0e000
" ! bold blue
" XTerm*color12: #a8a8ff
highlight clear
highlight Win cterm=none ctermfg=white ctermbg=default
highlight BrokenLink cterm=bold ctermfg=red ctermbg=default
highlight Socket cterm=bold ctermfg=magenta ctermbg=default
highlight Device cterm=bold,reverse ctermfg=red ctermbg=default
highlight Fifo cterm=bold,reverse ctermfg=cyan ctermbg=default
highlight CurrLine cterm=reverse,bold ctermfg=default ctermbg=default
highlight TopLine cterm=none ctermfg=black ctermbg=white
highlight TopLineSel cterm=underline ctermfg=black ctermbg=default
highlight StatusLine cterm=none ctermfg=black ctermbg=white
highlight WildMenu cterm=underline,bold,reverse ctermfg=yellow ctermbg=black
highlight CmdLine cterm=bold ctermfg=white ctermbg=default
highlight ErrorMsg cterm=bold ctermfg=white ctermbg=red
highlight Border cterm=none ctermfg=white ctermbg=default
highlight OtherLine cterm=reverse ctermfg=234 ctermbg=white
highlight SuggestBox cterm=bold,reverse ctermfg=cyan ctermbg=default
" no 256-color palette on Windows
if $OS == 'Windows_NT'
highlight Directory cterm=bold ctermfg=cyan ctermbg=default
highlight Link cterm=bold ctermfg=yellow ctermbg=default
highlight Executable cterm=bold ctermfg=green ctermbg=default
highlight Selected cterm=bold ctermfg=magenta ctermbg=default
highlight CmpMismatch cterm=bold ctermfg=white ctermbg=red
finish
endif
highlight Directory cterm=bold ctermfg=123 ctermbg=default
highlight Link cterm=bold ctermfg=229 ctermbg=default
highlight Executable cterm=bold ctermfg=119 ctermbg=default
highlight Selected cterm=bold ctermfg=213 ctermbg=default
highlight CmpMismatch cterm=bold ctermfg=white ctermbg=88
" software documentation
highlight {COPYRIGHT,COPYING*,BUGS,ChangeLog*,FAQ,INSTALL*,LICEN[CS]E,NEWS,
\README*,AUTHORS,TODO,THANKS}
\ cterm=none ctermfg=187 ctermbg=default
" build system files
highlight {Makefile,Makefile.am,Makefile.in,Makefile.win,*.mak,*.mk,
\CMakeLists.txt}
\ cterm=none ctermfg=121 ctermbg=default
" archives
highlight {*.7z,*.ace,*.arj,*.bz2,*.cpio,*.deb,*.dz,*.gz,*.jar,*.lzh,*.lzma,
\*.rar,*.rpm,*.rz,*.tar,*.taz,*.tb2,*.tbz,*.tbz2,*.tgz,*.tlz,*.trz,
\*.txz,*.tz,*.tz2,*.xz,*.z,*.zip,*.zoo}
\ cterm=none ctermfg=215 ctermbg=default
" documents
highlight {*.djvu,*.htm,*.html,*.shtml,*.css,*.markdown,*.md,*[^0-9].[1-9],
\*.mkd,*.org,*.pandoc,*.pdc,*.pdf,*.epub,*.fb2,*.tex,*.txt,*.xhtml,
\*.xml,*.pptx,*.ppt,*.doc,*.docx,*.xls,*.xls[mx],*.mobi}
\ cterm=none ctermfg=217 ctermbg=default
" media
highlight {*.aac,*.anx,*.asf,*.au,*.avi,*.ts,*.axa,*.axv,*.divx,*.flac,*.m2a,
\*.m2v,*.m4a,*.m4p,*.m4v,*.mid,*.midi,*.mka,*.mkv,*.mov,*.mp3,*.mp4,
\*.flv,*.mp4v,*.mpc,*.mpeg,*.mpg,*.nuv,*.oga,*.ogg,*.ogv,*.ogx,*.pbm,
\*.pgm,*.qt,*.ra,*.ram,*.rm,*.spx,*.vob,*.wav,*.wma,*.wmv,*.xvid,
\*.ac3}
\ cterm=none ctermfg=49 ctermbg=default
" images
highlight {*.bmp,*.gif,*.jpeg,*.jpg,*.ico,*.png,*.ppm,*.svg,*.svgz,*.tga,*.tif,
\*.tiff,*.xbm,*.xcf,*.xpm,*.xspf,*.xwd}
\ cterm=none ctermfg=117 ctermbg=default
" executables
highlight {*.sh,*.bash,*.bat,*.btm,*.cmd,*.com,*.dll,*.exe,*.run,*.msu,*.msi}
\ cterm=none ctermfg=77 ctermbg=default
" source code
highlight {*.patch,*.diff,*.py,*.[ch]pp,*.mk,*.c,*.h,*.[ch]pp,*.cc,*.hs,*.php}
\ cterm=none ctermfg=193 ctermbg=default

View File

@@ -0,0 +1,29 @@
" onedark color scheme for vifm
" Reset all styles first
highlight clear
highlight Border cterm=none ctermfg=035 ctermbg=default
highlight TopLine cterm=none ctermfg=002 ctermbg=default
highlight TopLineSel cterm=bold ctermfg=002 ctermbg=015
highlight Win cterm=none ctermfg=250 ctermbg=default
highlight Directory cterm=bold ctermfg=004 ctermbg=default
highlight CurrLine cterm=bold,inverse ctermfg=default ctermbg=default
highlight OtherLine cterm=bold ctermfg=default ctermbg=default
highlight Selected cterm=none ctermfg=003 ctermbg=008
highlight JobLine cterm=bold ctermfg=250 ctermbg=008
highlight StatusLine cterm=none ctermfg=250 ctermbg=015
highlight ErrorMsg cterm=bold ctermfg=001 ctermbg=default
highlight WildMenu cterm=bold ctermfg=015 ctermbg=250
highlight CmdLine cterm=none ctermfg=007 ctermbg=default
highlight Executable cterm=bold ctermfg=002 ctermbg=default
highlight Link cterm=bold ctermfg=006 ctermbg=default
highlight BrokenLink cterm=bold ctermfg=001 ctermbg=default
highlight Device cterm=bold,standout ctermfg=000 ctermbg=011
highlight Fifo cterm=none ctermfg=003 ctermbg=default
highlight Socket cterm=bold ctermfg=005 ctermbg=default

View File

@@ -0,0 +1,29 @@
" palenight color scheme for vifm
" Reset all styles first
highlight clear
highlight Border cterm=none ctermfg=default ctermbg=default
highlight TopLine cterm=none ctermfg=002 ctermbg=default
highlight TopLineSel cterm=bold ctermfg=002 ctermbg=default
highlight Win cterm=none ctermfg=251 ctermbg=default
highlight Directory cterm=bold ctermfg=004 ctermbg=default
highlight CurrLine cterm=bold,inverse ctermfg=default ctermbg=default
highlight OtherLine cterm=bold ctermfg=default ctermbg=default
highlight Selected cterm=none ctermfg=003 ctermbg=008
highlight JobLine cterm=bold ctermfg=251 ctermbg=008
highlight StatusLine cterm=none ctermfg=008 ctermbg=default
highlight ErrorMsg cterm=bold ctermfg=001 ctermbg=default
highlight WildMenu cterm=bold ctermfg=015 ctermbg=008
highlight CmdLine cterm=none ctermfg=007 ctermbg=default
highlight Executable cterm=bold ctermfg=002 ctermbg=default
highlight Link cterm=bold ctermfg=006 ctermbg=default
highlight BrokenLink cterm=bold ctermfg=001 ctermbg=default
highlight Device cterm=bold,standout ctermfg=000 ctermbg=011
highlight Fifo cterm=none ctermfg=003 ctermbg=default
highlight Socket cterm=bold ctermfg=005 ctermbg=default

View File

@@ -0,0 +1,29 @@
highlight clear
highlight Win cterm=none ctermfg=252 ctermbg=234
highlight OtherWin cterm=none ctermfg=252 ctermbg=234
highlight Border cterm=none ctermfg=252 ctermbg=234
highlight AuxWin cterm=none ctermfg=252 ctermbg=234
highlight TopLine cterm=bold ctermfg=71 ctermbg=235
highlight TopLineSel cterm=bold ctermfg=234 ctermbg=149
highlight CmdLine cterm=none ctermfg=252 ctermbg=234
highlight ErrorMsg cterm=bold ctermfg=160 ctermbg=234
highlight StatusLine cterm=bold ctermfg=71 ctermbg=235
highlight JobLine cterm=bold ctermfg=71 ctermbg=235
highlight SuggestBox cterm=bold ctermfg=71 ctermbg=235
highlight WildMenu cterm=bold ctermfg=71 ctermbg=235
highlight CurrLine cterm=bold,inverse ctermfg=default ctermbg=default
highlight OtherLine cterm=bold ctermfg=default ctermbg=235
highlight Selected cterm=bold ctermfg=173 ctermbg=235
highlight LineNr cterm=none ctermfg=244 ctermbg=234
highlight Directory cterm=bold ctermfg=74 ctermbg=234
highlight Link cterm=none ctermfg=173 ctermbg=234
highlight BrokenLink cterm=none ctermfg=160 ctermbg=234
highlight Socket cterm=bold ctermfg=140 ctermbg=234
highlight Device cterm=none ctermfg=125 ctermbg=234
highlight Fifo cterm=none ctermfg=74 ctermbg=234
highlight Executable cterm=bold ctermfg=70 ctermbg=234

View File

@@ -0,0 +1,29 @@
highlight clear
highlight Win cterm=none ctermfg=234 ctermbg=255
highlight OtherWin cterm=none ctermfg=238 ctermbg=255
highlight Border cterm=none ctermfg=238 ctermbg=255
highlight AuxWin cterm=none ctermfg=238 ctermbg=255
highlight TopLine cterm=bold ctermfg=250 ctermbg=24
highlight TopLineSel cterm=bold ctermfg=255 ctermbg=31
highlight CmdLine cterm=none ctermfg=234 ctermbg=255
highlight ErrorMsg cterm=bold ctermfg=160 ctermbg=255
highlight StatusLine cterm=bold ctermfg=255 ctermbg=24
highlight JobLine cterm=bold ctermfg=255 ctermbg=31
highlight SuggestBox cterm=bold ctermfg=255 ctermbg=31
highlight WildMenu cterm=bold ctermfg=255 ctermbg=31
highlight CurrLine cterm=bold,inverse ctermfg=default ctermbg=default
highlight OtherLine cterm=bold ctermfg=default ctermbg=250
highlight Selected cterm=bold ctermfg=255 ctermbg=166
highlight LineNr cterm=none ctermfg=102 ctermbg=255
highlight Directory cterm=bold ctermfg=25 ctermbg=255
highlight Link cterm=none ctermfg=24 ctermbg=255
highlight BrokenLink cterm=none ctermfg=160 ctermbg=255
highlight Socket cterm=bold ctermfg=91 ctermbg=255
highlight Device cterm=none ctermfg=124 ctermbg=255
highlight Fifo cterm=none ctermfg=31 ctermbg=255
highlight Executable cterm=bold ctermfg=28 ctermbg=255

View File

@@ -0,0 +1,27 @@
" ph
highlight clear
highlight Win cterm=none ctermfg=248 ctermbg=234
highlight Directory cterm=bold ctermfg=033 ctermbg=234
highlight Link cterm=bold ctermfg=yellow ctermbg=234
highlight BrokenLink cterm=reverse ctermfg=red ctermbg=default
highlight Socket cterm=bold ctermfg=125 ctermbg=default
highlight Device cterm=bold ctermfg=red ctermbg=default
highlight Fifo cterm=bold ctermfg=cyan ctermbg=default
highlight Executable cterm=bold ctermfg=166 ctermbg=default
highlight Selected cterm=bold ctermfg=255 ctermbg=237
highlight CurrLine cterm=bold ctermfg=default ctermbg=237
highlight TopLine cterm=bold ctermfg=black ctermbg=235
highlight TopLineSel cterm=bold ctermfg=black ctermbg=default
highlight StatusLine cterm=bold ctermfg=black ctermbg=235
highlight WildMenu cterm=underline,reverse ctermfg=white ctermbg=black
highlight CmdLine cterm=none ctermfg=white ctermbg=black
highlight ErrorMsg cterm=none ctermfg=red ctermbg=black
highlight Border cterm=none ctermfg=black ctermbg=234
highlight JobLine cterm=bold,reverse ctermfg=black ctermbg=white
highlight SuggestBox cterm=bold ctermfg=default ctermbg=default
if $USER == 'root'
highlight Border ctermbg=red
endif

View File

@@ -0,0 +1,28 @@
" vim: filetype=vifm :
" Author: Daniel R. (a.k.a. reicheltd)
highlight clear
highlight Win cterm=none ctermfg=236 ctermbg=255
highlight Directory cterm=bold ctermfg=21 ctermbg=255
highlight Link cterm=bold ctermfg=39 ctermbg=default
highlight BrokenLink cterm=bold ctermfg=red ctermbg=default
highlight Socket cterm=bold ctermfg=magenta ctermbg=default
highlight Device cterm=bold ctermfg=blue ctermbg=default
highlight Fifo cterm=bold ctermfg=cyan ctermbg=default
highlight Executable cterm=bold ctermfg=red ctermbg=default
highlight Selected cterm=bold ctermfg=200 ctermbg=default
highlight CurrLine cterm=bold ctermfg=255 ctermbg=27
highlight TopLine cterm=none ctermfg=236 ctermbg=255
highlight TopLineSel cterm=bold ctermfg=236 ctermbg=255
highlight StatusLine cterm=bold ctermfg=236 ctermbg=255
highlight WildMenu cterm=underline,reverse ctermfg=236 ctermbg=255
highlight CmdLine cterm=none ctermfg=236 ctermbg=255
highlight ErrorMsg cterm=none ctermfg=red ctermbg=236
highlight Border cterm=none ctermfg=236 ctermbg=255

View File

@@ -0,0 +1,57 @@
" sandy
" Author: Nando, based on colorscheme snowhite by Jochen Schweizer
" xterm color customization:
"
" ! regular (not bold) red
" XTerm*color1: #ff3030
" ! regular (not bold) green
" XTerm*color2: #70dd70
" ! regular (not bold) yellow
" XTerm*color3: #f0f000
" ! regular (not bold) blue
" XTerm*color4: #6060dd
" ! bold red
" XTerm*color9: #ff8080
" ! bold green
" XTerm*color10: #20dd20
" ! bold yellow
" XTerm*color11: #e0e000
" ! bold blue
" XTerm*color12: #a8a8ff
highlight clear
highlight OtherLine cterm=reverse ctermfg=234 ctermbg=white
highlight SuggestBox cterm=none ctermfg=16 ctermbg=231
highlight Win cterm=none ctermfg=16 ctermbg=230
highlight Directory cterm=bold ctermfg=16 ctermbg=default
highlight Link cterm=none ctermfg=blue ctermbg=default
highlight BrokenLink cterm=bold ctermfg=196 ctermbg=default
highlight Socket cterm=none ctermfg=16 ctermbg=default
highlight Device cterm=none ctermfg=16 ctermbg=default
highlight Fifo cterm=none ctermfg=16 ctermbg=default
highlight Executable cterm=none ctermfg=red ctermbg=default
highlight Selected cterm=none ctermfg=208 ctermbg=default
highlight CurrLine cterm=none ctermfg=white ctermbg=LightCyan
highlight TopLine cterm=none ctermfg=16 ctermbg=255
highlight TopLineSel cterm=none ctermfg=231 ctermbg=blue
highlight StatusLine cterm=bold ctermfg=16 ctermbg=255
highlight WildMenu cterm=underline,reverse ctermfg=16 ctermbg=default
highlight CmdLine cterm=none ctermfg=black ctermbg=white
highlight ErrorMsg cterm=bold ctermfg=196 ctermbg=default
highlight Border cterm=none ctermfg=16 ctermbg=255
highlight AuxWin cterm=none ctermfg=default ctermbg=229
highlight JobLine cterm=bold ctermfg=black ctermbg=white
highlight CmpMismatch cterm=bold ctermfg=white ctermbg=red
" executables
highlight {*.sh,*.bash,*.bat,*.btm,*.cmd,*.com,*.dll,*.exe,*.run,*.msu,*.msi}
\ cterm=none ctermfg=red ctermbg=default

View File

@@ -0,0 +1,23 @@
" SemiDarkDesert
" by Claus E. Durst, based on 'Desert' by Michael jubalh Vetter
" https://github.com/clausED/vifm-colors
highlight clear
highlight Win cterm=none ctermfg=220 ctermbg=233
highlight Directory cterm=bold ctermfg=77 ctermbg=default
highlight Link cterm=bold ctermfg=239 ctermbg=default
highlight BrokenLink cterm=bold ctermfg=red ctermbg=default
highlight Socket cterm=bold ctermfg=24 ctermbg=default
highlight Device cterm=bold ctermfg=31 ctermbg=default
highlight Fifo cterm=bold ctermfg=31 ctermbg=default
highlight Executable cterm=bold ctermfg=green ctermbg=default
highlight Selected cterm=bold ctermfg=magenta ctermbg=default
highlight CurrLine cterm=bold ctermfg=131 ctermbg=228
highlight TopLine cterm=none ctermfg=black ctermbg=248
highlight TopLineSel cterm=bold ctermfg=red ctermbg=default
highlight StatusLine cterm=bold ctermfg=red ctermbg=248
highlight WildMenu cterm=underline,reverse ctermfg=white ctermbg=black
highlight CmdLine cterm=none ctermfg=217 ctermbg=black
highlight ErrorMsg cterm=none ctermfg=7 ctermbg=1
highlight Border cterm=none ctermfg=black ctermbg=240

View File

@@ -0,0 +1,31 @@
" snowwhite
" Author: Jochen Schweizer
" https://github.com/durcheinandr/vifm-colors
highlight clear
highlight SuggestBox cterm=none ctermfg=16 ctermbg=231
highlight Win cterm=none ctermfg=16 ctermbg=231
highlight Directory cterm=bold ctermfg=16 ctermbg=231
highlight Link cterm=none ctermfg=16 ctermbg=231
highlight BrokenLink cterm=bold ctermfg=196 ctermbg=231
highlight Socket cterm=none ctermfg=16 ctermbg=231
highlight Device cterm=none ctermfg=16 ctermbg=231
highlight Fifo cterm=none ctermfg=16 ctermbg=231
highlight Executable cterm=none ctermfg=16 ctermbg=231
highlight Selected cterm=none ctermfg=208 ctermbg=231
highlight CurrLine cterm=none ctermfg=231 ctermbg=208
highlight TopLine cterm=none ctermfg=16 ctermbg=255
highlight TopLineSel cterm=none ctermfg=231 ctermbg=16
highlight StatusLine cterm=bold ctermfg=16 ctermbg=255
highlight WildMenu cterm=underline,reverse ctermfg=16 ctermbg=231
highlight CmdLine cterm=none ctermfg=16 ctermbg=231
highlight ErrorMsg cterm=bold ctermfg=196 ctermbg=231
highlight Border cterm=none ctermfg=16 ctermbg=255

View File

@@ -0,0 +1,45 @@
" VIFM COLORS
" solarized dark
" based on: https://github.com/istib/dotfiles/blob/master/vifm/vifm-colors
" Default = -1 = None, can be used for transparency or default color
" Black = 0
" Red = 1
" Green = 2
" Yellow = 3
" Blue = 4
" Magenta = 5
" Cyan = 6
" White = 7
" STYLES
" bold
" underline
" reverse or inverse
" standout
" none
highlight clear
highlight Win cterm=none ctermfg=default ctermbg=none
highlight TopLine cterm=none ctermfg=blue ctermbg=none
highlight TopLineSel cterm=none ctermfg=blue ctermbg=none
highlight StatusLine cterm=none ctermfg=blue ctermbg=none
highlight Border cterm=none ctermfg=blue ctermbg=none
highlight Selected cterm=bold ctermfg=magenta ctermbg=default
highlight CurrLine cterm=bold ctermfg=default ctermbg=blue
highlight WildMenu cterm=underline,reverse ctermfg=white ctermbg=black
highlight CmdLine cterm=none ctermfg=white ctermbg=black
highlight ErrorMsg cterm=none ctermfg=red ctermbg=black
highlight Directory cterm=none ctermfg=cyan ctermbg=default
highlight Link cterm=none ctermfg=yellow ctermbg=default
highlight BrokenLink cterm=none ctermfg=red ctermbg=default
highlight Socket cterm=none ctermfg=magenta ctermbg=default
highlight Device cterm=none ctermfg=red ctermbg=default
highlight Fifo cterm=none ctermfg=cyan ctermbg=default
highlight Executable cterm=none ctermfg=green ctermbg=default

View File

@@ -0,0 +1,58 @@
" VIFM COLORS
" solarized light
" based on: https://github.com/altercation/vim-colors-solarized/blob/master/colors/solarized.vim
" default = -1 = None, can be used for transparency or default color
" black = 0
" red = 1
" green = 2
" yellow = 3
" blue = 4
" magenta = 5
" cyan = 6
" white = 7
"elseif g:solarized_termcolors != 256 && &t_Co >= 16
"let s:vmode = "cterm"
"let s:base03 = "8"
"let s:base02 = "0"
"let s:base01 = "10"
"let s:base00 = "11"
"let s:base0 = "12"
"let s:base1 = "14"
"let s:base2 = "7"
"let s:base3 = "15"
"let s:yellow = "3"
"let s:orange = "9"
"let s:red = "1"
"let s:magenta = "5"
"let s:violet = "13"
"let s:blue = "4"
"let s:cyan = "6"
"let s:green = "2"
highlight clear
highlight Win cterm=none ctermfg=default ctermbg=none
highlight OtherWin cterm=none ctermfg=default ctermbg=white
highlight TopLine cterm=none ctermfg=blue ctermbg=white
highlight TopLineSel cterm=none,underline ctermfg=blue ctermbg=15
highlight StatusLine cterm=none ctermfg=12 ctermbg=white
highlight Border cterm=none ctermfg=blue ctermbg=white
highlight Selected cterm=reverse ctermfg=14 ctermbg=15
highlight CurrLine cterm=none ctermbg=white
highlight WildMenu cterm=underline,reverse ctermfg=11 ctermbg=white
highlight CmdLine cterm=none ctermfg=11 ctermbg=15
highlight ErrorMsg cterm=none ctermfg=red ctermbg=white
highlight Directory cterm=none ctermfg=blue ctermbg=default
highlight Link cterm=none ctermfg=magenta ctermbg=default
highlight BrokenLink cterm=bold ctermfg=red ctermbg=default
highlight Socket cterm=none ctermfg=violet ctermbg=default
highlight Device cterm=none ctermfg=green ctermbg=default
highlight Fifo cterm=none ctermfg=cyan ctermbg=default
highlight Executable cterm=none ctermfg=red ctermbg=default

View File

@@ -0,0 +1,22 @@
highlight clear
highlight Win cterm=none ctermfg=245 ctermbg=234
highlight Directory cterm=bold ctermfg=166 ctermbg=234
highlight Link cterm=bold ctermfg=yellow ctermbg=234
highlight BrokenLink cterm=reverse ctermfg=red ctermbg=default
highlight Socket cterm=bold ctermfg=125 ctermbg=default
highlight Device cterm=bold ctermfg=red ctermbg=default
highlight Fifo cterm=bold ctermfg=cyan ctermbg=default
highlight Executable cterm=bold ctermfg=0x2aa198 ctermbg=default
highlight Selected cterm=bold ctermfg=125 ctermbg=235
highlight CurrLine cterm=bold ctermfg=245 ctermbg=235
highlight TopLine cterm=none ctermfg=black ctermbg=white
highlight TopLineSel cterm=bold ctermfg=black ctermbg=default
highlight StatusLine cterm=bold ctermfg=black ctermbg=white
highlight WildMenu cterm=underline,reverse ctermfg=white ctermbg=black
highlight CmdLine cterm=none ctermfg=white ctermbg=black
highlight ErrorMsg cterm=none ctermfg=red ctermbg=black
highlight Border cterm=none ctermfg=black ctermbg=white

View File

@@ -0,0 +1,29 @@
" zenburn like color scheme for vifm
" http://kippura.org/zenburnpage/
" Reset all styles first
highlight clear
highlight Border cterm=none ctermfg=235 ctermbg=237
highlight TopLine cterm=none ctermfg=108 ctermbg=235
highlight TopLineSel cterm=bold ctermfg=186 ctermbg=235
highlight Win cterm=none ctermfg=188 ctermbg=237
highlight Directory cterm=none ctermfg=108 ctermbg=237
highlight CurrLine cterm=none ctermfg=223 ctermbg=235
highlight OtherLine cterm=none ctermfg=247 ctermbg=237
highlight Selected cterm=none ctermfg=116 ctermbg=238
highlight JobLine cterm=bold ctermfg=116 ctermbg=238
highlight StatusLine cterm=bold ctermfg=144 ctermbg=236
highlight ErrorMsg cterm=bold ctermfg=115 ctermbg=237
highlight WildMenu cterm=bold ctermfg=235 ctermbg=144
highlight CmdLine cterm=none ctermfg=188 ctermbg=237
highlight Executable cterm=none ctermfg=172 ctermbg=237
highlight Link cterm=none ctermfg=142 ctermbg=237
highlight BrokenLink cterm=none ctermfg=174 ctermbg=237
highlight Device cterm=none ctermfg=228 ctermbg=237
highlight Fifo cterm=none ctermfg=109 ctermbg=237
highlight Socket cterm=none ctermfg=110 ctermbg=237

View File

@@ -0,0 +1,71 @@
" Ranger devicons for ViFM
" https://github.com/cirala/vifm_devicons
"
" Filetypes/directories
set classify=' :dir:/, :exe:, :reg:, :link:,? :?:, ::../::'
" Specific files
set classify+=' ::.Xdefaults,,.Xresources,,.bashprofile,,.bash_profile,,.bashrc,,.dmrc,,.d_store,,.fasd,,.gitconfig,,.gitignore,,.jack-settings,,.mime.types,,.nvidia-settings-rc,,.pam_environment,,.profile,,.recently-used,,.selected_editor,,.xinitpurc,,.zprofile,,.yarnc,,.snclirc,,.tmux.conf,,.urlview,,.config,,.ini,,.user-dirs.dirs,,.mimeapps.list,,.offlineimaprc,,.msmtprc,,.Xauthority,,config::'
set classify+=' ::dropbox::'
set classify+=' ::favicon.*,,README,,readme::'
set classify+=' ::.vim,,.vimrc,,.gvimrc,,.vifm::'
set classify+=' ::gruntfile.coffee,,gruntfile.js,,gruntfile.ls::'
set classify+=' ::gulpfile.coffee,,gulpfile.js,,gulpfile.ls::'
set classify+=' ::ledger::'
set classify+=' ::license,,copyright,,copying,,LICENSE,,COPYRIGHT,,COPYING::'
set classify+=' ::node_modules::'
set classify+=' ::react.jsx::'
" File extensions
set classify+='λ ::*.ml,,*.mli::'
set classify+=' ::*.styl::'
set classify+=' ::*.scss::'
set classify+=' ::*.py,,*.pyc,,*.pyd,,*.pyo::'
set classify+=' ::*.php::'
set classify+=' ::*.markdown,,*.md::'
set classify+=' ::*.json::'
set classify+=' ::*.js::'
set classify+=' ::*.bmp,,*.gif,,*.ico,,*.jpeg,,*.jpg,,*.png,,*.svg,,*.svgz,,*.tga,,*.tiff,,*.xmb,,*.xcf,,*.xpm,,*.xspf,,*.xwd,,*.cr2,,*.dng,,*.3fr,,*.ari,,*.arw,,*.bay,,*.crw,,*.cr3,,*.cap,,*.data,,*.dcs,,*.dcr,,*.drf,,*.eip,,*.erf,,*.fff,,*.gpr,,*.iiq,,*.k25,,*.kdc,,*.mdc,,*.mef,,*.mos,,*.mrw,,*.obm,,*.orf,,*.pef,,*.ptx,,*.pxn,,*.r3d,,*.raf,,*.raw,,*.rwl,,*.rw2,,*.rwz,,*.sr2,,*.srf,,*.srw,,*.tif,,*.x3f,,*.webp,,*.avif,,*.jxl::'
set classify+=' ::*.ejs,,*.htm,,*.html,,*.slim,,*.xml::'
set classify+=' ::*.mustasche::'
set classify+=' ::*.css,,*.less,,*.bat,,*.conf,,*.ini,,*.rc,,*.yml,,*.cfg::'
set classify+=' ::*.rss::'
set classify+=' ::*.coffee::'
set classify+=' ::*.twig::'
set classify+=' ::*.c++,,*.cpp,,*.cxx,,*.h::'
set classify+=' ::*.cc,,*.c::'
set classify+=' ::*.hs,,*.lhs::'
set classify+=' ::*.lua::'
set classify+=' ::*.jl::'
set classify+=' ::*.go::'
set classify+=' ::*.ts::'
set classify+=' ::*.db,,*.dump,,*.sql::'
set classify+=' ::*.sln,,*.suo::'
set classify+=' ::*.exe::'
set classify+=' ::*.diff,,*.sum,,*.md5,,*.sha512::'
set classify+=' ::*.scala::'
set classify+=' ::*.java,,*.jar::'
set classify+=' ::*.xul::'
set classify+=' ::*.clj,,*.cljc::'
set classify+=' ::*.pl,,*.pm,,*.t::'
set classify+=' ::*.cljs,,*.edn::'
set classify+=' ::*.rb::'
set classify+=' ::*.fish,,*.sh,,*.bash::'
set classify+=' ::*.dart::'
set classify+=' ::*.f#,,*.fs,,*.fsi,,*.fsscript,,*.fsx::'
set classify+=' ::*.rlib,,*.rs::'
set classify+=' ::*.d::'
set classify+=' ::*.erl,,*.hrl::'
set classify+=' ::*.ai::'
set classify+=' ::*.psb,,*.psd::'
set classify+=' ::*.jsx::'
set classify+=' ::*.aac,,*.anx,,*.asf,,*.au,,*.axa,,*.flac,,*.m2a,,*.m4a,,*.mid,,*.midi,,*.mp3,,*.mpc,,*.oga,,*.ogg,,*.ogx,,*.ra,,*.ram,,*.rm,,*.spx,,*.wav,,*.wma,,*.ac3::'
set classify+=' ::*.avi,,*.flv,,*.mkv,,*.mov,,*.mp4,,*.mpeg,,*.mpg,,*.webm,,*.av1::'
set classify+=' ::*.epub,,*.pdf,,*.fb2,,*.djvu::'
set classify+=' ::*.7z,,*.apk,,*.bz2,,*.cab,,*.cpio,,*.deb,,*.gem,,*.gz,,*.gzip,,*.lh,,*.lzh,,*.lzma,,*.rar,,*.rpm,,*.tar,,*.tgz,,*.xz,,*.zip,,*.zst::'
set classify+=' ::*.cbr,,*.cbz::'
set classify+=' ::*.log::'
set classify+=' ::*.doc,,*.docx,,*.adoc::'
set classify+=' ::*.xls,,*.xlsmx::'
set classify+=' ::*.pptx,,*.ppt::'

View File

@@ -0,0 +1,6 @@
This directory is dedicated for user-supplied scripts/executables.
vifm modifies its PATH environment variable to let user run those
scripts without specifying full path. All subdirectories are added
as well. File in a subdirectory overrules file with the same name
in parent directories. Restart might be needed to recognize files
in newly created or renamed subdirectories.

6378
configs/vifm/vifm-help.txt Normal file

File diff suppressed because it is too large Load Diff

705
configs/vifm/vifminfo Normal file
View File

@@ -0,0 +1,705 @@
# You can edit this file by hand, but it's recommended not to do that.
# Marks:
'b
/home/mprinz/bin/
..
1625565273
'd
/mnt/DatenBimbo
..
1635158569
'h
/home/mprinz/
..
1625565273
'i
/mnt/ISOs_Bimbo
..
1635158698
's
/mnt/DatenHDD/Service
..
1635158815
# Bookmarks:
# TUI:
ar
q0
v2
ov
m-1
l12
r12
# Left window history (oldest to newest):
d/mnt/DatenHDD/Service
Stick
1
d/mnt/DatenHDD
Austausch RDP
1
d/mnt/DatenHDD/Austausch RDP
Mehraufwendungen 2019.doc
15
d/mnt/DatenHDD
Austausch RDP
1
d/mnt
DatenSSD
3
d/mnt/DatenSSD
VirtualBox
2
d/mnt/DatenSSD/VirtualBox
ArchLinux
1
d/home/mprinz
Nextcloud
28
d/home/mprinz/Nextcloud
Wallpaper
10
d/home/mprinz/Nextcloud/Wallpaper
animals
1
d/home/mprinz/Nextcloud/Wallpaper/animals
001.jpg
1
d/home/mprinz/Nextcloud/Wallpaper
animals
1
d/home/mprinz/Nextcloud
Wallpaper
10
d/home/mprinz
Downloads
25
d/home/mprinz/Downloads
Securepoint
9
d/home/mprinz/Downloads/Securepoint
12.2.1 Preview
2
d/home/mprinz/Downloads/Securepoint/12.2.1 Preview
..
0
d/home/mprinz/Downloads/Securepoint
12.2.1 Preview
2
d/home/mprinz/Downloads
Service
10
d/home/mprinz/Downloads/Service
..
0
d/home/mprinz/Downloads
Securepoint
9
d/home/mprinz/Downloads/Securepoint
standard_12.1.9_20211116_MP-12.1.9.utm
5
d/home/mprinz/Downloads
Securepoint
9
d/home/mprinz
Dokumente
24
d/home/mprinz/Dokumente
..
0
d/home/mprinz
Downloads
25
d/home/mprinz/Downloads
config-OPNsense.localdomain-20210621123909.xml
20
d/home/mprinz
.config
3
d/home/mprinz/.config
vifm
41
d/home/mprinz/.config/vifm
vifmrc
6
d/home/mprinz/.config
vifm
41
d/home/mprinz
Downloads
25
d/home/mprinz/Downloads
config-OPNsense.localdomain-20210621123909.xml
20
d/mnt/DatenBimbo
#Martina_Backup
2
d/mnt/DatenHDD/Service
Stick
1
d/mnt/DatenHDD
Austausch RDP
1
d/mnt/DatenHDD/Austausch RDP
Checkliste Vertrieb eForms.pdf
15
d/mnt/DatenHDD
Service
6
d/mnt/DatenHDD/Service
Stick
1
d/mnt/DatenHDD/Service/Stick
Isynet
7
d/mnt/DatenHDD/Service/Stick/Isynet
Vollversionen
28
d/mnt/DatenHDD/Service/Stick/Isynet/Vollversionen
x.isynet_Vollversion_21.4
2
d/mnt/DatenHDD/Service/Stick/Isynet/Vollversionen/x.isynet_Vollversion_21.4
..
0
d/mnt/DatenHDD/Service/Stick/Isynet/Vollversionen
x.isynet_Vollversion_21.4
2
d/home/mprinz
Dokumente
24
d/home/mprinz/Dokumente
Anleitung Zeitdienst Domäne.pdf
18
d/mnt/DatenHDD/Service
Stick
1
d/mnt/DatenHDD
Austausch RDP
1
d/mnt/DatenHDD/Austausch RDP
Securepoint
3
d/mnt/DatenHDD/Austausch RDP/Securepoint
..
0
d/mnt/DatenHDD/Austausch RDP
Securepoint Kunde
4
d/mnt/DatenHDD/Austausch RDP/Securepoint Kunde
..
0
d/mnt/DatenHDD/Austausch RDP
Securepoint Kunde
4
d/home/mprinz
Dokumente
24
d/home/mprinz/Dokumente
Securepoint
10
d/home/mprinz/Dokumente/Securepoint
..
0
d/home/mprinz/Dokumente
Securepoint
10
d/mnt/DatenHDD/Service
Stick
1
d/mnt/DatenHDD
temp
7
d/mnt/DatenHDD/temp
..
0
d/mnt/DatenHDD
LW I
5
d/mnt/DatenHDD/LW I
Securepoint
2
d/mnt/DatenHDD/LW I/Securepoint
..
0
d/mnt/DatenHDD/LW I
Securepoint
2
d/mnt/DatenHDD
LW E
4
d/mnt/DatenHDD/LW E
Entwicklungen
1
d/mnt/DatenHDD/LW E/Entwicklungen
..
0
d/mnt/DatenHDD/LW E
Entwicklungen
1
d/mnt/DatenHDD
Austausch RDP
1
d/mnt/DatenHDD/Austausch RDP
Securepoint
3
d/mnt/DatenHDD/Austausch RDP/Securepoint
..
0
d/mnt/DatenHDD/Austausch RDP
Securepoint Kunde
4
d/mnt/DatenHDD/Austausch RDP/Securepoint Kunde
..
0
d/mnt/DatenHDD/Austausch RDP
Tools
6
d/mnt/DatenHDD/Austausch RDP/Tools
..
0
d/mnt/DatenHDD/Austausch RDP
Tools
6
d/mnt/DatenHDD
Service
6
d/mnt/DatenHDD/Service
Stick
1
d/mnt/DatenHDD/Service/Stick
mediDOK
8
d/mnt/DatenHDD/Service/Stick/mediDOK
mediDOK_2_5_11_36_oSQL
4
d/mnt/DatenHDD/Service/Stick
mediDOK
8
d/mnt/DatenHDD/Service
USB_120GB
2
d/mnt/DatenHDD/Service/USB_120GB
ServiceCDs
1
d/mnt/DatenHDD/Service/USB_120GB/ServiceCDs
mediDOK
10
d/mnt/DatenHDD/Service/USB_120GB/ServiceCDs/mediDOK
mediDOK_2_5_11_36_oSQL
4
d/mnt/DatenHDD/Service/USB_120GB/ServiceCDs
mediDOK
10
d/mnt/DatenHDD/Service/USB_120GB
ServiceCDs
1
d/mnt/DatenHDD/Service
USB_120GB
2
d/mnt/DatenHDD
Service
6
d/mnt
DatenBimbo
1
d/mnt/DatenBimbo
ServiceCDs
22
d/mnt/DatenBimbo/ServiceCDs
Medidok
11
d/mnt/DatenBimbo/ServiceCDs/Medidok
mediDOK_2_5_11_36_oSQL
6
d/mnt/DatenBimbo/ServiceCDs
Medidok
11
d/mnt/DatenBimbo
scan
19
d/mnt/DatenBimbo/scan
..
0
d/mnt/DatenBimbo
Windhagen
24
d/mnt/DatenBimbo/Windhagen
IP-Adressen.odt
1
d/home/mprinz
Skipte
30
d/home/mprinz/Skipte
sync_stick.sh
1
d
# Right window history (oldest to newest):
D/mnt
DatenHDD
2
D/mnt/DatenHDD
Service
6
D/mnt
DatenSSD
3
D/mnt/DatenSSD
..
0
D/mnt
ISOs_Bimbo
4
D/mnt/ISOs_Bimbo
..
0
D/mnt
DatenHDD
2
D/mnt/DatenHDD
Service
6
D/mnt
DatenBimbo
1
D/mnt/DatenBimbo
scan
19
D/mnt/DatenBimbo/scan
07122021_104337_003.pdf
53
D/mnt/DatenBimbo
Securepoint
21
D/mnt/DatenBimbo/Securepoint
..
0
D/mnt/DatenBimbo
temp
23
D/mnt/DatenBimbo/temp
..
0
D/mnt/DatenBimbo
temp
23
D/mnt
DatenBimbo
1
D/home/mprinz
Dokumente
24
D/home/mprinz/Dokumente
Anleitung Zeitdienst Domäne.pdf
18
D/home/mprinz
Downloads
25
D/home/mprinz/Downloads
md_2_5_12_23_oSQL
5
D/home/mprinz/Downloads/md_2_5_12_23_oSQL
..
0
D/home/mprinz/Downloads
Service
10
D/home/mprinz/Downloads/Service
..
0
D/home/mprinz/Downloads
Service
10
D/home/mprinz
Downloads
25
D/home
mprinz
1
D/
media
11
D/media
mprinz
1
D/media/mprinz
Elements
1
D/media/mprinz/Elements
Daten
3
D/media/mprinz/Elements/Daten
..
0
D/media/mprinz/Elements
neu
6
D/media/mprinz/Elements/neu
..
0
D/media/mprinz/Elements
WindowsImageBackup
12
D/media/mprinz/Elements/WindowsImageBackup
xx-PC
1
D/media/mprinz/Elements/WindowsImageBackup/xx-PC
..
0
D/media/mprinz/Elements/WindowsImageBackup
xx-PC
1
D/media/mprinz/Elements
Updates
11
D/media/mprinz/Elements/Updates
..
0
D/media/mprinz/Elements
Infos
4
D/media/mprinz/Elements/Infos
..
0
D/media/mprinz/Elements
Infos
4
D/media/mprinz
Elements
1
D/media
mprinz
1
D/media/mprinz
MULTIBOOT
1
D/media/mprinz/MULTIBOOT
SonoGDT
4
D/media/mprinz/MULTIBOOT/SonoGDT
..
0
D/media/mprinz/MULTIBOOT
testdisk-7.2-WIP
6
D/media/mprinz/MULTIBOOT/testdisk-7.2-WIP
..
0
D/media/mprinz/MULTIBOOT
TI
7
D/media/mprinz/MULTIBOOT/TI
..
0
D/media/mprinz/MULTIBOOT
Service
3
D/media/mprinz/MULTIBOOT/Service
..
0
D/media/mprinz/MULTIBOOT
Service
3
D/media/mprinz
..
0
D/mnt/DatenHDD/Service
Stick
1
D/mnt/DatenHDD
ISOs
2
D/mnt/DatenHDD/ISOs
garuda-wayfire-linux-zen-210406.iso
7
D/mnt/DatenHDD
LW E
4
D/mnt/DatenHDD/LW E
Entwicklungen
1
D/mnt/DatenHDD
LW I
5
D/mnt/DatenHDD/LW I
Acmeo
1
D/mnt/DatenHDD/LW I/Acmeo
..
0
D/mnt/DatenHDD/LW I
Securepoint
2
D/mnt/DatenHDD/LW I/Securepoint
..
0
D/mnt/DatenHDD/LW I
Spesen
3
D/mnt/DatenHDD/LW I/Spesen
..
0
D/mnt/DatenHDD/LW I
temp
4
D/mnt/DatenHDD/LW I/temp
USB-Stick
2
D/mnt/DatenHDD/LW I/temp/USB-Stick
..
0
D/mnt/DatenHDD/LW I/temp
USB-Stick
2
D/mnt/DatenHDD/LW I
temp
4
D/mnt/DatenHDD
Service
6
D/mnt/DatenHDD/Service
Stick
1
D/mnt/DatenHDD
temp
7
D/mnt/DatenHDD/temp
..
0
D/mnt/DatenHDD
timeshift
8
D/mnt/DatenHDD/timeshift
..
0
D/mnt/DatenHDD
Tools
9
D/mnt/DatenHDD/Tools
balenaEtcher-1.7.7-x64.AppImage
1
D/mnt/DatenHDD
vbox-Backup
10
D/mnt/DatenHDD/vbox-Backup
..
0
D/mnt/DatenHDD
VirtualBox
11
D/mnt/DatenHDD/VirtualBox
..
0
D/mnt/DatenHDD
vbox-Backup
10
D/mnt/DatenHDD/vbox-Backup
ArchLinux
1
D/mnt/DatenHDD/vbox-Backup/ArchLinux
..
0
D/mnt/DatenHDD/vbox-Backup
ArchLinux
1
D/mnt/DatenHDD
Austausch RDP
1
D/mnt
DatenBimbo
1
D/mnt/DatenBimbo
temp
24
D/mnt
DatenSSD
3
D/mnt/DatenSSD
VirtualBox
2
D/mnt/DatenSSD/VirtualBox
..
0
D/mnt/DatenSSD
VirtualBox
2
D/mnt
ISOs_Bimbo
4
D/mnt/ISOs_Bimbo
..
0
D/mnt
ISOs_Bimbo
4
D/home/mprinz
Downloads
25
D
# Command line history (oldest to newest):
:mkdir temp
:help filter
:zf
:mkdir Ubuntu_Firma
:mkdir Arch_home
:mkdir .config
:mkdir ISOs_Bimbo
:wq
:zipo
:mkdir Tools
:mkdir 'Fusion 360'
:mkdir Gehrungsanschlag
:zip
:unzip
:q
# Search history (oldest to newest):
# Prompt history (oldest to newest):
p.emacs.d.org
p.doom.d_org
p.doom.d_leer
p.doom.d
psync_stick.sh
p27102021_154118_001.pdf
pkonfig
pmediDOK_2_5_12_23
# Local filter history (oldest to newest):
# Registers:
""/home/mprinz/Downloads/mediDOK_2_5_12_23
# Directory stack (oldest to newest):
# Trash content:
t/home/mprinz/.local/share/vifm/Trash/000_..bashrc.un~
/home/mprinz/..bashrc.un~
t/home/mprinz/.local/share/vifm/Trash/000_..vimrc.un~
/home/mprinz/..vimrc.un~
t/home/mprinz/.local/share/vifm/Trash/000_.bashrc~
/home/mprinz/.bashrc~
t/home/mprinz/.local/share/vifm/Trash/000_.vimrc~
/home/mprinz/.vimrc~
t/home/mprinz/.local/share/vifm/Trash/000_.config.el.un~
/home/mprinz/.doom.d/.config.el.un~
t/home/mprinz/.local/share/vifm/Trash/000_.init.el.un~
/home/mprinz/.doom.d/.init.el.un~
t/home/mprinz/.local/share/vifm/Trash/000_config.el~
/home/mprinz/.doom.d/config.el~
t/home/mprinz/.local/share/vifm/Trash/000_init.el~
/home/mprinz/.doom.d/init.el~
# State:
f
i1
[.0
[F
F
I1
].0
]F
s0

File diff suppressed because one or more lines are too long

532
configs/vifm/vifmrc Normal file
View File

@@ -0,0 +1,532 @@
" __ __ _____
" / \ / \ / __ \
" / /\ \ / /\ \ | |__| | Manuel Prinz (MP)
" / / \ \/ / \ \ | ___/
" / / \__/ \ \| |
" /_/ \_\_|
"
" Beschreibung: configfile vifm
" letzte Änderung: 22.11.2022
" vim: filetype=vifm :
" Sample configuration file for vifm (last updated: 9 September, 2020)
" You can edit this file by hand.
" The " character at the beginning of a line comments out the line.
" Blank lines are ignored.
" The basic format for each item is shown with an example.
" ------------------------------------------------------------------------------
source ~/.config/vifm/favicons.vifm
" Command used to edit files in various contexts. The default is vim.
" If you would like to use another vi clone such as Elvis or Vile
" you will need to change this setting.
set viewcolumns=*{name}..,16{mtime},7{}.
set vicmd=vim
" set vicmd=elvis\ -G\ termcap
" set vicmd=vile
" This makes vifm perform file operations on its own instead of relying on
" standard utilities like `cp`. While using `cp` and alike is a more universal
" solution, it's also much slower when processing large amounts of files and
" doesn't support progress measuring.
set syscalls
" Trash Directory
" The default is to move files that are deleted with dd or :d to
" the trash directory. If you change this you will not be able to move
" files by deleting them and then using p to put the file in the new location.
" I recommend not changing this until you are familiar with vifm.
" This probably shouldn't be an option.
set trash
" This is how many directories to store in the directory history.
set history=100
" Automatically resolve symbolic links on l or Enter.
set nofollowlinks
" With this option turned on you can run partially entered commands with
" unambiguous beginning using :! (e.g. :!Te instead of :!Terminal or :!Te<tab>).
" set fastrun
" Natural sort of (version) numbers within text.
set sortnumbers
" Maximum number of changes that can be undone.
set undolevels=100
" Use Vim's format of help file (has highlighting and "hyperlinks").
" If you would rather use a plain text help file set novimhelp.
set vimhelp
" If you would like to run an executable file when you
" press Enter, l or Right Arrow, set this.
set norunexec
" List of color schemes to try (picks the first one supported by the terminal)
colorscheme palenight
" colorscheme Default-256 Default
" Format for displaying time in file list. For example:
" TIME_STAMP_FORMAT=%m/%d-%H:%M
" See man date or man strftime for details.
set timefmt=%d.%m.%Y\ %H:%M
" set timefmt=%m/%d\ %H:%M
" Show list of matches on tab completion in command-line mode
set wildmenu
" Display completions in a form of popup with descriptions of the matches
set wildstyle=popup
" Display suggestions in normal, visual and view modes for keys, marks and
" registers (at most 5 files). In other view, when available.
set suggestoptions=normal,visual,view,otherpane,keys,marks,registers
" Ignore case in search patterns unless it contains at least one uppercase
" letter
set ignorecase
set smartcase
" Don't highlight search results automatically
set nohlsearch
" Use increment searching (search while typing)
set incsearch
" Try to leave some space from cursor to upper/lower border in lists
set scrolloff=4
" Don't do too many requests to slow file systems
if !has('win')
set slowfs=curlftpfs
endif
" Set custom status line look
set statusline=" Hint: %z%= %A %10u:%-7g %15E %20d "
"set statusline=" Hint: %z%= %A %10u:%-7g %15s %20d "
" ------------------------------------------------------------------------------
" :mark mark /full/directory/path [filename]
mark b ~/bin/
mark h ~/
" ------------------------------------------------------------------------------
" :com[mand][!] command_name action
" The following macros can be used in a command
" %a is replaced with the user arguments.
" %c the current file under the cursor.
" %C the current file under the cursor in the other directory.
" %f the current selected file, or files.
" %F the current selected file, or files in the other directory.
" %b same as %f %F.
" %d the current directory name.
" %D the other window directory name.
" %m run the command in a menu window
command! df df -h %m 2> /dev/null
command! diff vim -d %f %F
command! unzip unzip %f
command! unzipo unzip %f -d %D
command! zip zip -r %a.zip %f
command! zipo zip -r %D/%a.zip %f
command! run !! ./%f
command! make !!make %a
command! mkcd :mkdir %a | cd %a
command! vgrep vim "+grep %a"
command! reload :write | restart full
" ------------------------------------------------------------------------------
" The file type is for the default programs to be used with
" a file extension.
" :filetype pattern1,pattern2 defaultprogram,program2
" :fileviewer pattern1,pattern2 consoleviewer
" The other programs for the file type can be accessed with the :file command
" The command macros like %f, %F, %d, %D may be used in the commands.
" The %a macro is ignored. To use a % you must put %%.
" For automated FUSE mounts, you must register an extension with :file[x]type
" in one of following formats:
"
" :filetype extensions FUSE_MOUNT|some_mount_command using %SOURCE_FILE and %DESTINATION_DIR variables
" %SOURCE_FILE and %DESTINATION_DIR are filled in by vifm at runtime.
" A sample line might look like this:
" :filetype *.zip,*.jar,*.war,*.ear FUSE_MOUNT|fuse-zip %SOURCE_FILE %DESTINATION_DIR
"
" :filetype extensions FUSE_MOUNT2|some_mount_command using %PARAM and %DESTINATION_DIR variables
" %PARAM and %DESTINATION_DIR are filled in by vifm at runtime.
" A sample line might look like this:
" :filetype *.ssh FUSE_MOUNT2|sshfs %PARAM %DESTINATION_DIR
" %PARAM value is filled from the first line of file (whole line).
" Example first line for SshMount filetype: root@127.0.0.1:/
"
" You can also add %CLEAR if you want to clear screen before running FUSE
" program.
" Pdf
filextype {*.pdf},<application/pdf>
\ {View in Evince}
\ evince %f &,
"filextype {*.pdf},<application/pdf> zathura %c %i &, apvlv %c, xpdf %c
"fileviewer {*.pdf},<application/pdf> pdftotext -nopgbrk %c -
" PostScript
filextype {*.ps,*.eps,*.ps.gz},<application/postscript>
\ {View in zathura}
\ zathura %f,
\ {View in gv}
\ gv %c %i &,
" Djvu
filextype {*.djvu},<image/vnd.djvu>
\ {View in zathura}
\ zathura %f,
\ {View in apvlv}
\ apvlv %f,
" Audio
filetype {*.wav,*.mp3,*.flac,*.m4a,*.wma,*.ape,*.ac3,*.og[agx],*.spx,*.opus},
\<audio/*>
\ {Play using ffplay}
\ ffplay -nodisp -autoexit %c,
\ {Play using MPlayer}
\ mplayer %f,
fileviewer {*.mp3},<audio/mpeg> mp3info
fileviewer {*.flac},<audio/flac> soxi
" Video
filextype {*.avi,*.mp4,*.wmv,*.dat,*.3gp,*.ogv,*.mkv,*.mpg,*.mpeg,*.vob,
\*.fl[icv],*.m2v,*.mov,*.webm,*.ts,*.mts,*.m4v,*.r[am],*.qt,*.divx,
\*.as[fx]},
\<video/*>
\ {View using ffplay}
\ ffplay -fs -autoexit %f,
\ {View using Dragon}
\ dragon %f:p,
\ {View using mplayer}
\ mplayer %f,
fileviewer {*.avi,*.mp4,*.wmv,*.dat,*.3gp,*.ogv,*.mkv,*.mpg,*.mpeg,*.vob,
\*.fl[icv],*.m2v,*.mov,*.webm,*.ts,*.mts,*.m4v,*.r[am],*.qt,*.divx,
\*.as[fx]},
\<video/*>
\ ffprobe -pretty %c 2>&1
" Web
filextype {*.html,*.htm},<text/html>
\ {Open with dwb}
\ dwb %f %i &,
\ {Open with firefox}
\ firefox %f &,
\ {Open with uzbl}
\ uzbl-browser %f %i &,
filetype {*.html,*.htm},<text/html> links, lynx
" Object
filetype {*.o},<application/x-object> nm %f | less
" Man page
filetype {*.[1-8]},<text/troff> man ./%c
fileviewer {*.[1-8]},<text/troff> man ./%c | col -b
" Images
filextype {*.bmp,*.jpg,*.jpeg,*.png,*.gif,*.xpm},<image/*>
\ {View in sxiv}
\ sxiv -g 1650x946 %f &,
\ {View in gpicview}
\ gpicview %c,
\ {View in shotwell}
\ shotwell,
fileviewer {*.bmp,*.jpg,*.jpeg,*.png,*.gif,*.xpm},<image/*>
\ identify %f
" OpenRaster
filextype *.ora
\ {Edit in MyPaint}
\ mypaint %f,
" Mindmap
filextype *.vym
\ {Open with VYM}
\ vym %f &,
" MD5
filetype *.md5
\ {Check MD5 hash sum}
\ md5sum -c %f %S,
" SHA1
filetype *.sha1
\ {Check SHA1 hash sum}
\ sha1sum -c %f %S,
" SHA256
filetype *.sha256
\ {Check SHA256 hash sum}
\ sha256sum -c %f %S,
" SHA512
filetype *.sha512
\ {Check SHA512 hash sum}
\ sha512sum -c %f %S,
" GPG signature
filetype {*.asc},<application/pgp-signature>
\ {Check signature}
\ !!gpg --verify %c,
" Torrent
filetype {*.torrent},<application/x-bittorrent> ktorrent %f &
fileviewer {*.torrent},<application/x-bittorrent> dumptorrent -v %c
" FuseZipMount
filetype {*.zip,*.jar,*.war,*.ear,*.oxt,*.apkg},
\<application/zip,application/java-archive>
\ {Mount with fuse-zip}
\ FUSE_MOUNT|fuse-zip %SOURCE_FILE %DESTINATION_DIR,
\ {View contents}
\ zip -sf %c | less,
\ {Extract here}
\ tar -xf %c,
fileviewer *.zip,*.jar,*.war,*.ear,*.oxt zip -sf %c
" ArchiveMount
filetype {*.tar,*.tar.bz2,*.tbz2,*.tgz,*.tar.gz,*.tar.xz,*.txz},
\<application/x-tar>
\ {Mount with archivemount}
\ FUSE_MOUNT|archivemount %SOURCE_FILE %DESTINATION_DIR,
fileviewer *.tgz,*.tar.gz tar -tzf %c
fileviewer *.tar.bz2,*.tbz2 tar -tjf %c
fileviewer *.tar.txz,*.txz xz --list %c
fileviewer {*.tar},<application/x-tar> tar -tf %c
" Rar2FsMount and rar archives
filetype {*.rar},<application/x-rar>
\ {Mount with rar2fs}
\ FUSE_MOUNT|rar2fs %SOURCE_FILE %DESTINATION_DIR,
fileviewer {*.rar},<application/x-rar> unrar v %c
" IsoMount
filetype {*.iso},<application/x-iso9660-image>
\ {Mount with fuseiso}
\ FUSE_MOUNT|fuseiso %SOURCE_FILE %DESTINATION_DIR,
" SshMount
filetype *.ssh
\ {Mount with sshfs}
\ FUSE_MOUNT2|sshfs %PARAM %DESTINATION_DIR %FOREGROUND,
" FtpMount
filetype *.ftp
\ {Mount with curlftpfs}
\ FUSE_MOUNT2|curlftpfs -o ftp_port=-,,disable_eprt %PARAM %DESTINATION_DIR %FOREGROUND,
" Fuse7z and 7z archives
filetype {*.7z},<application/x-7z-compressed>
\ {Mount with fuse-7z}
\ FUSE_MOUNT|fuse-7z %SOURCE_FILE %DESTINATION_DIR,
fileviewer {*.7z},<application/x-7z-compressed> 7z l %c
" Office files
filextype {*.odt,*.doc,*.docx,*.xls,*.xlsx,*.odp,*.pptx,*.ppt},
\<application/vnd.openxmlformats-officedocument.*,
\application/msword,
\application/vnd.ms-excel>
\ libreoffice %f &
fileviewer {*.doc},<application/msword> catdoc %c
fileviewer {*.docx},
\<application/
\vnd.openxmlformats-officedocument.wordprocessingml.document>
\ docx2txt.pl %f -
" TuDu files
filetype *.tudu tudu -f %c
" Qt projects
filextype *.pro qtcreator %f &
" Directories
filextype */
\ {View in thunar}
\ Thunar %f &,
" Syntax highlighting in preview
"
" Explicitly set highlight type for some extensions
"
" 256-color terminal
" fileviewer *.[ch],*.[ch]pp highlight -O xterm256 -s dante --syntax c %c
" fileviewer Makefile,Makefile.* highlight -O xterm256 -s dante --syntax make %c
"
" 16-color terminal
" fileviewer *.c,*.h highlight -O ansi -s dante %c
"
" Or leave it for automatic detection
"
" fileviewer *[^/] pygmentize -O style=monokai -f console256 -g
" Displaying pictures in terminal
"
" fileviewer *.jpg,*.png shellpic %c
" Open all other files with default system programs (you can also remove all
" :file[x]type commands above to ensure they don't interfere with system-wide
" settings). By default all unknown files are opened with 'vi[x]cmd'
" uncommenting one of lines below will result in ignoring 'vi[x]cmd' option
" for unknown file types.
" For *nix:
" filetype * xdg-open
" For OS X:
" filetype * open
" For Windows:
" filetype * start, explorer
" ------------------------------------------------------------------------------
" What should be saved automatically between vifm sessions. Drop "savedirs"
" value if you don't want vifm to remember last visited directories for you.
set vifminfo=dhistory,savedirs,chistory,state,tui,shistory,
\phistory,fhistory,dirstack,registers,bookmarks,bmarks
" ------------------------------------------------------------------------------
" Examples of configuring both panels
" Customize view columns a bit (enable ellipsis for truncated file names)
"
" set viewcolumns=-{name}..,6{}.
" Filter-out build and temporary files
"
" filter! {*.lo,*.o,*.d,*.class,*.pyc,*.pyo,.*~}
" ------------------------------------------------------------------------------
" Sample mappings
nnoremap gp :!sxiv -otr -g 1650x946 %d &<cr>
nnoremap uz :unzip<cr>
" Start shell in current directory
nnoremap s :shell<cr>
" Display sorting dialog
nnoremap S :sort<cr>
" Toggle visibility of preview window
nnoremap w :view<cr>
vnoremap w :view<cr>gv
" Open file in existing instance of gvim
nnoremap o :!gvim --remote-tab-silent %f<cr>
" Open file in new instance of gvim
nnoremap O :!gvim %f<cr>
" Open file in the background using its default program
nnoremap gb :file &<cr>l
" Interaction with system clipboard
if has('win')
" Yank current directory path to Windows clipboard with forward slashes
nnoremap yp :!echo %"d:gs!\!/! %i | clip<cr>
" Yank path to current file to Windows clipboard with forward slashes
nnoremap yf :!echo %"c:gs!\!/! %i | clip<cr>
elseif executable('xclip')
" Yank current directory path into the clipboard
nnoremap yd :!echo %d | xclip -selection clipboard %i<cr>:echo expand('%"c:p') "is yanked to clipboard"<cr>
" Yank current file path into the clipboard
nnoremap yf :!echo %c:p | xclip -selection clipboard %i<cr>:echo expand('%"c:p') "is yanked to clipboard"<cr>
" yank current filename without path into the clipboard
nnoremap yn :!echo %c | xclip -selection clipboard %i<cr>:echo expand('%"c') "is yanked to clipboard"<cr>
elseif executable('xsel')
" Yank current directory path into primary and selection clipboards
nnoremap yd :!echo -n %d | xsel --input --primary %i &&
\ echo -n %d | xsel --clipboard --input %i<cr>
" Yank current file path into into primary and selection clipboards
nnoremap yf :!echo -n %c:p | xsel --input --primary %i &&
\ echo -n %c:p | xsel --clipboard --input %i<cr>
endif
" Mappings for faster renaming
nnoremap I cw<c-a>
nnoremap cc cw<c-u>
nnoremap A cw
nnoremap R cW<c-a>
" Open console in current directory
nnoremap ,t :!xterm &<cr>
" Open editor to edit vifmrc and apply settings after returning to vifm
nnoremap ,c :write | edit $MYVIFMRC | restart full<cr>
" Open gvim to edit vifmrc
nnoremap ,C :!gvim --remote-tab-silent $MYVIFMRC &<cr>
" Toggle wrap setting on ,w key
nnoremap ,w :set wrap!<cr>
" Example of standard two-panel file managers mappings
nnoremap <f3> :!less %f<cr>
nnoremap <f4> :edit<cr>
nnoremap <f5> :copy<cr>
nnoremap <f6> :move<cr>
nnoremap <f7> :mkdir<space>
nnoremap <f8> :delete<cr>
" Midnight commander alike mappings
" Open current directory in the other pane
nnoremap <a-i> :sync<cr>
" Open directory under cursor in the other pane
nnoremap <a-o> :sync %c<cr>
" Swap panes
nnoremap <c-u> <c-w>x
" ------------------------------------------------------------------------------
" Various customization examples
" Use ag (the silver searcher) instead of grep
"
" set grepprg='ag --line-numbers %i %a %s'
" Add additional place to look for executables
"
" let $PATH = $HOME.'/bin/fuse:'.$PATH
" Block particular shortcut
"
" nnoremap <left> <nop>
" Export IPC name of current instance as environment variable and use it to
" communicate with the instance later.
"
" It can be used in some shell script that gets run from inside vifm, for
" example, like this:
" vifm --server-name "$VIFM_SERVER_NAME" --remote +"cd '$PWD'"
"
" let $VIFM_SERVER_NAME = v:servername