fix highlighting separator when component group is skipped due to expanding components (ref c9263d9)

This commit is contained in:
itchyny
2018-09-17 12:26:56 +09:00
parent 0b026a2b89
commit 54a3431c12
2 changed files with 22 additions and 1 deletions

View File

@@ -2,7 +2,7 @@
" Filename: autoload/lightline.vim " Filename: autoload/lightline.vim
" Author: itchyny " Author: itchyny
" License: MIT License " License: MIT License
" Last Change: 2018/09/16 23:00:00. " Last Change: 2018/09/17 12:00:00.
" ============================================================================= " =============================================================================
let s:save_cpo = &cpo let s:save_cpo = &cpo
@@ -394,6 +394,11 @@ function! s:expand(components) abort
let prevtype = type let prevtype = type
let previndex = index let previndex = index
endfor 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))) call add(indices, string(len(a:components)))
return [components, expanded, indices] return [components, expanded, indices]
endfunction endfunction

View File

@@ -507,6 +507,22 @@ function! s:suite.custom_type_notfound()
\ [[['readonly', 'filename', 'modified']], [[0, 0, 0]], ['0', '1']]) \ [[['readonly', 'filename', 'modified']], [[0, 0, 0]], ['0', '1']])
endfunction 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
endfunction
function! s:suite.duplicated_left_nil() function! s:suite.duplicated_left_nil()
function! Custom() function! Custom()
return [ [], ['y0', 'y1'], ['z0', 'z1'] ] return [ [], ['y0', 'y1'], ['z0', 'z1'] ]