|
|
- 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 = ''
|