diff --git a/.shenanigans.sh b/.shenanigans.sh index 1c5401a758c9b570aab3534f70062fc23219fd8f..0ae74c66fa4886d9a7f6dabfe1e0d3093a96089a 100755 --- a/.shenanigans.sh +++ b/.shenanigans.sh @@ -55,6 +55,7 @@ export PATH="$PATH:$HOME/Applications" export PATH="$PATH:$HOME/.local/bin/zig" export PATH="$PATH:$HOME/.local/bin/c3" export PATH="$PATH:$HOME/.local/bin/odin" + export PATH="$PATH:$HOME/.local/bin/ols" fi backup() { diff --git a/.vimrc b/.vimrc index 967a8ed55c6468f41fc4df50663ab7ee399c188c..d50d0703fb2bbec0e40544f896f368674ad2f944 100644 --- a/.vimrc +++ b/.vimrc @@ -51,3 +51,16 @@ let g:ale_detail_to_floating_preview = 1 let g:ale_floating_window_border = 0 let g:ale_virtualtext_cursor = 0 let g:ale_set_quickf = 1 + +" Tells which language server was attached in statusline. +hi User1 ctermbg=239 ctermfg=231 +set statusline=%f\ %=%1*%{ALELSPName(bufnr('%'))}%*\ %-14.(%l,%c%V%)\ %P +function! ALELSPName(buf) abort + let names = [] + for conn in values(ale#lsp#GetConnections()) + if has_key(conn.open_documents, a:buf) + call add(names, split(conn.id, ':')[0]) + endif + endfor + return empty(names) ? '' : ' ' . join(names, ',') . ' ' +endfunction