如何配置nvim-lspconfig使其静默失败而非打印警告?
屏蔽Neovim LSP启动失败的警告
这些启动失败警告大多来自nvim-lspconfig,而非Neovim核心。以下几种方法可以屏蔽这类警告:
方法一:全局调整LSP日志级别
将LSP的日志级别设为ERROR,只显示严重错误,过滤掉警告信息。在你的LSP配置文件中添加:
vim.lsp.set_log_level(vim.log.levels.ERROR)
方法二:针对特定LSP屏蔽警告
如果不想全局修改日志级别,可以在单个LSP的setup配置中,自定义消息处理逻辑忽略警告:
require('lspconfig').[你的LSP名称].setup({ handlers = { ["window/showMessage"] = function(_, result, ctx) -- 只过滤警告类型的消息 if result.type == vim.lsp.protocol.MessageType.Warning then return end -- 其他类型消息保持默认处理 vim.lsp.handlers["window/showMessage"](_, result, ctx) end } })
把[你的LSP名称]替换成实际的LSP(比如pyright、rust_analyzer)即可。
方法三:全局过滤vim.notify的警告消息
Neovim的警告通过vim.notify输出,你可以重写这个函数,过滤掉包含LSP启动失败关键词的消息:
local original_notify = vim.notify vim.notify = function(msg, level, opts) -- 匹配包含"server failed to start"的警告消息,直接忽略 if level == vim.log.levels.WARN and string.find(msg, "server failed to start") then return end original_notify(msg, level, opts) end
你依然可以通过:LspInfo查看LSP的运行状态,不受这些设置影响。
内容的提问来源于stack exchange,提问作者Hubro
相关产品推荐
相关产品推荐

