Lazy.nvim下clangd_extensions.nvim等插件未加载问题求助
检查clangd_extensions的加载时机依赖
clangd_extensions需要在clangd LSP服务启动后才能生效,要确保config.clangd-extensions里的配置是挂钩到clangd的启动流程中的。比如应该在插件配置里通过server字段传入clangd的LSP配置,而非单独初始化:require('clangd_extensions').setup { server = { on_attach = function(client, bufnr) -- 你的on_attach逻辑 end, -- 其他clangd配置项 } }如果只是单纯调用setup但未关联到clangd实例,插件无法完成初始化,自然不会注册
:ClangdSwitchSourceHeader这类命令。验证依赖执行顺序
虽然声明了nvim-lspconfig为依赖,但要确认config.lsp-config-conf是否提前启动了clangd服务。如果clangd在clangd_extensions的config执行前就已经启动,插件无法挂钩到已运行的LSP实例,会导致功能失效。可以把clangd的配置逻辑移到clangd_extensions的setup内部,确保插件先初始化再启动LSP。查看加载日志定位错误
执行:Lazy log clangd_extensions.nvim查看插件加载过程中是否有报错;同时开启LSP debug日志(执行vim.lsp.set_log_level('debug')后查看~/.local/state/nvim/lsp.log),检查clangd启动时是否有和clangd_extensions相关的异常信息。重置插件安装状态
执行:Lazy clean清理残留文件,再运行:Lazy install重新安装clangd_extensions,避免切换插件管理器时残留的旧文件导致加载异常。单独验证document_highlight功能
document_highlight失效可能和clangd_extensions未加载有关,也可能是on_attach里的逻辑问题。可以先在on_attach中手动添加以下代码测试:vim.api.nvim_create_autocmd('CursorHold', { buffer = bufnr, callback = function() vim.lsp.buf.document_highlight() end }) vim.api.nvim_create_autocmd('CursorMoved', { buffer = bufnr, callback = function() vim.lsp.buf.clear_references() end })如果手动配置后功能恢复,说明问题出在clangd_extensions的初始化流程上。
内容的提问来源于stack exchange,提问作者David

