Skip to content

About

WebGAL 第三方语言服务基础设施(附编辑器和实用工具)

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

WebGAL LSP

WebGAL 语言基础设施。

🚧 项目仍在开发中,欢迎试用和反馈。

✨ 功能

  • 语言解析:提供 WebGAL 语法解析与数据结构支持
  • 自动补全:语句、参数、资源路径、标识符、变量等智能提示 -> 详细说明
  • 静态检查:语法、资源依赖、格式规范等实时检查 -> 详细说明
  • 动态诊断1:通过后台模拟脚本执行,检测逻辑问题 -> 详细说明
  • 语义高亮:语句类型、参数、变量插值、注释等色彩渲染
  • 悬浮文档:悬停查看语句、参数的详细说明 -> 详细说明
  • 引用查询:对象 ID、变量、标签等转到定义、查找引用,及资源链接勾画
  • 统一改名:对话者、对象 ID、变量、标签等重命名
  • 内联提示:变量类型、部分参数省略语法糖提示
  • 代码编辑:提供轻量级编辑器,集成上述语言服务 -> 详细说明
  • 配音工具1:调用本地 GPT-SoVITS v4 为对话生成配音 -> 使用说明
  • 快照打包:生成 WebGAL 项目精简压缩包,便于归档和传播
  • 文本处理:将小说转换为原始脚本(识别对话与断句、分配对话者)

功能展示

WebGAL Ink 编辑器功能展示

🚀 快速开始

⚙️ 语言服务器

核心语言服务,提供 WebGAL 语法解析、自动补全、静态检查、语义高亮等 LSP 能力。

Important

此服务器在标准 LSP 的基础上进行了扩展,第三方客户端需要提供支持。

编译

cargo build -p webgal-language-server

启动模式

语言服务器支持两种通信模式,根据客户端类型选择:

  • 💻 stdio 模式(默认):适用于 VS Code 等桌面客户端。

    cargo run -p webgal-language-server
  • 🌐 WebSocket 模式:适用于浏览器环境(如 Monaco)。

    cargo run -p webgal-language-server -- --port 8765

    服务器将监听 ws://127.0.0.1:8765,接受一个 WebSocket 连接。

服务器配置

日志输出到 stderr,所有参数均为可选:

  • 日志:--log-level <LEVEL>(error/warn/info/debug/trace,默认 error),--log-format <FORMAT>(plain/text/json,默认 plain)
  • 功能开关:--disable-{diagnose,definition,references,document-link,color,hover,highlight,inlay-hint,complete,format,rename} 可分别禁用对应能力(默认全部开启)
  • 诊断调优:--diagnostic-delay <MS>(批处理延迟,默认 500ms),--diagnostic-timeout <MS>(生成超时,默认 10000ms)

示例:

cargo run -p webgal-language-server -- --log-level debug --disable-hover --disable-complete --diagnostic-delay 300

✏️ WebGAL Ink 编辑器

基于 Tauri 2 + React + Monaco + Fluent UI 的 WebGAL 桌面场景编辑器,内置上述语言服务与实用工具等功能,开箱即用。

在 VS Code 中打开项目根目录,选择 Launch Ink Editor 启动配置(按 F5,或运行同名任务)即可启动开发模式(首次运行会自动安装依赖并编译)。

编辑器特性:

  • 内置 LSP:嵌入本项目语言服务器,在编辑器中集成全部功能;
  • 实时预览、git 版本控制、资源浏览、深浅色主题与编辑器设置;
  • 实用工具:支持 GSOV 配音工具、快照打包、小说文本预处理等特性。

📦 VS Code 扩展

⚠️ 该扩展仅用于调试,不会发布到扩展市场。

扩展源码位于 packages/vscode-extension。

  1. 安装依赖:
    cd packages/vscode-extension
    npm install
  2. 在 VS Code 中打开项目根目录,按 F5 并选择 Launch VSCode Extension 调试配置,将自动编译语言服务器并启动扩展开发窗口。

🧪 基础解析 Playground

WebGAL 解析器的在线演示工具,支持实时解析和语义高亮。

  • 在线预览:https://fltli.github.io/webgal-lsp
  • 本地运行:在 VS Code 中打开项目根目录,按 F5 并选择 Launch Parse Playground 调试配置,将自动编译运行并打开网页。

🗃️ 快照打包

将开发中的 WebGAL 项目打包为精简压缩包:游戏资源仅打包被调用的部分(从初始场景递归收集语句与配置引用的资源,并展开立绘关联资产),其余资源全部保留。可通过命令行或 Ink 编辑器使用。

编译

cargo build -p webgal-snapshot --release

使用

# 打包一个或多个项目,默认输出至各项目目录下的 <项目名>.zip
webgal-snapshot [选项] <项目路径>...

常用选项(完整参数见 webgal-snapshot --help):

  • -o <输出.zip>:自定义输出压缩包路径
  • -c <方式>:压缩方式(stored / deflated / deflate64 / bzip2 / zstd / lzma / ppmd)
  • -f:跟随符号链接遍历目录

Ink 编辑器顶栏的快照打包按钮同样提供该功能(选择输出位置后实时显示进度与结果)。

🤖 AI 使用声明

本项目对 AI 使用采取宽松策略,具体由维护者根据改动性质判断。

类型 要求
AI 生成内容 需要在注释中标注由 AI 生成。
非核心代码 可全权交由 AI 实现。
测试、辅助代码 允许 AI 生成。
文档及注释润色 允许使用,并且无需标注。

Important

使用 AI 编码代理前请先让它读 AGENTS.md。 本节只是使用策略,AGENTS.md 才是对代理的工作要求。

📄 许可证

  • Code: MPL-2.0, 2026, fltLi
  • Built-in documentation: MPL-2.0, derived from OpenWebGAL/WebGAL_Doc, located at crates/webgal-language-service/data/document.json

Footnotes

  1. 实验性功能,后续将逐步完善和稳定。 ↩ ↩2

About

WebGAL 第三方语言服务基础设施(附编辑器和实用工具)

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages