Another copy of my dotfiles. Because I don't completely trust GitHub.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

161 lines
4.3 KiB

let g:lightline = {
\ 'colorscheme': 'material_vim',
\ 'active': {
\ 'left': [ [ 'mode', 'paste' ], [ 'readonly', 'filename', 'modified' ] ],
\ 'right':[[ 'filetype', 'percent', 'lineinfo' ], [ 'cocstatus' ]]
\ },
\ 'tabline': {
\ 'left': [['explorer_pad'], ['buffers']],
\ 'right': [['gitbranch', 'smarttabs']]
\ },
\ 'component_expand': {
\ 'buffers': 'lightline#bufferline#buffers',
\ 'smarttabs': 'SmartTabsIndicator',
\ 'trailing': 'lightline#trailing_whitespace#component'
\ },
\ 'component_function': {
\ 'explorer_pad': 'lightline#explorer_pad#left_pad',
\ 'percent': 'LightlinePercent',
\ 'lineinfo': 'LightlineLineinfo',
\ 'filename': 'LightlineFilename',
\ 'fullname': 'LightlineFullname',
\ 'mode': 'LightlineMode',
\ 'gitbranch': 'LightlineGitbranch',
\ 'readonly': 'LightlineReadonly',
\ 'modified': 'LightlineModified',
\ 'filetype': 'LightlineFiletype',
\ 'cocstatus': 'LightlineCoc',
\ },
\ 'component_type': {
\ 'buffers': 'tabsel',
\ 'trailing': 'warning'
\ },
\ }
function! s:trim(maxlen, str) abort
let trimed = len(a:str) > a:maxlen ? a:str[0:a:maxlen] . '..' : a:str
return trimed
endfunction
function! LightlineCoc() abort
if winwidth(0) < 60
return ''
endif
return coc#status()
endfunction
function! LightlinePercent() abort
if winwidth(0) < 60
return ''
endif
let l:percent = line('.') * 100 / line('$') . '%'
return printf('%-4s', l:percent)
endfunction
function! LightlineLineinfo() abort
if winwidth(0) < 86
return ''
endif
let l:current_line = printf('%-3s', line('.'))
let l:max_line = printf('%-3s', line('$'))
let l:lineinfo = ' ' . l:current_line . '/' . l:max_line
return l:lineinfo
endfunction
function! LightlineFilename() abort
let l:prefix = expand('%:p') =~? "fugitive://" ? '(fugitive) ' : ''
let l:maxlen = winwidth(0) - winwidth(0) / 2
let l:relative = expand('%:.')
let l:tail = expand('%:t')
let l:noname = 'No Name'
if winwidth(0) < 50
return ''
endif
if winwidth(0) < 86
return l:tail ==# '' ? l:noname : l:prefix . s:trim(l:maxlen, l:tail)
endif
return l:relative ==# '' ? l:noname : l:prefix . s:trim(l:maxlen, l:relative)
endfunction
function! LightlineFullname() abort
let l:relative = expand('%')
return l:relative
endfunction
function! LightlineModified() abort
return &modified ? '*' : ''
endfunction
function! LightlineMode() abort
let ftmap = {
\ 'coc-explorer': 'EXPLORER',
\ 'fugitive': 'FUGITIVE',
\ 'vista': 'OUTLINE'
\ }
return get(ftmap, &filetype, lightline#mode())
endfunction
let g:lightline.component_function = { 'lineinfo': 'LightlineLineinfo' }
function! LightlineLineinfo() abort
if winwidth(0) < 86
return ''
endif
let l:current_line = printf('%-3s', line('.'))
let l:max_line = printf('%-3s', line('$'))
let l:lineinfo = ' ' . l:current_line . '/' . l:max_line
return l:lineinfo
endfunction
function! LightlineReadonly() abort
let ftmap = {
\ 'coc-explorer': '',
\ 'fugitive': '',
\ 'vista': ''
\ }
let l:char = get(ftmap, &filetype, '')
return &readonly ? l:char : ''
endfunction
function! LightlineGitbranch() abort
if exists('*fugitive#head')
let maxlen = 20
let branch = fugitive#head()
return branch !=# '' ? ' '. s:trim(maxlen, branch) : ''
endif
return fugitive#head()
endfunction
function! LightlineFiletype() abort
let l:icon = WebDevIconsGetFileTypeSymbol()
return winwidth(0) > 86 ? (strlen(&filetype) ? &filetype . ' ' . l:icon : l:icon) : ''
endfunction
function! String2()
return 'BUFFERS'
endfunction
function! SmartTabsIndicator() abort
let tabs = lightline#tab#tabnum(tabpagenr())
let tab_total = tabpagenr('$')
return tabpagenr('$') > 1 ? ('TABS ' . tabs . '/' . tab_total) : ''
endfunction
" autoreload
command! LightlineReload call LightlineReload()
function! LightlineReload() abort
call lightline#init()
call lightline#colorscheme()
call lightline#update()
endfunction
let g:lightline#trailing_whitespace#indicator = ''