lua-language-server 安装与配置:三分钟跑起来,常用设置一次到位

lua-language-server 安装与配置:三分钟跑起来,常用设置一次到位 lua-language-server 安装与配置三分钟跑起来常用设置一次到位【免费下载链接】lua-language-serverA language server that offers Lua language support - programmed in Lua项目地址: https://gitcode.com/gh_mirrors/lu/lua-language-serverlua-language-server 是一个用 Lua 编写的语言服务器负责在编辑器里提供智能提示、报错标记和类型推断。这篇文章把安装和常用配置走一遍先三分钟装好再按 VSCode 和 NeoVim 分别设置。三分钟跑起来打开 VSCode 扩展面板CtrlShiftX搜索sumneko.lua点击安装。这是 VSCode 上安装量近百万、使用最广的 Lua 扩展。重启后打开任意.lua文件输入内置函数名会出现建议故意写一个不存在的变量名该行会被标出来——服务器已在后台工作。如果只要提示和报错这两个效果到这里就够了。按编辑器分别配置在 VSCode 里默认用扩展自带的版本。需要最新特性或想改源码时克隆仓库并执行构建git clone https://gitcode.com/gh_mirrors/lu/lua-language-server cd lua-language-server ./make.sh构建完成后会生成可运行的lua-language-server可执行文件。在项目根目录建.luarc.json只给这一个项目写独立配置不影响别的项目。在终端运行lua-language-server --check会输出一份诊断报告用来确认配置是否按预期生效。在 NeoVim 里前提是本机已有可执行的lua-language-server。在 NeoVim 配置里加入下面这一段requirelspconfig.sumneko_lua.setup { settings { Lua { runtime { version Lua 5.4 }, diagnostics { globals { vim } } } } }重启 NeoVim、打开 Lua 文件后补全和诊断即生效需要加载工作区外的代码时把目录填进workspace.library即可。值得改的 6 个配置项这些配置项既可以写在编辑器全局设置里也可以放进项目的.luarc.json后者只对当前项目生效。配置项作用什么时候用completion.autoRequire输入看起来像文件名时自动生成require语句希望补全直接帮你写好 require 调用completion.callSnippet控制函数建议是否显示调用片段取值Disable/Both/Replace建议列表偏长想一眼看到参数diagnostics.globals被视为已定义的全局变量白名单vim、love这类框架全局变量被标未定义时diagnostics.disable按代码关闭诊断如trailing-space某些提示太吵、想单独降噪runtime.version分析的 Lua 版本从Lua 5.1到Lua 5.5外加LuaJIT项目版本与默认的Lua 5.4不一致时workspace.library额外当作外部代码库加载的目录工作区之外的代码也需要提示出了问题怎么办四个常见症状对照编辑器完全没有提示也不标错服务器进程没起来常见于路径不对或构建失败。先在项目目录里单独跑--check验证命令本身再查编辑器侧的 LSP 日志。vim、love这类全局变量被标为未定义不在白名单里。把名字加进diagnostics.globals。标准库行为或语法判断不符合预期runtime.version与项目实际用的版本不一致默认是Lua 5.4改成你真正在用的那个。第三方库没有提示对应目录没被加载。把路径加进workspace.library库很大导致分析慢的话可以按需缩小加载范围。下一步完整配置项清单在仓库的doc/zh-cn/config.md中每项都标注了类型和默认值功能变动看changelog.md当前版本已支持Lua 5.5。想扩展能力可以研究lua/plugins/下的插件机制界面语言则通过--locale在en-us、zh-cn、ja-jp、pt-br之间切换。【免费下载链接】lua-language-serverA language server that offers Lua language support - programmed in Lua项目地址: https://gitcode.com/gh_mirrors/lu/lua-language-server创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考