SuperAPI AI 工具集

nvim-plugin

编程与开发

查看项目

更新于 10-15 21:47

技能介绍

用途:本技能用于指导按 Neovim 官方约定(https://neovim.io/doc/user/lua-plugin/)用 Lua 编写 Neovim 插件,适合需要在编写或重构插件时获得结构与实践建议的场景。

主要能力与要点: 目录结构:给出标准布局,如 plugin/ 下启动即加载的文件(保持精简)、lua/{插件}/init.lua 主模块、config.lua 配置默认值与校验、health.lua 健康检查、ftplugin/ 文件类型初始化、doc/ vimdoc 及 README;Neovim 会自动发现这些路径,无需注册。 延迟加载:plugin/ 文件保持精简,将 require() 推迟到命令/映射体内部,而非文件顶部,以保留启动速度(含正反示例)。 键位映射:避免自动创建映射以免与用户配置冲突,推荐 <Plug> 映射与 Lua 函数两种方式;缓冲区局部映射需传 buffer = bufnr。 初始化:推荐“配置与初始化分离”模式,插件开箱即用,setup() 只覆盖默认值且不做副作用或耗时工作;初始化放在 plugin/ 或 ftplugin/ 脚本。初始化复杂或风险高时才用合并 setup() 模式。 守卫变量:用 vim.g.loaded_{插件} 防止重复初始化;ftplugin 为逐缓冲区,不需会话级守卫。自定义 UI 缓冲区应尽量晚设置 filetype。 健康检查:创建 lua/{插件}/health.lua,:checkhealth {插件} 会自动发现并检查初始化、配置及外部依赖。 类型注解:用 LuaCATS 标注公开 API,并在 CI 集成 lua-typecheck-action。 还可将 UI 动作暴露为 LSP code-action,用户可用 vim.lsp.buf.code_action() 过滤应用。 版本与弃用:遵循 SemVer,用 vim.deprecate() 标记弃用,可用 luarocks-tag-release 或 release-please-action 自动化发布,含 Lua 依赖或本身作为依赖时发布到 luarocks。 文档:用 panvimdoc 从 Markdown 生成 vimdoc,并执行 :helptags doc/。 开发流程:用 :restart 重载改动,nvim --startuptime /tmp/nvim-startup.log 分析启动,lazy.nvim 规格中加 dev = true 从本地路径加载。 代码风格:按 .stylua.toml,2 空格缩进、双引号、120 字符行宽,用 stylua 排序 require。

限制:资料未提供该技能的具体安装命令、运行环境要求、收费信息或支持平台等,暂未提供。