LunarVim无法高亮Solidity语法错误,默认LSP无提示求助
Solidity语法错误实时显示问题排查(LunarVim)
先搞定LSP核心配置
LunarVim的实时语法检查完全依赖Solidity语言服务器(LSP),别乱堆插件,先把这个核心配置捋顺:
安装官方Solidity LSP
打开LunarVim,输入:LspInstall solidity,安装官方维护的Solidity语言服务器,这是最靠谱的语法检测基础。确认LSP正常启动
打开任意.sol文件后,输入:LspInfo,查看服务列表里的solidity状态是否为running。如果没启动,检查你的~/.config/lvim/config.lua:- 确保把
solidity加入LSP自动配置列表:require("lvim.lsp.manager").setup("solidity") - 检查
lvim.lsp.automatic_configuration.skipped_servers里有没有误把solidity排除,有的话删掉。
- 确保把
开启实时诊断显示
在config.lua里添加或确认以下配置,让错误实时显示在编辑器里:vim.diagnostic.config({ virtual_text = true, -- 行内直接显示错误提示 signs = true, underline = true, update_in_insert = true, -- 插入模式下也实时更新诊断 severity_sort = true, })
清理冲突插件
之前装的多款Solidity插件大概率互相冲突,直接卸载除了官方LSP之外的所有Solidity相关插件(包括你尝试的VSCode插件),只保留必要的:
- 如果用Hardhat开发,可保留
NomicFoundation/hardhat-nvim,它能关联Hardhat配置,让LSP更适配项目规则,配置示例:lvim.plugins = { { "NomicFoundation/hardhat-nvim" }, }
匹配项目编译器版本
语法检测和编译器版本强绑定,确保LSP用的版本和项目配置一致。在config.lua里指定版本:
require("lvim.lsp.manager").setup("solidity", { settings = { solidity = { compiler = { version = "0.8.20", -- 替换成你项目用的编译器版本 }, }, }, })
验证效果
重启LunarVim后,打开.sol文件故意写个语法错误(比如漏分号、错用关键字),看行内是否弹出红色提示、左侧是否有错误标识。如果还是不行,输入:checkhealth查看LSP模块的健康报告,定位具体报错。
内容的提问来源于stack exchange,提问作者Juan Colchete
相关产品推荐
相关产品推荐

