mirror of
https://github.com/itchyny/lightline.vim.git
synced 2025-11-13 05:53:51 -05:00
22
README.md
22
README.md
@@ -1,5 +1,5 @@
|
||||
# lightline.vim
|
||||
A light and configurable statusline for Vim
|
||||
A light and configurable statusline/tabline for Vim
|
||||
|
||||
https://github.com/itchyny/lightline.vim
|
||||
|
||||
@@ -58,7 +58,7 @@ landscape is my colorscheme, which is a high-contrast cui-supported colorscheme,
|
||||
|
||||
## Spirit of this plugin
|
||||
+ Minimalism. The core script is very small.
|
||||
+ Configurability. You can create your own component and easily add to the statusline.
|
||||
+ Configurability. You can create your own component and easily add to the statusline/tabline.
|
||||
+ Orthogonality. Any plugin should not change the settings of another plugin. Such plugin-crossing settings should be written by users in `.vimrc`.
|
||||
|
||||
## Author
|
||||
@@ -598,7 +598,7 @@ let g:lightline = {
|
||||
\ 'colorscheme': 'wombat',
|
||||
\ 'active': {
|
||||
\ 'left': [ [ 'mode', 'paste' ], [ 'fugitive', 'filename' ], ['ctrlpmark'] ],
|
||||
\ 'right': [[ 'lineinfo', 'syntastic' ], ['percent'], [ 'fileformat', 'fileencoding', 'filetype']]
|
||||
\ 'right': [ [ 'syntastic', 'lineinfo' ], ['percent'], [ 'fileformat', 'fileencoding', 'filetype' ] ]
|
||||
\ },
|
||||
\ 'component_function': {
|
||||
\ 'fugitive': 'MyFugitive',
|
||||
@@ -607,9 +607,14 @@ let g:lightline = {
|
||||
\ 'filetype': 'MyFiletype',
|
||||
\ 'fileencoding': 'MyFileencoding',
|
||||
\ 'mode': 'MyMode',
|
||||
\ 'syntastic': 'SyntasticStatuslineFlag',
|
||||
\ 'ctrlpmark': 'CtrlPMark',
|
||||
\ },
|
||||
\ 'component_expand': {
|
||||
\ 'syntastic': 'SyntasticStatuslineFlag',
|
||||
\ },
|
||||
\ 'component_type': {
|
||||
\ 'syntastic': 'error',
|
||||
\ },
|
||||
\ 'subseparator': { 'left': '|', 'right': '|' }
|
||||
\ }
|
||||
|
||||
@@ -705,6 +710,15 @@ function! TagbarStatusFunc(current, sort, fname, ...) abort
|
||||
return lightline#statusline(0)
|
||||
endfunction
|
||||
|
||||
augroup AutoSyntastic
|
||||
autocmd!
|
||||
autocmd BufWritePost *.c,*.cpp call s:syntastic()
|
||||
augroup END
|
||||
function! s:syntastic()
|
||||
SyntasticCheck
|
||||
call lightline#update()
|
||||
endfunction
|
||||
|
||||
let g:unite_force_overwrite_statusline = 0
|
||||
let g:vimfiler_force_overwrite_statusline = 0
|
||||
let g:vimshell_force_overwrite_statusline = 0
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
" Version: 0.0
|
||||
" Author: itchyny
|
||||
" License: MIT License
|
||||
" Last Change: 2013/08/31 19:42:33.
|
||||
" Last Change: 2013/09/07 16:39:34.
|
||||
" =============================================================================
|
||||
|
||||
let s:save_cpo = &cpo
|
||||
@@ -27,15 +27,23 @@ endfunction
|
||||
|
||||
function! lightline#init()
|
||||
let s:lightline = deepcopy(get(g:, 'lightline', {}))
|
||||
let s:lightline.active = get(s:lightline, 'active', {})
|
||||
for k in ['active', 'inactive', 'tabline', 'tab', 'mode_map', 'mode_fallback',
|
||||
\ 'component', 'component_visible_condition', 'component_function', 'component_expand', 'component_type',
|
||||
\ 'tab_component', 'tab_component_function', 'separator', 'subseparator' ]
|
||||
if !has_key(s:lightline, k) | let s:lightline[k] = {} | endif
|
||||
endfor
|
||||
call extend(s:lightline.active, {
|
||||
\ 'left': [ [ 'mode', 'paste' ], [ 'readonly', 'filename', 'modified' ] ],
|
||||
\ 'right': [ [ 'lineinfo' ], [ 'percent' ], [ 'fileformat', 'fileencoding', 'filetype' ] ] }, 'keep')
|
||||
let s:lightline.inactive = get(s:lightline, 'inactive', {})
|
||||
call extend(s:lightline.inactive, {
|
||||
\ 'left': [ [ 'filename' ] ],
|
||||
\ 'right': [ [ 'lineinfo' ], [ 'percent' ] ] }, 'keep')
|
||||
let s:lightline.mode_map = get(s:lightline, 'mode_map', {})
|
||||
call extend(s:lightline.tabline, {
|
||||
\ 'left': [ [ 'tabs' ] ],
|
||||
\ 'right': [ [ 'close' ] ] }, 'keep')
|
||||
call extend(s:lightline.tab, {
|
||||
\ 'active': [ 'tabnum', 'filename', 'modified' ],
|
||||
\ 'inactive': [ 'tabnum', 'filename', 'modified' ] }, 'keep')
|
||||
call extend(s:lightline.mode_map, {
|
||||
\ 'n': 'NORMAL', 'i': 'INSERT', 'R': 'REPLACE', 'v': 'VISUAL',
|
||||
\ 'V': 'V-LINE', 'c': 'COMMAND', "\<C-v>": 'V-BLOCK', 's': 'SELECT',
|
||||
@@ -43,25 +51,25 @@ function! lightline#init()
|
||||
let s:lightline._mode_ = {
|
||||
\ 'n': 'normal', 'i': 'insert', 'R': 'replace', 'v': 'visual', 'V': 'visual',
|
||||
\ 'c': 'command', "\<C-v>": 'visual', 's': 'select', 'S': 'select', "\<C-s>": 'select' }
|
||||
let s:lightline.mode_fallback = get(s:lightline, 'mode_fallback', {})
|
||||
call extend(s:lightline.mode_fallback, { 'replace': 'insert', 'select': 'visual' })
|
||||
let s:lightline.component = get(s:lightline, 'component', {})
|
||||
call extend(s:lightline.component, {
|
||||
\ 'mode': '%{lightline#mode()}',
|
||||
\ 'absolutepath': '%F', 'relativepath': '%f', 'filename': '%t', 'modified': '%M', 'bufnum': '%n',
|
||||
\ 'paste': '%{&paste?"PASTE":""}', 'readonly': '%R', 'charvalue': '%b', 'charvaluehex': '%B',
|
||||
\ 'fileencoding': '%{strlen(&fenc)?&fenc:&enc}', 'fileformat': '%{&fileformat}',
|
||||
\ 'filetype': '%{strlen(&filetype)?&filetype:"no ft"}', 'percent': '%3p%%', 'percentwin': '%P',
|
||||
\ 'lineinfo': '%3l:%-2v', 'line': '%l', 'column': '%c' }, 'keep')
|
||||
let s:lightline.component_visible_condition = get(s:lightline, 'component_visible_condition', {})
|
||||
\ 'lineinfo': '%3l:%-2v', 'line': '%l', 'column': '%c', 'close': '%999X X ' }, 'keep')
|
||||
call extend(s:lightline.component_visible_condition, {
|
||||
\ 'modified': '&modified||!&modifiable', 'readonly': '&readonly', 'paste': '&paste' }, 'keep')
|
||||
let s:lightline.component_function = get(s:lightline, 'component_function', {})
|
||||
let s:lightline.separator = get(s:lightline, 'separator', {})
|
||||
call extend(s:lightline.component_expand, { 'tabs': 'lightline#tabs' }, 'keep')
|
||||
call extend(s:lightline.component_type, { 'tabs': 'tabsel', 'close': 'raw' }, 'keep')
|
||||
call extend(s:lightline.tab_component_function, {
|
||||
\ 'filename': 'lightline#tab#filename', 'modified': 'lightline#tab#modified',
|
||||
\ 'readonly': 'lightline#tab#readonly', 'tabnum': 'lightline#tab#tabnum' }, 'keep')
|
||||
call extend(s:lightline.separator, { 'left': '', 'right': '' }, 'keep')
|
||||
let s:lightline.subseparator = get(s:lightline, 'subseparator', {})
|
||||
call extend(s:lightline.subseparator, { 'left': '|', 'right': '|' }, 'keep')
|
||||
call extend(s:lightline, { 'palette': {}, 'colorscheme': 'default' }, 'keep')
|
||||
set tabline=%!lightline#tabline()
|
||||
endfunction
|
||||
|
||||
function! lightline#colorscheme()
|
||||
@@ -81,16 +89,42 @@ function! lightline#mode()
|
||||
return get(s:lightline.mode_map, mode(), s:lightline.mode_map['?'])
|
||||
endfunction
|
||||
|
||||
let s:mode = ''
|
||||
function! lightline#link(...)
|
||||
let mode = get(s:lightline._mode_, a:0 ? a:1 : mode(), 'normal')
|
||||
for i in range(len(s:lightline.active.left))
|
||||
if s:mode == mode | return '' | endif
|
||||
let s:mode = mode
|
||||
let [left, right, types] = [s:lightline.active.left, s:lightline.active.right, values(s:lightline.component_type)]
|
||||
for i in range(len(left))
|
||||
exec printf('hi link LightLineLeft_active_%d LightLineLeft_%s_%d', i, mode, i)
|
||||
exec printf('hi link LightLineLeft_active_%d_%d LightLineLeft_%s_%d_%d', i, i + 1, mode, i, i + 1)
|
||||
for j in types
|
||||
exec printf('hi link LightLineLeft_active_%d_%s LightLineLeft_%s_%d_%s', i, j, mode, i, j)
|
||||
exec printf('hi link LightLineLeft_active_%s_%d LightLineLeft_%s_%s_%d', j, i, mode, j, i)
|
||||
endfor
|
||||
endfor
|
||||
exec printf('hi link LightLineMiddle_active LightLineMiddle_%s', mode)
|
||||
for i in range(len(s:lightline.active.right))
|
||||
for i in range(len(right))
|
||||
exec printf('hi link LightLineRight_active_%d LightLineRight_%s_%d', i, mode, i)
|
||||
exec printf('hi link LightLineRight_active_%d_%d LightLineRight_%s_%d_%d', i, i + 1, mode, i, i + 1)
|
||||
for j in types
|
||||
exec printf('hi link LightLineRight_active_%d_%s LightLineRight_%s_%d_%s', i, j, mode, i, j)
|
||||
exec printf('hi link LightLineRight_active_%s_%d LightLineRight_%s_%s_%d', j, i, mode, j, i)
|
||||
endfor
|
||||
endfor
|
||||
for j in types
|
||||
exec printf('hi link LightLineLeft_active_%s LightLineLeft_%s_%s', j, mode, j)
|
||||
exec printf('hi link LightLineRight_active_%s LightLineRight_%s_%s', j, mode, j)
|
||||
exec printf('hi link LightLineLeft_active_%s_%d LightLineLeft_%s_%s_%d', j, len(left), mode, j, len(left))
|
||||
exec printf('hi link LightLineLeft_active_%d_%s LightLineLeft_%s_%d_%s', len(left), j, mode, len(left), j)
|
||||
exec printf('hi link LightLineRight_active_%s_%d LightLineRight_%s_%s_%d', j, len(right), mode, j, len(right))
|
||||
exec printf('hi link LightLineRight_active_%d_%s LightLineRight_%s_%d_%s', len(right), j, mode, len(right), j)
|
||||
for k in types
|
||||
exec printf('hi link LightLineLeft_active_%s_%s LightLineLeft_%s_%s_%s', j, k, mode, j, k)
|
||||
exec printf('hi link LightLineLeft_active_%s_%s LightLineLeft_%s_%s_%s', k, j, mode, k, j)
|
||||
exec printf('hi link LightLineRight_active_%s_%s LightLineRight_%s_%s_%s', j, k, mode, j, k)
|
||||
exec printf('hi link LightLineRight_active_%s_%s LightLineRight_%s_%s_%s', k, j, mode, k, j)
|
||||
endfor
|
||||
endfor
|
||||
return ''
|
||||
endfunction
|
||||
@@ -100,25 +134,33 @@ function! s:term(l)
|
||||
endfunction
|
||||
|
||||
function! lightline#highlight()
|
||||
let [c, f] = [s:lightline.palette, s:lightline.mode_fallback]
|
||||
let [c, f, g] = [s:lightline.palette, s:lightline.mode_fallback, s:lightline.component_type]
|
||||
if (has('win32') || has('win64')) && !has('gui_running')
|
||||
for u in values(c)
|
||||
for v in values(u)
|
||||
for _ in v | let [_[2], _[3]] = [lightline#colortable#gui2cui(_[0], _[2]), lightline#colortable#gui2cui(_[1], _[3])] | endfor
|
||||
endfor
|
||||
endfor
|
||||
endif
|
||||
let [s:lightline.llen, s:lightline.rlen] = [len(c.normal.left), len(c.normal.right)]
|
||||
for mode in ['normal', 'insert', 'replace', 'visual', 'inactive', 'command', 'select']
|
||||
let [s:lightline.tab_llen, s:lightline.tab_rlen] = [len(has_key(c,'tabline') ? c.tabline.left : c.normal.left), len(has_key(c,'tabline') ? c.tabline.right : c.normal.right)]
|
||||
for mode in ['normal', 'insert', 'replace', 'visual', 'inactive', 'command', 'select', 'tabline']
|
||||
let d = has_key(c, mode) ? mode : has_key(f, mode) && has_key(c, f[mode]) ? f[mode] : 'normal'
|
||||
let left = d == 'inactive' ? s:lightline.inactive.left : s:lightline.active.left
|
||||
let right = d == 'inactive' ? s:lightline.inactive.right : s:lightline.active.right
|
||||
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 l = has_key(c,d) && has_key(c[d],'left') ? c[d].left : has_key(f,d) && has_key(c,f[d]) && has_key(c[f[d]],'left') ? c[f[d]].left : c.normal.left
|
||||
let r = has_key(c,d) && has_key(c[d],'right') ? c[d].right : has_key(f,d) && has_key(c,f[d]) && has_key(c[f[d]],'right') ? c[f[d]].right : c.normal.right
|
||||
let m = has_key(c,d) && has_key(c[d],'middle') ? c[d].middle[0] : has_key(f,d) && has_key(c,f[d]) && has_key(c[f[d]],'middle') ? c[f[d]].middle[0] : c.normal.middle[0]
|
||||
if (has('win32') || has('win64')) && !has('gui_running')
|
||||
for _ in l | let [_[2], _[3]] = [lightline#colortable#gui2cui(_[0], _[2]), lightline#colortable#gui2cui(_[1], _[3])] | endfor
|
||||
for _ in r | let [_[2], _[3]] = [lightline#colortable#gui2cui(_[0], _[2]), lightline#colortable#gui2cui(_[1], _[3])] | endfor
|
||||
let [m[2], m[3]] = [lightline#colortable#gui2cui(m[0], m[2]), lightline#colortable#gui2cui(_[1], m[3])]
|
||||
endif
|
||||
for i in range(len(left))
|
||||
let [li, lj] = [i < len(l) ? l[i] : m, i + 1 < len(l) ? l[i + 1] : m]
|
||||
exec printf('hi LightLineLeft_%s_%d guifg=%s guibg=%s ctermfg=%d ctermbg=%d %s', mode, i, li[0], li[1], li[2], li[3], s:term(li))
|
||||
exec printf('hi LightLineLeft_%s_%d_%d guifg=%s guibg=%s ctermfg=%d ctermbg=%d', mode,
|
||||
\ i, i+1, i>=len(l) ? m[i+1==len(left)] : li[1], i==len(left)-1 ? m[1] : lj[1], i>=len(l) ? m[2+(i+1==len(left))] : li[3], i==len(left)-1 ? m[3] : lj[3])
|
||||
for j in values(g)
|
||||
let s = has_key(c,d) && has_key(c[d],j) ? c[d][j][0] : has_key(c,'tabline') && has_key(c.tabline,j) ? c.tabline[j][0] : has_key(c.normal,j) ? c.normal[j][0] : l[0]
|
||||
exec printf('hi LightLineLeft_%s_%d_%s guifg=%s guibg=%s ctermfg=%d ctermbg=%d %s', mode, i, j, li[1], s[1], li[3], s[3], s:term(li))
|
||||
exec printf('hi LightLineLeft_%s_%s_%d guifg=%s guibg=%s ctermfg=%d ctermbg=%d %s', mode, j, i, s[1], li[1], s[3], li[3], s:term(li))
|
||||
endfor
|
||||
endfor
|
||||
exec printf('hi LightLineMiddle_%s guifg=%s guibg=%s ctermfg=%d ctermbg=%d %s', mode, m[0], m[1], m[2], m[3], s:term(m))
|
||||
for i in range(len(right))
|
||||
@@ -126,14 +168,35 @@ function! lightline#highlight()
|
||||
exec printf('hi LightLineRight_%s_%d_%d guifg=%s guibg=%s ctermfg=%d ctermbg=%d', mode,
|
||||
\ i, i+1, i>=len(r) ? m[i+1==len(right)] : ri[1], i==len(right)-1 ? m[1] : rj[1], i>=len(r) ? m[2+(i+1==len(right))] : ri[3], i==len(right)-1 ? m[3] : rj[3])
|
||||
exec printf('hi LightLineRight_%s_%d guifg=%s guibg=%s ctermfg=%d ctermbg=%d %s', mode, i, ri[0], ri[1], ri[2], ri[3], s:term(ri))
|
||||
for j in values(g)
|
||||
let s = has_key(c,d) && has_key(c[d],j) ? c[d][j][0] : has_key(c,'tabline') && has_key(c.tabline,j) ? c.tabline[j][0] : has_key(c.normal,j) ? c.normal[j][0] : l[0]
|
||||
exec printf('hi LightLineRight_%s_%d_%s guifg=%s guibg=%s ctermfg=%d ctermbg=%d %s', mode, i, j, ri[1], s[1], ri[3], s[3], s:term(ri))
|
||||
exec printf('hi LightLineRight_%s_%s_%d guifg=%s guibg=%s ctermfg=%d ctermbg=%d %s', mode, j, i, s[1], ri[1], s[3], ri[3], s:term(ri))
|
||||
endfor
|
||||
endfor
|
||||
for j in values(g)
|
||||
let s = has_key(c,d) && has_key(c[d],j) ? c[d][j][0] : has_key(c,'tabline') && has_key(c.tabline,j) ? c.tabline[j][0] : has_key(c.normal,j) ? c.normal[j][0] : l[0]
|
||||
exec printf('hi LightLineLeft_%s_%s guifg=%s guibg=%s ctermfg=%d ctermbg=%d %s', mode, j, s[0], s[1], s[2], s[3], s:term(s))
|
||||
exec printf('hi LightLineRight_%s_%s guifg=%s guibg=%s ctermfg=%d ctermbg=%d %s', mode, j, s[0], s[1], s[2], s[3], s:term(s))
|
||||
exec printf('hi LightLineLeft_%s_%s_%d guifg=%s guibg=%s ctermfg=%d ctermbg=%d %s', mode, j, len(left), s[1], m[1], s[3], m[3], s:term(s))
|
||||
exec printf('hi LightLineLeft_%s_%d_%s guifg=%s guibg=%s ctermfg=%d ctermbg=%d %s', mode, len(left), j, m[1], s[1], m[3], s[3], s:term(m))
|
||||
exec printf('hi LightLineRight_%s_%s_%d guifg=%s guibg=%s ctermfg=%d ctermbg=%d %s', mode, j, len(right), s[1], m[1], s[3], m[3], s:term(s))
|
||||
exec printf('hi LightLineRight_%s_%d_%s guifg=%s guibg=%s ctermfg=%d ctermbg=%d %s', mode, len(right), j, m[1], s[1], m[3], s[3], s:term(m))
|
||||
for k in values(g)
|
||||
let t = has_key(c,d) && has_key(c[d],k) ? c[d][k][0] : has_key(c,'tabline') && has_key(c.tabline,k) ? c.tabline[k][0] : has_key(c.normal,k) ? c.normal[k][0] : l[0]
|
||||
exec printf('hi LightLineLeft_%s_%s_%s guifg=%s guibg=%s ctermfg=%d ctermbg=%d %s', mode, j, k, s[1], t[1], s[3], t[3], s:term(s))
|
||||
exec printf('hi LightLineLeft_%s_%s_%s guifg=%s guibg=%s ctermfg=%d ctermbg=%d %s', mode, k, j, t[1], s[1], t[3], s[3], s:term(t))
|
||||
exec printf('hi LightLineRight_%s_%s_%s guifg=%s guibg=%s ctermfg=%d ctermbg=%d %s', mode, j, k, s[1], t[1], s[3], t[3], s:term(s))
|
||||
exec printf('hi LightLineRight_%s_%s_%s guifg=%s guibg=%s ctermfg=%d ctermbg=%d %s', mode, k, j, t[1], s[1], t[3], s[3], s:term(t))
|
||||
endfor
|
||||
endfor
|
||||
endfor
|
||||
endfunction
|
||||
|
||||
function! s:subseparator(x, y, s)
|
||||
function! s:subseparator(x, y, s, a, b)
|
||||
let [c, f, v] = [ s:lightline.component, s:lightline.component_function, s:lightline.component_visible_condition ]
|
||||
return '%{('.(has_key(f,a:x)?'!!strlen(exists("*'.f[a:x].'")?'.f[a:x].'():"")':get(v,a:x,has_key(c,a:x)?"1":"0")).')*(('.join(map(copy(a:y),
|
||||
\'(has_key(f,v:val)?"!!strlen(exists(\"*".f[v:val]."\")?".f[v:val]."():\"\")":get(v,v:val,has_key(c,v:val)?"1":"0"))'),')+(')."))?('".a:s."'):''}"
|
||||
return '%{('.(a:a?"1":has_key(f,a:x)?'!!strlen(exists("*'.f[a:x].'")?'.f[a:x].'():"")':get(v,a:x,has_key(c,a:x)?"1":"0")).')*(('.join(map(copy(a:y),
|
||||
\'(has_key(f,v:val)?"!!strlen(exists(\"*".f[v:val]."\")?".f[v:val]."():\"\")":get(v,v:val,has_key(c,v:val)?"1":"1"))'),')+(')."))?('".a:s."'):''}"
|
||||
endfunction
|
||||
|
||||
function! lightline#concatenate(x, s)
|
||||
@@ -146,30 +209,132 @@ function! lightline#concatenate(x, s)
|
||||
endfunction
|
||||
|
||||
function! lightline#statusline(inactive)
|
||||
let [_, c, f, l, r] = [ '%{lightline#link()}', s:lightline.component, s:lightline.component_function, s:lightline.llen, s:lightline.rlen ]
|
||||
let mode = a:inactive ? 'inactive' : 'active'
|
||||
let left = has_key(s:lightline, mode) ? s:lightline[mode].left : s:lightline.active.left
|
||||
let right = has_key(s:lightline, mode) ? s:lightline[mode].right : s:lightline.active.right
|
||||
for i in range(len(left))
|
||||
let _ .= printf('%%#LightLineLeft_%s_%d#', mode, i)
|
||||
for j in range(len(left[i]))
|
||||
let _ .= substitute('%( '.(has_key(f,left[i][j])?'%{exists("*'.f[left[i][j]].'")?'.f[left[i][j]].'():""}':get(c,left[i][j],'')).' %)', '^%( %)', '', '')
|
||||
if j < len(left[i]) - 1 | let _ .= s:subseparator(left[i][j], left[i][j+1:], s:lightline.subseparator.left) | endif
|
||||
return s:line(0, a:inactive)
|
||||
endfunction
|
||||
|
||||
function! s:expand(tabline, x, l)
|
||||
let [e, t] = [ s:lightline.component_expand, s:lightline.component_type ]
|
||||
let [a, c, _] = [[], [], []]
|
||||
for i in range(len(a:x))
|
||||
if !len(_) || len(_[-1]) | call add(_, []) | call add(c, []) | endif
|
||||
for j in range(len(a:x[i]))
|
||||
if has_key(e, a:x[i][j])
|
||||
try
|
||||
let r = exists('*'.e[a:x[i][j]]) ? eval(e[a:x[i][j]] . '()') : ''
|
||||
if type(r) == 1 && r == '' | continue | endif
|
||||
let s = type(r) == 1 ? [[], [r], []] : r
|
||||
unlet r
|
||||
catch
|
||||
continue
|
||||
endtry
|
||||
if len(s[0])
|
||||
if !len(a) || type(a[-1]) != type(i) || a[-1] != i
|
||||
if len(_[-1])
|
||||
call add(_, s[0]) | call add(c, repeat([1], len(s[0])))
|
||||
else
|
||||
call extend(_[-1], s[0]) | call extend(c[-1], repeat([1], len(s[0])))
|
||||
endif
|
||||
call add(a, i)
|
||||
else
|
||||
call extend(_[-1], s[0]) | call extend(c[-1], repeat([1], len(s[0])))
|
||||
endif
|
||||
endif
|
||||
if has_key(t, a:x[i][j])
|
||||
if len(s[1])
|
||||
if len(_[-1])
|
||||
call add(_, s[1]) | call add(c, repeat([1], len(s[1])))
|
||||
else
|
||||
call extend(_[-1], s[1]) | call extend(c[-1], repeat([1], len(s[1])))
|
||||
endif
|
||||
call add(a, t[a:x[i][j]])
|
||||
endif
|
||||
if len(s[2])
|
||||
if len(_[-1]) && (type(a[-1]) != type(i) || a[-1] != i)
|
||||
call add(_, s[2]) | call add(c, repeat([1], len(s[2]))) | call add(a, i)
|
||||
else
|
||||
call extend(_[-1], s[2]) | call extend(c[-1], repeat([1], len(s[2])))
|
||||
endif
|
||||
endif
|
||||
else
|
||||
if !len(a) || type(a[-1]) != type(i) || a[-1] != i
|
||||
call add(a, i)
|
||||
if len(_[-1])
|
||||
call add(_, s[1]) | call add(c, repeat([1], len(s[1])))
|
||||
else
|
||||
call extend(_[-1], s[1]) | call extend(c[-1], repeat([1], len(s[1])))
|
||||
endif
|
||||
else
|
||||
call extend(_[-1], s[1]) | call extend(c[-1], repeat([1], len(s[1])))
|
||||
endif
|
||||
if len(s[2]) | call extend(_[-1], s[2]) | call extend(c[-1], repeat([1], len(s[2])))| endif
|
||||
endif
|
||||
else
|
||||
if !len(a) || type(a[-1]) != type(i) || a[-1] != i
|
||||
call add(a, i)
|
||||
if len(_) && len(_[-1]) | call add(_, []) | call add(c, []) | endif
|
||||
endif
|
||||
call add(_[-1], a:x[i][j]) | call add(c[-1], 0)
|
||||
endif
|
||||
endfor
|
||||
let _ .= printf('%%#LightLineLeft_%s_%d_%d#', mode, i, i + 1) . (i < l ? s:lightline.separator.left : len(left[i]) ? s:lightline.subseparator.left : '')
|
||||
endfor
|
||||
call add(a, len(a:x))
|
||||
while len(_) && !len(_[-1]) | call remove(_, -1) | call remove(c, -1) | endwhile
|
||||
return [a, c, _]
|
||||
endfunction
|
||||
|
||||
function! s:line(tabline, inactive)
|
||||
let _ = a:tabline ? '' : '%{lightline#link()}'
|
||||
let [l, r] = a:tabline ? [s:lightline.tab_llen, s:lightline.tab_rlen] : [s:lightline.llen, s:lightline.rlen]
|
||||
let [c, f, e, t] = [s:lightline.component, s:lightline.component_function, s:lightline.component_expand, s:lightline.component_type]
|
||||
let mode = a:tabline ? 'tabline' : a:inactive ? 'inactive' : 'active'
|
||||
let l_ = has_key(s:lightline, mode) ? s:lightline[mode].left : s:lightline.active.left
|
||||
let [ll, lc, lt] = s:expand(a:tabline, copy(l_), l)
|
||||
let r_ = has_key(s:lightline, mode) ? s:lightline[mode].right : s:lightline.active.right
|
||||
let [rl, rc, rt] = s:expand(a:tabline, copy(r_), r)
|
||||
for i in range(len(lt))
|
||||
let _ .= printf('%%#LightLineLeft_%s_%s#', mode, ll[i])
|
||||
for j in range(len(lt[i]))
|
||||
let x = substitute('%( '.(lc[i][j] ? lt[i][j] : has_key(f,lt[i][j])?'%{exists("*'.f[lt[i][j]].'")?'.f[lt[i][j]].'():""}':get(c,lt[i][j],'')).' %)', '^%( %)', '', '')
|
||||
let _ .= has_key(t,lt[i][j])&&t[lt[i][j]]=='raw'&&strlen(x)>7 ? x[3:-2] : x
|
||||
if j < len(lt[i]) - 1 | let _ .= s:subseparator(lt[i][j], lt[i][j+1:], s:lightline.subseparator.left, lc[i][j], lc[i][j+1:]) | endif
|
||||
endfor
|
||||
let _ .= printf('%%#LightLineLeft_%s_%s_%s#', mode, ll[i], ll[i + 1]) . (i < l + len(lt) - len(l_) && ll[i] < l || type(ll[i]) != type(ll[i + 1]) || type(ll[i]) && type(ll[i + 1]) && ll[i] != ll[i + 1] ? s:lightline.separator.left : len(lt[i]) ? s:lightline.subseparator.left : '')
|
||||
endfor
|
||||
let _ .= printf('%%#LightLineMiddle_%s#%%=', mode)
|
||||
for i in reverse(range(len(right)))
|
||||
let _ .= printf('%%#LightLineRight_%s_%d_%d#', mode, i, i + 1) . (i < r ? s:lightline.separator.right : len(right[i]) ? s:lightline.subseparator.right : '')
|
||||
let _ .= printf('%%#LightLineRight_%s_%d#', mode, i)
|
||||
for j in range(len(right[i]))
|
||||
if j | let _ .= s:subseparator(right[i][j], right[i][:j-1], s:lightline.subseparator.right) | endif
|
||||
let _ .= substitute('%( '.(has_key(f,right[i][j])?'%{exists("*'.f[right[i][j]].'")?'.f[right[i][j]].'():""}':get(c,right[i][j],'')).' %)', '^%( %)', '', '')
|
||||
for i in reverse(range(len(rt)))
|
||||
let _ .= printf('%%#LightLineRight_%s_%s_%s#', mode, rl[i], rl[i + 1]) . (i < r + len(rt) - len(r_) && rl[i] < r || type(rl[i]) != type(rl[i + 1]) || type(rl[i]) && type(rl[i + 1]) && rl[i] != rl[i + 1] ? s:lightline.separator.right : len(rt[i]) ? s:lightline.subseparator.right : '')
|
||||
let _ .= printf('%%#LightLineRight_%s_%s#', mode, rl[i])
|
||||
for j in range(len(rt[i]))
|
||||
if j | let _ .= s:subseparator(rt[i][j], rt[i][:j-1], s:lightline.subseparator.right, rc[i][j], rc[i][j+1:]) | endif
|
||||
let x = substitute('%( '.(rc[i][j] ? rt[i][j] : has_key(f,rt[i][j])?'%{exists("*'.f[rt[i][j]].'")?'.f[rt[i][j]].'():""}':get(c,rt[i][j],'')).' %)', '^%( %)', '', '')
|
||||
let _ .= has_key(t,rt[i][j])&&t[rt[i][j]]=='raw'&&strlen(x)>7 ? x[3:-4] : x
|
||||
endfor
|
||||
endfor
|
||||
return _
|
||||
endfunction
|
||||
|
||||
function! lightline#tabline()
|
||||
return s:line(1, 0)
|
||||
endfunction
|
||||
|
||||
function! lightline#tabs()
|
||||
let [_, t, l, x, y, z] = ['', tabpagenr(), tabpagenr('$'), [], [], []]
|
||||
for i in range(1, l)
|
||||
call add(i<t?(x):i==t?(y):z, '%'.i.'T%{lightline#onetab('.i.','.(i==t).')}'.(i==l?'%T':''))
|
||||
endfor
|
||||
return [x, y, z]
|
||||
endfunction
|
||||
|
||||
function! lightline#onetab(n, active)
|
||||
let [_, a] = ['', s:lightline.tab[a:active ? 'active' : 'inactive']]
|
||||
let [c, f, l, r] = [s:lightline.tab_component, s:lightline.tab_component_function, s:lightline.tab_llen, s:lightline.tab_rlen ]
|
||||
for i in range(len(a))
|
||||
let s = has_key(f,a[i]) ? eval(f[a[i]].'('.a:n.')') : eval(get(c,a[i],'""'))
|
||||
if strlen(s) | let _ .= (len(_) ? ' ' : '') . s | endif
|
||||
endfor
|
||||
return _
|
||||
endfunction
|
||||
|
||||
function! lightline#error(msg)
|
||||
echohl ErrorMsg | echomsg 'lightline.vim: '.a:msg | echohl None
|
||||
endfunction
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
" =============================================================================
|
||||
" Filename: autoload/colorscheme/colorscheme.vim
|
||||
" Filename: autoload/lightline/colorscheme.vim
|
||||
" Version: 0.0
|
||||
" Author: itchyny
|
||||
" License: MIT License
|
||||
" Last Change: 2013/08/30 23:19:47.
|
||||
" Last Change: 2013/09/07 16:22:56.
|
||||
" =============================================================================
|
||||
|
||||
let s:cuicolor = {
|
||||
@@ -204,3 +204,13 @@ function! lightline#colorscheme#fill(p)
|
||||
return a:p
|
||||
endfunction
|
||||
|
||||
function! lightline#colorscheme#flatten(p)
|
||||
for k in values(a:p)
|
||||
for l in values(k)
|
||||
for m in range(len(l))
|
||||
let l[m] = [l[m][0][0], l[m][1][0], l[m][0][1], l[m][1][1]]
|
||||
endfor
|
||||
endfor
|
||||
endfor
|
||||
return a:p
|
||||
endfunction
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
" Version: 0.0
|
||||
" Author: itchyny
|
||||
" License: MIT License
|
||||
" Last Change: 2013/08/27 00:49:07.
|
||||
" Last Change: 2013/09/07 12:22:37.
|
||||
" =============================================================================
|
||||
let s:base03 = '#fafafa'
|
||||
let s:base023 = '#dfdfdf'
|
||||
@@ -22,7 +22,7 @@ let s:cyan = '#3e999f'
|
||||
let s:blue = '#4271ae'
|
||||
let s:magenta = '#8959a8'
|
||||
|
||||
let s:p = {'normal': {}, 'inactive': {}, 'insert': {}, 'replace': {}, 'visual': {}}
|
||||
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 ] ]
|
||||
@@ -30,7 +30,13 @@ 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:base0, s:base02 ] ]
|
||||
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)
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
" Version: 0.0
|
||||
" Author: itchyny
|
||||
" License: MIT License
|
||||
" Last Change: 2013/08/27 00:48:59.
|
||||
" Last Change: 2013/09/07 12:23:38.
|
||||
" =============================================================================
|
||||
let s:base3 = '#c5c8c6'
|
||||
let s:base2 = '#bababa'
|
||||
@@ -22,7 +22,7 @@ let s:cyan = '#8abeb7'
|
||||
let s:blue = '#81a2be'
|
||||
let s:magenta = '#b294bb'
|
||||
|
||||
let s:p = {'normal': {}, 'inactive': {}, 'insert': {}, 'replace': {}, 'visual': {}}
|
||||
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 ] ]
|
||||
@@ -30,7 +30,13 @@ 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:base0, s:base02 ] ]
|
||||
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)
|
||||
|
||||
44
autoload/lightline/colorscheme/Tomorrow_Night_Blue.vim
Normal file
44
autoload/lightline/colorscheme/Tomorrow_Night_Blue.vim
Normal file
@@ -0,0 +1,44 @@
|
||||
" =============================================================================
|
||||
" Filename: autoload/lightline/colorscheme/Tomorrow_Night_Blue.vim
|
||||
" Version: 0.0
|
||||
" 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)
|
||||
43
autoload/lightline/colorscheme/Tomorrow_Night_Bright.vim
Normal file
43
autoload/lightline/colorscheme/Tomorrow_Night_Bright.vim
Normal file
@@ -0,0 +1,43 @@
|
||||
" =============================================================================
|
||||
" Filename: autoload/lightline/colorscheme/Tomorrow_Night_Bright.vim
|
||||
" Version: 0.0
|
||||
" 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)
|
||||
43
autoload/lightline/colorscheme/Tomorrow_Night_Eighties.vim
Normal file
43
autoload/lightline/colorscheme/Tomorrow_Night_Eighties.vim
Normal file
@@ -0,0 +1,43 @@
|
||||
" =============================================================================
|
||||
" Filename: autoload/lightline/colorscheme/Tomorrow_Night_Eighties.vim
|
||||
" Version: 0.0
|
||||
" 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)
|
||||
@@ -3,7 +3,7 @@
|
||||
" Version: 0.0
|
||||
" Author: itchyny
|
||||
" License: MIT License
|
||||
" Last Change: 2013/08/27 00:37:34.
|
||||
" Last Change: 2013/09/07 12:21:04.
|
||||
" =============================================================================
|
||||
let s:base03 = [ '#151513', 233 ]
|
||||
let s:base02 = [ '#30302c ', 236 ]
|
||||
@@ -20,7 +20,8 @@ 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': {}}
|
||||
|
||||
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 ] ]
|
||||
@@ -30,16 +31,11 @@ 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 = [ [ 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 ] ]
|
||||
|
||||
function! s:flatten(p)
|
||||
for k in values(a:p)
|
||||
for l in values(k)
|
||||
for m in range(len(l))
|
||||
let l[m] = [l[m][0][0], l[m][1][0], l[m][0][1], l[m][1][1]]
|
||||
endfor
|
||||
endfor
|
||||
endfor
|
||||
return a:p
|
||||
endfunction
|
||||
let g:lightline#colorscheme#jellybeans#palette = s:flatten(s:p)
|
||||
|
||||
let g:lightline#colorscheme#jellybeans#palette = lightline#colorscheme#flatten(s:p)
|
||||
|
||||
@@ -3,10 +3,10 @@
|
||||
" Version: 0.0
|
||||
" Author: itchyny
|
||||
" License: MIT License
|
||||
" Last Change: 2013/08/26 17:54:24.
|
||||
" Last Change: 2013/09/07 12:26:11.
|
||||
" =============================================================================
|
||||
|
||||
let s:p = {'normal': {}, 'inactive': {}, 'insert': {}, 'replace': {}, 'visual': {}}
|
||||
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 ] ]
|
||||
@@ -16,5 +16,11 @@ let s:p.replace.left = [ [ '#af0000', '#ffffff', 124, 231, 'bold' ], [ '#ffffff'
|
||||
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 = [ [ '#dadada', '#606060', 253, 241 ] ]
|
||||
let s:p.tabline.tabsel = [ [ '#dadada', '#121212', 253, 233 ] ]
|
||||
let s:p.tabline.middle = [ [ '#3a3a3a', '#b2b2b2', 237, 249 ] ]
|
||||
let s:p.tabline.right = [ [ '#dadada', '#606060', 253, 241 ] ]
|
||||
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
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
" =============================================================================
|
||||
" Filename: autoload/lightline/colorscheme/default.vim
|
||||
" Filename: autoload/lightline/colorscheme/powerline.vim
|
||||
" Version: 0.0
|
||||
" Author: itchyny
|
||||
" License: MIT License
|
||||
" Last Change: 2013/08/27 00:18:01.
|
||||
" Last Change: 2013/09/07 15:54:41.
|
||||
" =============================================================================
|
||||
|
||||
let s:p = {'normal': {}, 'inactive': {}, 'insert': {}, 'replace': {}, 'visual': {}}
|
||||
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'] ]
|
||||
@@ -15,9 +15,15 @@ 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 = [ [ 'gray6', 'gray2' ] ]
|
||||
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)
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
" Version: 0.0
|
||||
" Author: itchyny
|
||||
" License: MIT License
|
||||
" Last Change: 2013/08/27 10:25:46.
|
||||
" Last Change: 2013/09/07 12:18:08.
|
||||
" =============================================================================
|
||||
let s:base03 = [ '#002b36', 234 ]
|
||||
let s:base02 = [ '#073642', 235 ]
|
||||
@@ -27,7 +27,7 @@ let s:green = [ '#859900', 64 ]
|
||||
" 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': {}}
|
||||
let s:p = {'normal': {}, 'inactive': {}, 'insert': {}, 'replace': {}, 'visual': {}, 'tabline': {}}
|
||||
let s:p.normal.left = [ [ s:base3, 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:base01 ], [ s:base00, s:base02 ] ]
|
||||
@@ -35,17 +35,13 @@ let s:p.inactive.left = [ [ s:base0, s:base02 ], [ s:base00, s:base02 ] ]
|
||||
let s:p.insert.left = [ [ s:base3, s:green ], [ s:base3, s:base01 ] ]
|
||||
let s:p.replace.left = [ [ s:base3, s:red ], [ s:base3, s:base01 ] ]
|
||||
let s:p.visual.left = [ [ s:base3, s:magenta ], [ s:base3, s:base01 ] ]
|
||||
let s:p.normal.middle = [ [ s:base00, s:base02 ] ]
|
||||
let s:p.inactive.middle = [ [ s:base00, s:base02 ] ]
|
||||
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:base02 ] ]
|
||||
let s:p.tabline.middle = [ [ s:base01, s:base2 ] ]
|
||||
let s:p.tabline.right = copy(s:p.normal.right)
|
||||
let s:p.normal.error = [ [ s:base2, s:red ] ]
|
||||
let s:p.normal.warning = [ [ s:base02, s:yellow ] ]
|
||||
|
||||
function! s:flatten(p)
|
||||
for k in values(a:p)
|
||||
for l in values(k)
|
||||
for m in range(len(l))
|
||||
let l[m] = [l[m][0][0], l[m][1][0], l[m][0][1], l[m][1][1]]
|
||||
endfor
|
||||
endfor
|
||||
endfor
|
||||
return a:p
|
||||
endfunction
|
||||
let g:lightline#colorscheme#solarized_dark#palette = s:flatten(s:p)
|
||||
let g:lightline#colorscheme#solarized_dark#palette = lightline#colorscheme#flatten(s:p)
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
" Version: 0.0
|
||||
" Author: itchyny
|
||||
" License: MIT License
|
||||
" Last Change: 2013/08/27 10:25:51.
|
||||
" Last Change: 2013/09/07 12:19:49.
|
||||
" =============================================================================
|
||||
let s:base03 = [ '#002b36', 234 ]
|
||||
let s:base02 = [ '#073642', 235 ]
|
||||
@@ -27,7 +27,7 @@ let s:green = [ '#859900', 64 ]
|
||||
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': {}}
|
||||
let s:p = {'normal': {}, 'inactive': {}, 'insert': {}, 'replace': {}, 'visual': {}, 'tabline': {}}
|
||||
let s:p.normal.left = [ [ s:base3, 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:base01 ], [ s:base00, s:base02 ] ]
|
||||
@@ -35,17 +35,15 @@ let s:p.inactive.left = [ [ s:base0, s:base02 ], [ s:base00, s:base02 ] ]
|
||||
let s:p.insert.left = [ [ s:base3, s:green ], [ s:base3, s:base01 ] ]
|
||||
let s:p.replace.left = [ [ s:base3, s:red ], [ s:base3, s:base01 ] ]
|
||||
let s:p.visual.left = [ [ s:base3, s:magenta ], [ s:base3, s:base01 ] ]
|
||||
let s:p.normal.middle = [ [ s:base00, s:base02 ] ]
|
||||
let s:p.inactive.middle = [ [ s:base00, s:base02 ] ]
|
||||
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:base2 ] ]
|
||||
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:base01 ] ]
|
||||
let s:p.normal.error = [ [ s:base02, s:red ] ]
|
||||
let s:p.normal.warning = [ [ s:base2, s:yellow ] ]
|
||||
|
||||
function! s:flatten(p)
|
||||
for k in values(a:p)
|
||||
for l in values(k)
|
||||
for m in range(len(l))
|
||||
let l[m] = [l[m][0][0], l[m][1][0], l[m][0][1], l[m][1][1]]
|
||||
endfor
|
||||
endfor
|
||||
endfor
|
||||
return a:p
|
||||
endfunction
|
||||
let g:lightline#colorscheme#solarized_light#palette = s:flatten(s:p)
|
||||
let g:lightline#colorscheme#solarized_light#palette = lightline#colorscheme#flatten(s:p)
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
" Version: 0.0
|
||||
" Author: itchyny
|
||||
" License: MIT License
|
||||
" Last Change: 2013/08/27 00:41:15.
|
||||
" Last Change: 2013/09/07 12:15:17.
|
||||
" =============================================================================
|
||||
let s:base03 = [ '#242424', 235 ]
|
||||
let s:base023 = [ '#353535 ', 236 ]
|
||||
@@ -21,26 +21,21 @@ 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': {}}
|
||||
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:base02, s:red ], [ 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:base1, s:base02 ] ]
|
||||
let s:p.inactive.middle = [ [ s:base03, s:base023 ] ]
|
||||
|
||||
function! s:flatten(p)
|
||||
for k in values(a:p)
|
||||
for l in values(k)
|
||||
for m in range(len(l))
|
||||
let l[m] = [l[m][0][0], l[m][1][0], l[m][0][1], l[m][1][1]]
|
||||
endfor
|
||||
endfor
|
||||
endfor
|
||||
return a:p
|
||||
endfunction
|
||||
let g:lightline#colorscheme#wombat#palette = s:flatten(s:p)
|
||||
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:base2, s:base023 ] ]
|
||||
let s:p.tabline.middle = [ [ s:base02, s:base1 ] ]
|
||||
let s:p.tabline.right = [ [ s:base2, s:base01 ] ]
|
||||
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)
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
" =============================================================================
|
||||
" Filename: autoload/colorscheme/colortable.vim
|
||||
" Filename: autoload/lightline/colortable.vim
|
||||
" Version: 0.0
|
||||
" Author: itchyny
|
||||
" License: MIT License
|
||||
" Last Change: 2013/08/28 10:07:13.
|
||||
" Last Change: 2013/09/07 16:23:03.
|
||||
" =============================================================================
|
||||
|
||||
function! s:load()
|
||||
|
||||
28
autoload/lightline/tab.vim
Normal file
28
autoload/lightline/tab.vim
Normal file
@@ -0,0 +1,28 @@
|
||||
" =============================================================================
|
||||
" Filename: autoload/lightline/tab.vim
|
||||
" Version: 0.0
|
||||
" Author: itchyny
|
||||
" License: MIT License
|
||||
" Last Change: 2013/09/07 16:22:50.
|
||||
" =============================================================================
|
||||
|
||||
function! lightline#tab#filename(n)
|
||||
let buflist = tabpagebuflist(a:n)
|
||||
let winnr = tabpagewinnr(a:n)
|
||||
let _ = expand("#".buflist[winnr - 1].":t")
|
||||
return strlen(_) ? _ : '[No Name]'
|
||||
endfunction
|
||||
|
||||
function! lightline#tab#modified(n)
|
||||
let winnr = tabpagewinnr(a:n)
|
||||
return gettabwinvar(a:n, winnr, '&modified', 0) ? '+' : gettabwinvar(a:n, winnr, '&modifiable', 1) ? '' : '-'
|
||||
endfunction
|
||||
|
||||
function! lightline#tab#readonly(n)
|
||||
let winnr = tabpagewinnr(a:n)
|
||||
return gettabwinvar(a:n, winnr, '&readonly', 0) ? 'RO' : ''
|
||||
endfunction
|
||||
|
||||
function! lightline#tab#tabnum(n)
|
||||
return a:n
|
||||
endfunction
|
||||
@@ -1,10 +1,10 @@
|
||||
*lightline.txt* A light and configurable statusline for Vim
|
||||
*lightline.txt* A light and configurable statusline/tabline for Vim
|
||||
|
||||
Version: 0.0
|
||||
Author: itchyny (https://github.com/itchyny)
|
||||
License: MIT License
|
||||
Repository: https://github.com/itchyny/lightline.vim
|
||||
Last Change: 2013/08/31 19:43:56.
|
||||
Last Change: 2013/09/07 16:27:13.
|
||||
|
||||
CONTENTS *lightline-contents*
|
||||
|
||||
@@ -13,6 +13,7 @@ Spirit |lightline-spirit|
|
||||
Option |lightline-option|
|
||||
Font |lightline-font|
|
||||
Function |lightline-function|
|
||||
Component Expansion |lightline-component-expansion|
|
||||
Examples |lightline-examples|
|
||||
Nice Examples |lightline-nice-examples|
|
||||
Powerful Example |lightline-powerful-example|
|
||||
@@ -22,7 +23,7 @@ Changelog |lightline-changelog|
|
||||
==============================================================================
|
||||
INTRODUCTION *lightline-introduction*
|
||||
|
||||
The *lightline* plugin is a light and configurable statusline for Vim.
|
||||
The *lightline* plugin is a light and configurable statusline/tabline for Vim.
|
||||
|
||||
------------------------------------------------------------------------------
|
||||
SPIRIT *lightline-spirit*
|
||||
@@ -31,7 +32,8 @@ SPIRIT *lightline-spirit*
|
||||
The core script is very small.
|
||||
|
||||
Configurability
|
||||
You can create your own component and easily add to the statusline.
|
||||
You can create your own component and easily add to the
|
||||
statusline/tabline.
|
||||
|
||||
Orthogonality
|
||||
Any plugin should not change the settings of another plugin.
|
||||
@@ -53,7 +55,11 @@ OPTIONS *lightline-option*
|
||||
|
||||
g:lightline.active *g:lightline.active*
|
||||
g:lightline.inactive *g:lightline.inactive*
|
||||
Dictionaries to specify the status components.
|
||||
g:lightline.tabline *g:lightline.tabline*
|
||||
Dictionaries to specify the statusline/tabline components.
|
||||
The components are gathered from either |g:lightline.component|,
|
||||
|g:lightline.component_function| or
|
||||
|g:lightline.component_expand|.
|
||||
Note that right groups of components are stored from right to
|
||||
left. The default values are:
|
||||
>
|
||||
@@ -67,9 +73,23 @@ OPTIONS *lightline-option*
|
||||
\ 'left': [ [ 'filename' ] ],
|
||||
\ 'right': [ [ 'lineinfo' ],
|
||||
\ [ 'percent' ] ] }
|
||||
let g:lightline.tabline = {
|
||||
\ 'left': [ [ 'tabs' ] ],
|
||||
\ 'right': [ [ 'close' ] ] }
|
||||
<
|
||||
g:lightline.tab *g:lightline.tab*
|
||||
Dictionaries to specify the components in each tabs.
|
||||
The components are gathered from either
|
||||
|g:lightline.tab_component| or
|
||||
|g:lightline.tab_component_function|.
|
||||
The default values are:
|
||||
>
|
||||
let g:lightline.tab = {
|
||||
\ 'active': [ 'tabnum', 'filename', 'modified' ],
|
||||
\ 'inactive': [ 'tabnum', 'filename', 'modified' ] }
|
||||
<
|
||||
g:lightline.component *g:lightline.component*
|
||||
Dictionary for statusline components.
|
||||
Dictionary for statusline/tabline components.
|
||||
The default value is:
|
||||
>
|
||||
let g:lightline.component = {
|
||||
@@ -90,7 +110,8 @@ OPTIONS *lightline-option*
|
||||
\ 'percentwin': '%P',
|
||||
\ 'lineinfo': '%3l:%-2v',
|
||||
\ 'line': '%l',
|
||||
\ 'column': '%c' }
|
||||
\ 'column': '%c'
|
||||
\ 'close': '%999X X ' }
|
||||
<
|
||||
g:lightline.component_visible_condition *g:lightline.component_visible_condition*
|
||||
Dictionary of boolean expressions for the components.
|
||||
@@ -126,16 +147,54 @@ OPTIONS *lightline-option*
|
||||
function! MyReadonly()
|
||||
return &ft !~? 'help' && &readonly ? 'RO' : ''
|
||||
endfunction
|
||||
<
|
||||
g:lightline.component_expand *g:lightline.component_expand*
|
||||
Another dictionary for components. You can create a component
|
||||
which has a special color. For example, error components or
|
||||
warning components. The functions should return one of:
|
||||
+ a string
|
||||
+ an array of three elements:
|
||||
[[ left ], [ middle ], [ right ]]
|
||||
The component in this dictionary has priority over
|
||||
|g:lightline.component| and |g:lightline.component_function|.
|
||||
See |lightline-component-expansion| for more detail.
|
||||
>
|
||||
let g:lightline.component_expand = {
|
||||
\ 'tabs': 'lightline#tabs' }
|
||||
<
|
||||
g:lightline.component_type *g:lightline.component_type*
|
||||
A dictionary to specify the types for components in
|
||||
|g:lightline.component_expand|. The types are used to specify
|
||||
the color. Specifically, the type raw is used to specify a
|
||||
component which should not be wrapped by item group: %(...%).
|
||||
>
|
||||
let g:lightline.component_type = {
|
||||
\ 'tabs': 'tabsel',
|
||||
\ 'close': 'raw' }
|
||||
<
|
||||
g:lightline.tab_component *g:lightline.tab_component*
|
||||
A dictionary for components in one tab.
|
||||
|
||||
g:lightline.tab_component_function *g:lightline.tab_component_function*
|
||||
Another dictionary for components in one tab.
|
||||
The default value is:
|
||||
>
|
||||
let g:lightline.tab_component_function = {
|
||||
\ 'filename': 'lightline#tab#filename',
|
||||
\ 'modified': 'lightline#tab#modified',
|
||||
\ 'readonly': 'lightline#tab#readonly',
|
||||
\ 'tabnum': 'lightline#tab#tabnum' }
|
||||
<
|
||||
g:lightline.colorscheme *g:lightline.colorscheme*
|
||||
The colorscheme for lightline.vim.
|
||||
Currently, wombat, solarized, powerline, jellybeans, Tomorrow,
|
||||
Tomorrow_Night, and landscape are available.
|
||||
Tomorrow_Night, Tomorrow_Night_Blue, Tomorrow_Night_Eighties
|
||||
and landscape are available.
|
||||
The default value is:
|
||||
>
|
||||
let g:lightline.colorscheme = 'default'
|
||||
<
|
||||
Note that the default colorscheme is exactly the same as
|
||||
Note that the default colorscheme is exactly the same as the
|
||||
powerline theme.
|
||||
|
||||
g:lightline.mode_map *g:lightline.mode_map*
|
||||
@@ -256,11 +315,17 @@ Exposed functions for lightline.vim.
|
||||
This function accepts an optional argument. It should be one
|
||||
of the return value of |mode()|.
|
||||
|
||||
lightline#highlight({inactive}) *lightline#highlight()*
|
||||
lightline#highlight() *lightline#highlight()*
|
||||
Set the highlight groups.
|
||||
|
||||
lightline#statusline({inactive}) *lightline#statusline()*
|
||||
Returns |statusline| strings. If the argument is 0, it returns
|
||||
the statusline for active window, and the statusline for
|
||||
inactive window otherwise.
|
||||
|
||||
lightline#tabline() *lightline#tabline()*
|
||||
Returns the tabline string.
|
||||
|
||||
lightline#concatenate({list}, {num}) *lightline#concatenate()*
|
||||
A string concatenation function. Concatenating all the strings
|
||||
in {list} using the sub-separator of lightline. If {num} is 0,
|
||||
@@ -268,6 +333,139 @@ Exposed functions for lightline.vim.
|
||||
sub-separator is used.
|
||||
|
||||
|
||||
==============================================================================
|
||||
COMPONENT EXPANSION *lightline-component-expansion*
|
||||
You can create components, which have specific colors. This section gives an
|
||||
example using |syntastic|.
|
||||
|
||||
If you want to add the |syntastic| flag to the statusline, an easy example is:
|
||||
>
|
||||
" Example A
|
||||
let g:lightline = {
|
||||
\ 'active': {
|
||||
\ 'right': [ [ 'lineinfo', 'syntastic' ],
|
||||
\ [ 'percent' ],
|
||||
\ [ 'fileformat', 'fileencoding', 'filetype' ] ]
|
||||
\ },
|
||||
\ 'component_function': {
|
||||
\ 'syntastic': 'SyntasticStatuslineFlag',
|
||||
\ }
|
||||
\ }
|
||||
let g:syntastic_mode_map = { 'mode': 'passive',
|
||||
\ 'active_filetypes': ['c', 'cpp'] }
|
||||
<
|
||||
However, the color of the syntastic component is the same as the lineinfo
|
||||
component.
|
||||
|
||||
In order to change the syntastic component more outstanding, you have to use
|
||||
|g:lightline.component_expand|. See the following example:
|
||||
>
|
||||
" Example B
|
||||
let g:lightline = {
|
||||
\ 'active': {
|
||||
\ 'right': [ [ 'syntastic', 'lineinfo' ],
|
||||
\ [ 'percent' ],
|
||||
\ [ 'fileformat', 'fileencoding', 'filetype' ] ]
|
||||
\ },
|
||||
\ 'component_expand': {
|
||||
\ 'syntastic': 'SyntasticStatuslineFlag',
|
||||
\ },
|
||||
\ 'component_type': {
|
||||
\ 'syntastic': 'error',
|
||||
\ }
|
||||
\ }
|
||||
let g:syntastic_mode_map = { 'mode': 'passive' }
|
||||
augroup AutoSyntastic
|
||||
autocmd!
|
||||
autocmd BufWritePost *.c,*.cpp call s:syntastic()
|
||||
augroup END
|
||||
function! s:syntastic()
|
||||
SyntasticCheck
|
||||
call lightline#update()
|
||||
endfunction
|
||||
<
|
||||
In order to understand the above codes, you firstly should know how the
|
||||
colorschemes work in lightline.vim. Open the following file.
|
||||
autoload/lightline/colorscheme/powerline.vim
|
||||
The colorscheme is created by one dictionary: s:p (abbreviation for palette).
|
||||
See the value of s:p.normal.right.
|
||||
>
|
||||
let s:p.normal.right = [ ['gray5', 'gray10'],
|
||||
\ ['gray9', 'gray4'],
|
||||
\ ['gray8', 'gray2'] ]
|
||||
<
|
||||
This array corresponds to the structure of g:lightline.active.right. Recall
|
||||
the example A.
|
||||
>
|
||||
" Example A
|
||||
let g:lightline.active.right = [ [ 'lineinfo', 'syntastic' ],
|
||||
\ [ 'percent' ],
|
||||
\ [ 'fileformat', 'fileencoding', 'filetype' ] ]
|
||||
<
|
||||
The colors are ([fgcolor, bgcolor):
|
||||
(0) [ 'lineinfo', 'syntastic' ] --- s:p.normal.right[0] = ['gray5', 'gray10']
|
||||
(1) [ 'percent' ] --- s:p.normal.right[1] = ['gray9', 'gray4']
|
||||
(2) [ 'fileformat', 'fileencoding', 'filetype' ] --- s:p.normal.right[2] = ['gray8', 'gray2']
|
||||
|
||||
|
||||
Recall the example B.
|
||||
>
|
||||
" Example B
|
||||
let g:lightline.active.right = [ [ 'syntastic', 'lineinfo' ],
|
||||
\ [ 'percent' ],
|
||||
\ [ 'fileformat', 'fileencoding', 'filetype' ] ]
|
||||
<
|
||||
If a component is specified in |g:lightline.component_expand|, lightline.vim
|
||||
expands the components before setting to statusline/tabline. In this example,
|
||||
the syntastic component is expanded using the |SyntasticStatuslineFlag| function.
|
||||
This function returns a {string}. Let us call it `syntastic_flag`.
|
||||
>
|
||||
let syntastic_flag = SyntasticStatuslineFlag()
|
||||
<
|
||||
The syntastic component is now expanded, so it go up to one component group.
|
||||
The type of the syntastic component is error, and the palette has error
|
||||
colors, the result is:
|
||||
>
|
||||
" Expanded result of Example B
|
||||
(error) [ 'syntastic' ] --- s:p.normal.error[0] = ['gray9', 'brightestred']
|
||||
(0) [ 'lineinfo' ] --- s:p.normal.right[0] = ['gray5', 'gray10']
|
||||
(1) [ 'percent' ] --- s:p.normal.right[1] = ['gray9', 'gray4']
|
||||
(2) [ 'fileformat', 'fileencoding', 'filetype' ] --- s:p.normal.right[2] = ['gray8', 'gray2']
|
||||
<
|
||||
Thus the syntastic component has the red color.
|
||||
|
||||
|
||||
Another example for |g:lightline.component_expand| is the tabs component.
|
||||
Actually, the expand feature is created for the tabs component.
|
||||
>
|
||||
let g:lightline.tabline.left = [ [ 'tabs' ] ]
|
||||
let g:lightline.component_expand = {
|
||||
\ 'tabs': 'lightline#tabs' }
|
||||
<
|
||||
Create three tabs and select the middle tab. Then execute
|
||||
>
|
||||
echo lightline#tabs()
|
||||
" [['%1T%{lightline#onetab(1,0)}'],
|
||||
" ['%2T%{lightline#onetab(2,1)}'],
|
||||
" ['%3T%{lightline#onetab(3,0)}%T']]
|
||||
<
|
||||
It returns an array of three elements. The expanded result is:
|
||||
>
|
||||
" Expanded result of tabline
|
||||
(0) ['%1T%{lightline#onetab(1,0)}'] --- s:p.tabline.left[0] = ['gray9', 'gray4']
|
||||
(tabsel) ['%2T%{lightline#onetab(2,1)}'] --- s:p.tabline.tabsel[0] = ['gray9', 'gray1']
|
||||
(0) ['%3T%{lightline#onetab(3,0)}%T'] --- s:p.tabline.left[0] = ['gray9', 'gray4']
|
||||
<
|
||||
If the tabline components is
|
||||
>
|
||||
let g:lightline.tabline.left = [ [ 'A', 'B', 'tabs', 'C', 'D' ] ]
|
||||
<
|
||||
then the expanded result is:
|
||||
>
|
||||
(0) ['A', 'B', '%1T%{lightline#onetab(1,0)}'] --- s:p.tabline.left[0]
|
||||
(tabsel) ['%2T%{lightline#onetab(2,1)}'] --- s:p.tabline.tabsel[0]
|
||||
(0) ['%3T%{lightline#onetab(3,0)}%T', 'C', 'D'] --- s:p.tabline.left[0]
|
||||
<
|
||||
==============================================================================
|
||||
|
||||
EXAMPLES *lightline-examples*
|
||||
@@ -414,7 +612,7 @@ For users who uses lots of plugins:
|
||||
\ 'colorscheme': 'wombat',
|
||||
\ 'active': {
|
||||
\ 'left': [ [ 'mode', 'paste' ], [ 'fugitive', 'filename' ], ['ctrlpmark'] ],
|
||||
\ 'right': [[ 'lineinfo', 'syntastic' ], ['percent'], [ 'fileformat', 'fileencoding', 'filetype']]
|
||||
\ 'right': [ [ 'syntastic', 'lineinfo' ], ['percent'], [ 'fileformat', 'fileencoding', 'filetype' ] ]
|
||||
\ },
|
||||
\ 'component_function': {
|
||||
\ 'fugitive': 'MyFugitive',
|
||||
@@ -423,9 +621,14 @@ For users who uses lots of plugins:
|
||||
\ 'filetype': 'MyFiletype',
|
||||
\ 'fileencoding': 'MyFileencoding',
|
||||
\ 'mode': 'MyMode',
|
||||
\ 'syntastic': 'SyntasticStatuslineFlag',
|
||||
\ 'ctrlpmark': 'CtrlPMark',
|
||||
\ },
|
||||
\ 'component_expand': {
|
||||
\ 'syntastic': 'SyntasticStatuslineFlag',
|
||||
\ },
|
||||
\ 'component_type': {
|
||||
\ 'syntastic': 'error',
|
||||
\ },
|
||||
\ 'subseparator': { 'left': '|', 'right': '|' }
|
||||
\ }
|
||||
|
||||
@@ -521,6 +724,15 @@ For users who uses lots of plugins:
|
||||
return lightline#statusline(0)
|
||||
endfunction
|
||||
|
||||
augroup AutoSyntastic
|
||||
autocmd!
|
||||
autocmd BufWritePost *.c,*.cpp call s:syntastic()
|
||||
augroup END
|
||||
function! s:syntastic()
|
||||
SyntasticCheck
|
||||
call lightline#update()
|
||||
endfunction
|
||||
|
||||
let g:unite_force_overwrite_statusline = 0
|
||||
let g:vimfiler_force_overwrite_statusline = 0
|
||||
let g:vimshell_force_overwrite_statusline = 0
|
||||
|
||||
Reference in New Issue
Block a user