diff options
author | Yasuhiro Matsumoto <mattn.jp@gmail.com> | 2020-02-18 18:03:38 +0900 |
---|---|---|
committer | Yasuhiro Matsumoto <mattn.jp@gmail.com> | 2020-02-18 18:03:38 +0900 |
commit | 40fa3b6cbb9c20786cba8b998e03326724ad8253 (patch) | |
tree | 19395c3cd3fb2ee221913fe0bbb8fe30d6f0df65 /autoload | |
parent | 6fa847f227a140a302062801d780d79d77b2cc07 (diff) | |
download | vim-lsp-settings-40fa3b6cbb9c20786cba8b998e03326724ad8253.tar.gz vim-lsp-settings-40fa3b6cbb9c20786cba8b998e03326724ad8253.tar.bz2 vim-lsp-settings-40fa3b6cbb9c20786cba8b998e03326724ad8253.zip |
Add LspSettingsStatus
Diffstat (limited to 'autoload')
-rw-r--r-- | autoload/lsp_settings/profile.vim | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/autoload/lsp_settings/profile.vim b/autoload/lsp_settings/profile.vim index a035032..4567f07 100644 --- a/autoload/lsp_settings/profile.vim +++ b/autoload/lsp_settings/profile.vim @@ -29,3 +29,39 @@ function! lsp_settings#profile#edit_local() abort setlocal nomodified endif endfunction + +let s:color_map = { +\ 'exited': 'Error', +\ 'starting': 'MoreMsg', +\ 'failed': 'WarningMsg', +\ 'running': 'Keyword', +\ 'not running': 'NonText' +\} + +function! lsp_settings#profile#status() abort + let l:settings = lsp_settings#settings() + let l:active_servers = lsp#get_whitelisted_servers() + for l:ft in keys(l:settings) + let l:servers = l:settings[l:ft] + for l:v in l:servers + if index(l:active_servers, l:v.command) != -1 + let l:status = lsp#get_server_status(l:v.command) + echon l:v.command . ': ' + exec 'echohl' s:color_map[l:status] + echon l:status + echohl None + elseif lsp_settings#executable(l:v.command) + echon l:v.command . ': ' + echohl vimFilter + echon 'not running' + echohl None + else + echon l:v.command . ': ' + echohl vimOption + echon 'not installed' + echohl None + endif + echo '' + endfor + endfor +endfunction |