Skip to content

Repository files navigation

WebGAL LSP

WebGAL 语言基础设施。

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

✨ 功能

  • 语言解析:提供 WebGAL 语法解析与数据结构支持
  • 自动补全:语句、参数、资源路径、标识符等智能提示 -> 详细说明
  • 静态检查:语法、资源依赖、格式规范等实时检查 -> 详细说明
  • 动态诊断1:通过后台模拟脚本执行,检测逻辑问题 -> 详细说明
  • 语义高亮:语句类型、参数、注释等色彩渲染
  • 悬浮文档:悬停查看语句、参数的详细说明 -> 详细说明
  • 代码编辑:提供轻量级编辑器,集成上述语言服务 -> 详细说明

功能展示

语言服务器功能展示

🚀 快速开始

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,hover,highlight,complete,format} 可分别禁用对应能力(默认全部开启)
  • 诊断调优--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 桌面场景编辑器,内置上述语言服务与实时预览,开箱即用。

  1. 安装依赖:

    npm install
  2. 启动开发模式:

    cd editor
    npm run tauri dev

编辑器特性:

  • 多标签场景编辑、自动保存、最近项目;
  • 内置 LSP:语义高亮、自动补全、诊断、格式化、悬浮文档等;
  • 实时预览、资源浏览、深浅色主题与编辑器设置。

📦 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 调试配置以编译运行并打开网页。

📄 许可证

Footnotes

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

About

WebGAL 语言服务基础设施

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages