diff options
author | Michael Lingelbach <m.j.lbach@gmail.com> | 2021-09-07 21:16:19 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-09-07 21:16:19 -0700 |
commit | 257e8a74317b966f3239746f977d09747a6948d8 (patch) | |
tree | ce2d6a21abbe7b078f7f69bd95204c518d9ec383 /runtime/lua/vim/lsp/health.lua | |
parent | 47f99d66440ae8be26b34531989ac61edc1ad9fe (diff) | |
parent | e6777a7a04cf84517c8f1345fcb58c343171a266 (diff) | |
download | rneovim-257e8a74317b966f3239746f977d09747a6948d8.tar.gz rneovim-257e8a74317b966f3239746f977d09747a6948d8.tar.bz2 rneovim-257e8a74317b966f3239746f977d09747a6948d8.zip |
Merge pull request #15595 from mjlbach/feat/add-healthcheck-lsp
* feat(lsp): add lsp healthcheck
* feat(lsp): add warning message for large log size
Diffstat (limited to 'runtime/lua/vim/lsp/health.lua')
-rw-r--r-- | runtime/lua/vim/lsp/health.lua | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/runtime/lua/vim/lsp/health.lua b/runtime/lua/vim/lsp/health.lua new file mode 100644 index 0000000000..855679a2df --- /dev/null +++ b/runtime/lua/vim/lsp/health.lua @@ -0,0 +1,27 @@ +local M = {} + +--- Performs a healthcheck for LSP +function M.check_health() + local report_info = vim.fn['health#report_info'] + local report_warn = vim.fn['health#report_warn'] + + local log = require('vim.lsp.log') + local current_log_level = log.get_level() + local log_level_string = log.levels[current_log_level] + report_info(string.format("LSP log level : %s", log_level_string)) + + if current_log_level < log.levels.WARN then + report_warn(string.format("Log level %s will cause degraded performance and high disk usage", log_level_string)) + end + + local log_path = vim.lsp.get_log_path() + report_info(string.format("Log path: %s", log_path)) + + local log_size = vim.loop.fs_stat(log_path).size + + local report_fn = (log_size / 1000000 > 100 and report_warn or report_info) + report_fn(string.format("Log size: %d KB", log_size / 1000 )) +end + +return M + |