From e26802650dd3f660f909a3abde8126cee7db1ab0 Mon Sep 17 00:00:00 2001 From: Michael Lingelbach Date: Tue, 7 Sep 2021 15:20:15 -0700 Subject: feat(lsp): add lsp healthcheck Add healthcheck for language server client, currently only checks logging status. --- runtime/lua/vim/lsp/log.lua | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'runtime/lua/vim/lsp/log.lua') diff --git a/runtime/lua/vim/lsp/log.lua b/runtime/lua/vim/lsp/log.lua index a2d5c3a774..cc31048c89 100644 --- a/runtime/lua/vim/lsp/log.lua +++ b/runtime/lua/vim/lsp/log.lua @@ -88,6 +88,11 @@ function log.set_level(level) end end +--- Gets the current log level. +function log.get_level() + return current_log_level +end + --- Checks whether the level is sufficient for logging. ---@param level number log level ---@returns (bool) true if would log, false if not -- cgit From e6777a7a04cf84517c8f1345fcb58c343171a266 Mon Sep 17 00:00:00 2001 From: Michael Lingelbach Date: Tue, 7 Sep 2021 20:52:08 -0700 Subject: feat(lsp): add warning message for large log size --- runtime/lua/vim/lsp/log.lua | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'runtime/lua/vim/lsp/log.lua') diff --git a/runtime/lua/vim/lsp/log.lua b/runtime/lua/vim/lsp/log.lua index cc31048c89..2a2133156a 100644 --- a/runtime/lua/vim/lsp/log.lua +++ b/runtime/lua/vim/lsp/log.lua @@ -32,6 +32,17 @@ do vim.fn.mkdir(vim.fn.stdpath('cache'), "p") local logfile = assert(io.open(logfilename, "a+")) + + local log_info = vim.loop.fs_stat(logfilename) + if log_info and log_info.size > 1e9 then + local warn_msg = string.format( + "LSP client log is large (%d MB): %s", + log_info.size / (1000 * 1000), + logfilename + ) + vim.notify(warn_msg) + end + -- Start message for logging logfile:write(string.format("[ START ] %s ] LSP logging initiated\n", os.date(log_date_format))) for level, levelnr in pairs(log.levels) do -- cgit