ちょっと前にこの記事を見つけて、タイトルの内容を実現していました。
https://kitagry.github.io/blog/programmings/2020/08/lightline-vim-lsp/
でもなんか気づいたら表示されなくなってて、なんでかなぁってヘルプを漁ってもそもそも lsp#ui#vim#get_buffer_diagnostics_counts() なんて関数が見当たらないんですよね。困った。
それでもにらめっこして、ようやくそれっぽい関数見つけて、なんやかんやちゃんと出たので困ってる人向けに役立てばいいなぁと思い下にコード載せときます。
なんか関数が lsp#get_buffer_diagnostics_counts() に変わってただけだった。いつの間にか。
let g:lightline = {
\ 'active': {
\ 'right': [ ['lsp_errors', 'lsp_warnings'],
\ },
\ 'component_expand': {
\ 'lsp_errors': 'LightlineLSPErrors',
\ 'lsp_warnings': 'LightlineLSPWarnings',
\ },
\ 'component_type': {
\ 'lsp_errors': 'error',
\ 'lsp_warnings': 'warning',
\ },
\ }
function! LightlineLSPWarnings() abort
let l:counts = lsp#get_buffer_diagnostics_counts()
return l:counts.warning == 0 ? '' : printf('W:%d', l:counts.warning)
endfunction
function! LightlineLSPErrors() abort
let l:counts = lsp#get_buffer_diagnostics_counts()
return l:counts.error == 0 ? '' : printf('E:%d', l:counts.error)
endfunction
augroup lightlineAutocmd
autocmd!
autocmd User lsp_diagnostics_updated call lightline#update()
augroup END
細かいことは参考元を見てください。
でもいつから変わったんだろう?それすら気づいてないからそもそもいらないんじゃねぇかと思い始めてきた。