Skip to content
| Marketplace
Sign in
Visual Studio Code>Programming Languages>神途开发助手 (Shentu Dev Assistant)New to Visual Studio Code? Get it now.
神途开发助手 (Shentu Dev Assistant)

神途开发助手 (Shentu Dev Assistant)

GrowlR

|
6 installs
| (0) | Free
神途引擎 Lua API 智能提示与 .laye 界面文件支持:客户端/服务端 API 补全、form XML 控件属性补全、内嵌脚本高亮与诊断。
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

神途开发助手 (shentu-vscode)

针对神途引擎的 VS Code 开发支持插件:

  1. Lua API 智能提示 — 内置客户端(CL / GUI / UI / xml / 全局函数,约 1800+ 接口)与服务端(lualib,约 1200+ 接口)API 存根,为 .lua 文件提供补全、悬停文档、签名提示。
  2. .laye 界面文件支持 — .laye 是基于 XML 的窗口描述文件(<form> 根节点,控件用标记描述,<script><![CDATA[...]]></script> 中为内嵌 Lua 脚本)。本插件为其提供语法高亮、控件/属性/事件补全、文档悬停、诊断与内嵌脚本 API 提示。

Lua API 智能提示

插件优先与 sumneko.lua(Lua 语言服务器)集成:激活时自动把内置 API 存根目录注册到 Lua.workspace.library,由语言服务器提供完整的补全/悬停/签名/跳转/诊断能力(本插件安装时会自动作为依赖安装)。

若未安装 sumneko.lua,插件自动退回内置轻量提供器(仅神途 API 的补全/悬停/签名,不含 Lua 语法诊断)。

状态栏的 Lua 语言状态项(神途 API)显示当前工作方式;命令面板可执行:

  • 神途: 重新应用 Lua API 定义 — 手动重新注册存根(升级插件或切换配置后使用)
  • 神途: 打开客户端 API 文档 / 神途: 打开服务端 API 文档 — 打开在线文档(地址可在设置中修改)

相关设置:

设置 说明 默认
shentu.luaApi.enable 是否启用 API 定义 true
shentu.luaApi.provider auto / sumneko / builtin auto
shentu.luaApi.stubs 加载哪些存根:client / server 两者

存根文件位于插件目录 stubs/(EmmyLua 注释格式),来自官方接口文档整理,需要补充接口时可直接编辑后执行「重新应用」。

.laye 文件支持

.laye 文件结构(来自官方《form 解析创建窗口》文档):

<form>
    <dialog id=摆摊错误提示 w=280 h=180 title=摆摊位置错误 center=true OnInit=StallErrorPanel.OnInit>
        <button id=确定 x=100 y=120 text="确 定" OnLButtonClick=StallErrorPanel.Confirm />
    </dialog>

    <script><![CDATA[
        StallErrorPanel = {}
        local t = StallErrorPanel

        t.Confirm = function(this)
            GUI:WndClose(GUI:WndGetParentM(this))
        end
    ]]></script>
</form>

功能:

  • 语法高亮:XML 标记 + <script> 内嵌 Lua(含标签间的 -- 注释)
  • 标签补全:< 后触发,收录 form / dialog / button / check / image / edit / richedit / static / itemctrl / combobox / script
  • 属性/事件补全与悬停:每个控件的全部属性与事件(含回调原型、默认值、适用端说明)
  • 属性值补全:布尔值、枚举值(如 align、type)、事件函数名(列出本文档 script 中已定义的函数)
  • 内嵌脚本 API 提示:script 区内获得与 .lua 相同的神途 API 补全/悬停/签名提示
  • 诊断:
    • 宽松 XML 校验(未闭合标签、非法字符、未闭合引号/注释/CDATA —— 兼容官方示例中不带引号的属性值写法)
    • 窗口缺少必需属性 id、同一父窗口下 id 重复
    • 事件属性引用的函数未在 <script> 中定义(附快速修复:一键生成事件函数骨架)
    • 未知控件标记/未收录属性提示
  • 大纲视图:按控件层级展示,显示控件 id
  • 代码片段:form 完整窗口模板及各控件片段

相关设置:shentu.laye.diagnostics.enable、shentu.laye.checkEventHandlers、shentu.laye.checkDuplicateIds、shentu.laye.checkUnknownAttributes。

开发与打包

npm install
npm run compile   # tsc 编译到 out/
npm run watch     # 开发监视(F5 调试)
npm test          # 纯逻辑模块冒烟测试(存根解析 / laye 解析)
npm run package   # 生成 .vsix(需 npx @vscode/vsce)

安装 vsix:code --install-extension shentu-vscode-0.1.0.vsix(或 VS Code「扩展 → … → 从 VSIX 安装」)。

目录结构

├─ data/laye-tags.json        # form 控件/属性元数据(文档表格整理)
├─ language-configuration/    # laye 语言配置
├─ snippets/laye.json         # 代码片段
├─ stubs/                     # 神途 Lua API 存根(clientlib.lua / lualib.lua)
├─ syntaxes/laye.tmLanguage.json
├─ src/                       # TypeScript 源码
└─ out/                       # 编译输出
  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
  • Your Privacy Choices
  • Consumer Health Privacy
© 2026 Microsoft