From 796ca7fa62664d127fdcd8f14f57679dc655799c Mon Sep 17 00:00:00 2001 From: itchyny Date: Thu, 22 Aug 2013 21:35:59 +0900 Subject: [PATCH] use call extend() --- autoload/lightline.vim | 54 ++++++++++++++++-------------------------- 1 file changed, 21 insertions(+), 33 deletions(-) diff --git a/autoload/lightline.vim b/autoload/lightline.vim index 3aaa961..1b6585a 100644 --- a/autoload/lightline.vim +++ b/autoload/lightline.vim @@ -3,7 +3,7 @@ " Version: 0.0 " Author: itchyny " License: MIT License -" Last Change: 2013/08/22 19:31:24. +" Last Change: 2013/08/22 21:31:50. " ============================================================================= let s:save_cpo = &cpo @@ -30,22 +30,23 @@ endfunction function! lightline#init() let g:lightline = get(g:, 'lightline', {}) let g:lightline.active = get(g:lightline, 'active', {}) + call extend(g:lightline.active, { + \ 'left': [ [ 'mode', 'paste' ], [ 'fugitive', 'readonly', 'filename', 'modified' ] ], + \ 'right': [ [ 'lineinfo' ], [ 'percent' ], [ 'fileformat', 'fileencoding', 'filetype' ] ] }, 'keep') let g:lightline.inactive = get(g:lightline, 'inactive', {}) - let g:lightline.active.left = get(g:lightline.active, 'left', [ [ 'mode', 'paste' ], [ 'fugitive', 'readonly', 'filename', 'modified' ] ]) - let g:lightline.inactive.left = get(g:lightline.inactive, 'left', [ [ 'filename' ] ]) - let g:lightline.active.right = get(g:lightline.active, 'right', [ [ 'lineinfo' ], [ 'percent' ], [ 'fileformat', 'fileencoding', 'filetype' ] ]) - let g:lightline.inactive.right = get(g:lightline.inactive, 'right', [ [ 'lineinfo' ], [ 'percent' ] ]) - let g:lightline._mode_map = { - \ 'n' : 'NORMAL', 'i' : 'INSERT', 'R' : 'REPLACE', 'v' : 'VISUAL', 'V' : 'V-LINE', - \ 'c' : 'COMMAND', '': 'V-BLOCK', 's' : 'SELECT', 'S' : 'S-LINE', '': 'S-BLOCK', '?': ' ' } + call extend(g:lightline.inactive, { + \ 'left': [ [ 'filename' ] ], + \ 'right': [ [ 'lineinfo' ], [ 'percent' ] ] }, 'keep') let g:lightline.mode_map = get(g:lightline, 'mode_map', {}) - for [k, v] in items(g:lightline._mode_map) - let g:lightline.mode_map[k] = get(g:lightline.mode_map, k, v) - endfor + call extend(g:lightline.mode_map, { + \ 'n' : 'NORMAL', 'i' : 'INSERT', 'R' : 'REPLACE', 'v' : 'VISUAL', + \ 'V' : 'V-LINE', 'c' : 'COMMAND', '': 'V-BLOCK', 's' : 'SELECT', + \ 'S' : 'S-LINE', '': 'S-BLOCK', '?': ' ' }, 'keep') let g:lightline._mode_ = { \ 'n' : 'normal', 'i' : 'insert', 'R' : 'replace', 'v' : 'visual', 'V' : 'visual', - \ 'c' : 'command', '': 'visual', 's' : 'select', 'S' : 'select', '': 'select', } - let g:lightline._component = { + \ 'c' : 'command', '': 'visual', 's' : 'select', 'S' : 'select', '': 'select' } + let g:lightline.component = get(g:lightline, 'component', {}) + call extend(g:lightline.component, { \ 'mode': '%{lightline#mode()}', \ 'filename': '%t', \ 'modified': '%M', @@ -56,32 +57,19 @@ function! lightline#init() \ 'filetype': '%{strlen(&filetype)?&filetype:"no ft"}', \ 'percent': '%3p%%', \ 'lineinfo': '%3l:%-2v', - \ 'fugitive': '%{exists("*fugitive#head")?fugitive#head():""}' } - let g:lightline.component = get(g:lightline, 'component', {}) - for [k, v] in items(g:lightline._component) - let g:lightline.component[k] = get(g:lightline.component, k, v) - endfor - let g:lightline._component_flag = { + \ 'fugitive': '%{exists("*fugitive#head")?fugitive#head():""}' }, 'keep') + let g:lightline.component_flag = get(g:lightline, 'component_flag', {}) + call extend(g:lightline.component_flag, { \ 'modified': '(&modified||!&modifiable)', \ 'readonly': '(&readonly)', \ 'paste': '(&paste)', - \ 'fugitive': '(exists("*fugitive#head")&&strlen(fugitive#head()))' } - let g:lightline.component_flag = get(g:lightline, 'component_flag', {}) - for [k, v] in items(g:lightline._component_flag) - let g:lightline.component_flag[k] = get(g:lightline.component_flag, k, v) - endfor + \ 'fugitive': '(exists("*fugitive#head")&&strlen(fugitive#head()))' }, 'keep') let g:lightline.component_func = get(g:lightline, 'component_func', {}) let g:lightline.separator = get(g:lightline, 'separator', {}) - let g:lightline.separator.left = get(g:lightline.separator, 'left', '') - let g:lightline.separator.right = get(g:lightline.separator, 'right', '') + call extend(g:lightline.separator, { 'left': '', 'right': '' }, 'keep') let g:lightline.subseparator = get(g:lightline, 'subseparator', {}) - let g:lightline.subseparator.left = get(g:lightline.subseparator, 'left', '|') - let g:lightline.subseparator.right = get(g:lightline.subseparator, 'right', '|') - let g:lightline.palette = get(g:lightline, 'palette', {}) - let g:lightline.colorscheme = get(g:lightline, 'colorscheme', 'default') - for m in ['normal', 'insert', 'replace', 'visual', 'inactive'] - let g:lightline.palette[m] = get(g:lightline.palette, m, {}) - endfor + call extend(g:lightline.subseparator, { 'left': '|', 'right': '|' }, 'keep') + call extend(g:lightline, { 'palette': {}, 'colorscheme': 'default' }, 'keep') try let g:lightline.palette = g:lightline#colorscheme#{g:lightline.colorscheme}#palette catch