diff --git a/autoload/startify.vim b/autoload/startify.vim index 024a5bf..4c9d009 100644 --- a/autoload/startify.vim +++ b/autoload/startify.vim @@ -81,6 +81,9 @@ function! startify#insane_in_the_membrane(on_vimenter) abort setlocal statusline=\ startify endif + let s:padding_left = startify#get_padding() + let s:fixed_column = len(s:padding_left) + 2 + " Must be global so that it can be read by syntax/startify.vim. let g:startify_header = exists('g:startify_custom_header') \ ? s:set_custom_section(g:startify_custom_header) @@ -429,6 +432,13 @@ function! startify#open_buffers(...) abort endif endfunction +" Function: #get_padding {{{1 +function! startify#get_padding() abort + return repeat(' ', exists('g:startify_center') + \ ? winwidth('%')/2 - g:startify_center/2 + \ : get(g:, 'startify_padding_left', 3)) +endfunction + " Function: #pad {{{1 function! startify#pad(lines) abort return map(copy(a:lines), 's:padding_left . v:val') diff --git a/syntax/startify.vim b/syntax/startify.vim index aa0e118..381f666 100644 --- a/syntax/startify.vim +++ b/syntax/startify.vim @@ -9,11 +9,11 @@ if exists("b:current_syntax") endif let s:sep = startify#get_separator() -let s:padding_left = repeat(' ', get(g:, 'startify_padding_left', 3)) +let s:pad = startify#get_padding() syntax sync fromstart -execute 'syntax match StartifyBracket /.*\%'. (len(s:padding_left) + 6) .'c/ contains= +execute 'syntax match StartifyBracket /.*\%'. (len(s:pad) + 6) .'c/ contains= \ StartifyNumber, \ StartifySelect' syntax match StartifySpecial /\V\|/ @@ -26,7 +26,7 @@ syntax match StartifyFile /.*/ contains= \ StartifySpecial, execute 'syntax match StartifySlash /\'. s:sep .'/' -execute 'syntax match StartifyPath /\%'. (len(s:padding_left) + 6) .'c.*\'. s:sep .'/ contains=StartifySlash,StartifyVar' +execute 'syntax match StartifyPath /\%'. (len(s:pad) + 6) .'c.*\'. s:sep .'/ contains=StartifySlash,StartifyVar' execute 'syntax region StartifyHeader start=/\%1l/ end=/\%'. (len(g:startify_header) + 2) .'l/'