Skip to content

Feat/game config#158

Merged
GeWuYou merged 7 commits into
mainfrom
feat/game-config
Apr 2, 2026
Merged

Feat/game config#158
GeWuYou merged 7 commits into
mainfrom
feat/game-config

Conversation

@GeWuYou

@GeWuYou GeWuYou commented Apr 2, 2026

Copy link
Copy Markdown
Owner

Summary by Sourcery

在 GFramework VS Code 配置工具中支持编辑由 schema 定义的对象数组,并在新的 gframework-config-tool 包名下对该扩展进行重命名和品牌更新。

New Features:

  • 为对象数组添加 schema 感知的表单编辑能力,包括在 VS Code 预览中创建、更新和删除对象数组项。

Enhancements:

  • 重构表单字段渲染为可复用的辅助方法,以支持对象数组编辑器和嵌套的显示路径。
  • 扩展 YAML 渲染逻辑,在清空对象数组时输出显式的空数组语法。
  • 改进扩展的元数据、命名以及仓库链接,以迁移到 gframework-config-tool 包为契机进行优化。

Build:

  • 添加基于 Bun 的脚本和 vsce 配置,用于测试、打包和发布 VS Code 扩展。

CI:

  • 新增一个(当前被注释掉的)GitHub Actions 工作流,用于打包并可选地发布 VS Code 扩展。

Documentation:

  • 更新扩展的 README 和中文配置系统文档,以说明对象数组表单编辑功能以及新的本地测试与发布工作流。

Tests:

  • 添加覆盖 applyFormUpdates 在对象数组负载上的行为的测试,包括重写数组项和清空数组的场景。

Chores:

  • tools/gframework-config-tool 下新增扩展专用的忽略文件、许可证和锁定文件。
Original summary in English

Summary by Sourcery

Support editing schema-defined object arrays in the GFramework VS Code config tool and rebrand the extension under the new gframework-config-tool package.

New Features:

  • Add schema-aware form editing for arrays of objects, including creating, updating, and deleting object-array items from the VS Code preview.

Enhancements:

  • Refactor form field rendering into reusable helpers to support object-array editors and nested display paths.
  • Extend YAML rendering to emit explicit empty array syntax for cleared object arrays.
  • Improve extension metadata, naming, and repository links as part of migrating to the gframework-config-tool package.

Build:

  • Add Bun-based scripts and vsce configuration for testing, packaging, and publishing the VS Code extension.

CI:

  • Introduce a (currently commented-out) GitHub Actions workflow for packaging and optionally publishing the VS Code extension.

Documentation:

  • Update extension README and Chinese config-system docs to document object-array form editing and new local testing and publishing workflows.

Tests:

  • Add tests covering applyFormUpdates behavior for object-array payloads, including rewriting items and clearing arrays.

Chores:

  • Add extension-specific ignore files, license, and lockfile under tools/gframework-config-tool.

GeWuYou added 6 commits April 1, 2026 21:35
- 新增游戏内容配置系统完整文档,介绍AI-First配表方案
- 实现YAML配置源文件和JSON Schema结构描述功能
- 添加运行时只读查询和Source Generator类型生成能力
- 集成VSCode插件提供配置浏览、校验和表单编辑功能
- 支持开发期热重载和跨表引用校验机制
- 提供批量编辑和嵌套对象安全表单入口
- 创建 VS Code 扩展用于浏览、验证和编辑 GFramework 项目的配置文件
- 实现配置文件浏览器视图和相关命令功能
- 添加 YAML 文件和匹配模式文件的打开功能
- 实现嵌套对象字段的轻量级表单预览功能
- 添加批量编辑配置域的功能
- 集成轻量级模式验证支持
- 创建 GitHub Actions 工作流用于打包和发布扩展
- 配置扩展的激活事件和菜单贡献点
- 设置工作区配置选项用于指定配置和模式路径
- 将 publisher 字段从 gewuyou 更改为 GeWuYou
- 保持其他配置信息不变
- 添加项目配置验证模块 configValidation.js
- 创建扩展功能模块 extension.js
- 添加配置验证测试文件 configValidation.test.js
- 配置 .gitignore 忽略规则
- 添加 LICENSE 许可证文件
- 创建 package.json 项目依赖配置
- 添加 README.md 项目说明文档
- 实现了配置模式解析器,支持嵌套对象和数组结构
- 添加了YAML解析和验证功能,支持语法检查和类型匹配
- 实现了批量编辑器,支持标量和标量数组属性的更新
- 添加了表单更新应用功能,可将更改写回YAML文件
- 提供了完整的单元测试覆盖核心功能验证
- 配置了项目依赖管理和忽略规则
- 添加了Apache 2.0许可证文件
- 注释掉整个 GitHub Actions 工作流配置文件
- 暂时停用扩展发布到 Visual Studio Marketplace 的功能
- 保留原始配置代码以备后续启用
@sourcery-ai

sourcery-ai Bot commented Apr 2, 2026

Copy link
Copy Markdown

审阅者指南

将 VS Code 配置扩展重构和更名为 gframework-config-tool,同时扩展模式感知(schema-aware)的表单预览以完全支持对象数组的编辑,包括对象数组负载在 YAML 中的结构化往返转换;并添加打包/发布元数据,以及用于 Marketplace 分发的(已注释掉的)CI 工作流脚手架。

从 VS Code 表单预览中保存对象数组编辑的序列图

sequenceDiagram
    actor User
    participant VSCodeFormWebview as VSCodeFormWebview
    participant VSCodeExtension as VSCodeExtension
    participant applyFormUpdates as applyFormUpdates
    participant FileSystem as FileSystem

    User->>VSCodeFormWebview: Edit scalar fields, scalar arrays, object-array items
    User->>VSCodeFormWebview: Click Save

    VSCodeFormWebview->>VSCodeFormWebview: Collect scalars from [data-path]
    VSCodeFormWebview->>VSCodeFormWebview: Collect arrays from textarea[data-array-path]
    VSCodeFormWebview->>VSCodeFormWebview: Collect objectArrays via data-object-array-editor
    VSCodeFormWebview->>VSCodeFormWebview: Build nested item values with setNestedObjectValue

    VSCodeFormWebview->>VSCodeExtension: postMessage {type: save, scalars, arrays, objectArrays}

    VSCodeExtension->>FileSystem: readFile(configUri)
    FileSystem-->>VSCodeExtension: originalYaml

    VSCodeExtension->>applyFormUpdates: applyFormUpdates(originalYaml, {scalars, arrays, objectArrays})
    applyFormUpdates->>applyFormUpdates: parseTopLevelYaml + normalizeRootNode
    applyFormUpdates->>applyFormUpdates: set scalar nodes via setNodeAtPath
    applyFormUpdates->>applyFormUpdates: set scalar-array nodes via createArrayNode
    applyFormUpdates->>applyFormUpdates: build object arrays with createNodeFromFormValue
    applyFormUpdates-->>VSCodeExtension: updatedYaml

    VSCodeExtension->>FileSystem: writeFile(configUri, updatedYaml)
    VSCodeExtension->>VSCodeExtension: openTextDocument(configUri)
    VSCodeExtension->>VSCodeExtension: showTextDocument(document)

    VSCodeExtension-->>VSCodeFormWebview: (implicit) updated file visible in editor
Loading

更新后的表单模型与 YAML 更新流水线的类图

classDiagram
    class FormModel {
      +FormField[] fields
      +UnsupportedField[] unsupported
    }

    class FormField {
      <<interface>>
      +string kind
      +string path
      +string displayPath
      +string label
      +boolean required
      +number depth
      +any schema
      +boolean itemMode
    }

    class SectionField {
      +string kind~section~
      +string description
    }

    class ScalarField {
      +string kind~scalar~
      +any value
    }

    class ArrayField {
      +string kind~array~
      +string itemType
      +string[] value
    }

    class ObjectArrayField {
      +string kind~objectArray~
      +ObjectArrayItem[] items
      +FormField[] templateFields
    }

    class ObjectArrayItem {
      +string title
      +FormField[] fields
    }

    class UnsupportedField {
      +string path
      +string message
    }

    class collectFormFields {
      +collectFormFields(schemaNode, yamlNode, currentPath, depth, fields, unsupported)
    }

    class collectObjectArrayItemFields {
      +collectObjectArrayItemFields(schemaNode, yamlNode, localPath, displayPath, depth, fields, unsupported)
    }

    class buildObjectArrayItemModels {
      +buildObjectArrayItemModels(itemSchema, yamlNode, propertyPath, depth, unsupported) ObjectArrayItem[]
    }

    class applyFormUpdates {
      +applyFormUpdates(originalYaml, updates) string
    }

    class createNodeFromFormValue {
      +createNodeFromFormValue(value) YamlNode
    }

    class YamlNode {
      <<interface>>
      +string kind
    }

    class YamlScalarNode {
      +string kind~scalar~
      +string value
    }

    class YamlArrayNode {
      +string kind~array~
      +YamlNode[] items
    }

    class YamlObjectNode {
      +string kind~object~
      +YamlObjectEntry[] entries
    }

    class YamlObjectEntry {
      +string key
      +YamlNode node
    }

    class renderFormField {
      +renderFormField(field) string
    }

    class renderObjectArrayItem {
      +renderObjectArrayItem(item) string
    }

    FormModel "1" --> "*" FormField : fields
    FormModel "1" --> "*" UnsupportedField : unsupported

    FormField <|-- SectionField
    FormField <|-- ScalarField
    FormField <|-- ArrayField
    FormField <|-- ObjectArrayField

    ObjectArrayField "1" --> "*" ObjectArrayItem : items
    ObjectArrayField "1" --> "*" FormField : templateFields
    ObjectArrayItem "1" --> "*" FormField : fields

    collectFormFields ..> SectionField : creates
    collectFormFields ..> ScalarField : creates
    collectFormFields ..> ArrayField : creates
    collectFormFields ..> ObjectArrayField : creates
    collectFormFields ..> buildObjectArrayItemModels : uses
    collectFormFields ..> collectObjectArrayItemFields : uses

    collectObjectArrayItemFields ..> SectionField : creates
    collectObjectArrayItemFields ..> ScalarField : creates
    collectObjectArrayItemFields ..> ArrayField : creates

    buildObjectArrayItemModels ..> ObjectArrayItem : creates
    buildObjectArrayItemModels ..> collectObjectArrayItemFields : uses

    renderFormField ..> SectionField : renders
    renderFormField ..> ScalarField : renders
    renderFormField ..> ArrayField : renders
    renderFormField ..> ObjectArrayField : renders
    renderFormField ..> renderObjectArrayItem : uses

    renderObjectArrayItem ..> FormField : renders via renderFormField

    YamlNode <|-- YamlScalarNode
    YamlNode <|-- YamlArrayNode
    YamlNode <|-- YamlObjectNode

    applyFormUpdates ..> YamlNode : manipulates
    applyFormUpdates ..> createNodeFromFormValue : uses

    createNodeFromFormValue ..> YamlScalarNode : creates
    createNodeFromFormValue ..> YamlArrayNode : creates
    createNodeFromFormValue ..> YamlObjectNode : creates
    YamlObjectNode "1" --> "*" YamlObjectEntry : entries
Loading

文件级变更

Change Details Files
将来自 webview 表单的对象数组编辑通过扩展后的表单负载和新的 YAML 节点转换工具接入到 YAML 更新流程中。
  • 扩展 webview 保存负载和扩展消息处理逻辑,在标量和数组值之外新增一个 objectArrays 结构。
  • applyFormUpdates 添加对对象数组路径改写的支持,通过新的 createNodeFromFormValue 辅助函数,从结构化的条目负载创建数组节点。
  • 确保 YAML 渲染在对象数组为空时输出 key: [],以保留显式的空数组。
tools/gframework-config-tool/src/extension.js
tools/gframework-config-tool/src/configValidation.js
tools/gframework-config-tool/test/configValidation.test.js
引入可复用的、模式感知的表单渲染模型,在 VS Code webview 中支持对象数组的编辑(添加/移除条目、嵌套标量和标量数组)。
  • 将字段渲染重构为 renderFormFieldrenderObjectArrayItem,并为 objectArray 字段类型和条目本地路径添加支持。
  • 扩展表单模型构建器,利用 collectObjectArrayItemFieldsbuildObjectArrayItemModels 收集 objectArray 字段,包括对嵌套对象和标量数组的处理,同时标记不支持的结构。
  • 增强 webview 脚本,加入用于解析 textarea 数组、设置嵌套对象值、动态添加/移除对象数组条目以及在保存时组装 objectArrays 负载的辅助函数。
  • 为对象数组编辑器、条目标题和更深的嵌套层级添加样式和布局,并为添加/移除操作提供次要按钮样式。
tools/gframework-config-tool/src/extension.js
将 VS Code 扩展从 vscode-config-extension 更名并迁移到 gframework-config-tool,同时更新元数据、文档以及用于本地测试和 Marketplace 发布的工具链。
  • package.json 中重命名扩展包名、发行者大小写,并更新描述、关键字、仓库、主页和问题反馈(bugs)URL;添加 vsce 配置、开发依赖以及打包/发布脚本。
  • 更新 README 和中文游戏配置文档,说明对象数组编辑支持以及新的测试/打包命令,并调整当前限制相关文档。
  • 为 GitHub Actions 工作流添加脚手架(当前被注释掉),用于在打标签推送或手动触发时打包并可选地发布 VSIX。
  • 在新工具目录下添加扩展本地的忽略文件(.gitignore.vscodeignore)、许可证以及 Bun 锁定文件。
tools/gframework-config-tool/package.json
tools/gframework-config-tool/README.md
docs/zh-CN/game/config-system.md
.github/workflows/publish-vscode-extension.yml
tools/gframework-config-tool/.gitignore
tools/gframework-config-tool/.vscodeignore
tools/gframework-config-tool/LICENSE
tools/gframework-config-tool/bun.lock

技巧与命令

与 Sourcery 交互

  • 触发新的审查: 在 Pull Request 上评论 @sourcery-ai review
  • 继续讨论: 直接回复 Sourcery 的审查评论。
  • 从审查评论生成 GitHub Issue: 通过回复审查评论,要求 Sourcery 从该评论创建一个 issue。你也可以回复审查评论 @sourcery-ai issue 来基于该评论创建 issue。
  • 生成 Pull Request 标题: 在 Pull Request 标题中的任意位置写上 @sourcery-ai 即可随时生成标题。你也可以在 Pull Request 中评论 @sourcery-ai title 来(重新)生成标题。
  • 生成 Pull Request 摘要: 在 Pull Request 正文任意位置写上 @sourcery-ai summary,即可在对应位置生成 PR 摘要。你也可以在 Pull Request 中评论 @sourcery-ai summary 来在任何时候(重新)生成摘要。
  • 生成审阅者指南: 在 Pull Request 中评论 @sourcery-ai guide 来在任意时间(重新)生成审阅者指南。
  • 解决所有 Sourcery 评论: 在 Pull Request 中评论 @sourcery-ai resolve 来将所有 Sourcery 评论标记为已解决。如果你已经处理完所有评论且不希望再看到它们,这会非常有用。
  • 撤销所有 Sourcery 审查: 在 Pull Request 中评论 @sourcery-ai dismiss 来撤销所有现有的 Sourcery 审查。尤其适用于你想从头开始新的审查流程的情况——别忘了再评论 @sourcery-ai review 来触发新的审查!

自定义你的体验

访问你的 控制面板 来:

  • 启用或禁用审查特性,例如 Sourcery 生成的 Pull Request 摘要、审阅者指南等。
  • 更改审查语言。
  • 添加、删除或编辑自定义审查指令。
  • 调整其他审查设置。

获取帮助

Original review guide in English

Reviewer's Guide

Refactors and rebrands the VS Code config extension into gframework-config-tool while extending the schema-aware form preview to fully support editing arrays of objects, including structured round‑trip of object-array payloads into YAML, and adds packaging/publishing metadata plus (commented-out) CI workflow scaffolding for Marketplace distribution.

Sequence diagram for saving object-array edits from the VS Code form preview

sequenceDiagram
    actor User
    participant VSCodeFormWebview as VSCodeFormWebview
    participant VSCodeExtension as VSCodeExtension
    participant applyFormUpdates as applyFormUpdates
    participant FileSystem as FileSystem

    User->>VSCodeFormWebview: Edit scalar fields, scalar arrays, object-array items
    User->>VSCodeFormWebview: Click Save

    VSCodeFormWebview->>VSCodeFormWebview: Collect scalars from [data-path]
    VSCodeFormWebview->>VSCodeFormWebview: Collect arrays from textarea[data-array-path]
    VSCodeFormWebview->>VSCodeFormWebview: Collect objectArrays via data-object-array-editor
    VSCodeFormWebview->>VSCodeFormWebview: Build nested item values with setNestedObjectValue

    VSCodeFormWebview->>VSCodeExtension: postMessage {type: save, scalars, arrays, objectArrays}

    VSCodeExtension->>FileSystem: readFile(configUri)
    FileSystem-->>VSCodeExtension: originalYaml

    VSCodeExtension->>applyFormUpdates: applyFormUpdates(originalYaml, {scalars, arrays, objectArrays})
    applyFormUpdates->>applyFormUpdates: parseTopLevelYaml + normalizeRootNode
    applyFormUpdates->>applyFormUpdates: set scalar nodes via setNodeAtPath
    applyFormUpdates->>applyFormUpdates: set scalar-array nodes via createArrayNode
    applyFormUpdates->>applyFormUpdates: build object arrays with createNodeFromFormValue
    applyFormUpdates-->>VSCodeExtension: updatedYaml

    VSCodeExtension->>FileSystem: writeFile(configUri, updatedYaml)
    VSCodeExtension->>VSCodeExtension: openTextDocument(configUri)
    VSCodeExtension->>VSCodeExtension: showTextDocument(document)

    VSCodeExtension-->>VSCodeFormWebview: (implicit) updated file visible in editor
Loading

Class diagram for updated form model and YAML update pipeline

classDiagram
    class FormModel {
      +FormField[] fields
      +UnsupportedField[] unsupported
    }

    class FormField {
      <<interface>>
      +string kind
      +string path
      +string displayPath
      +string label
      +boolean required
      +number depth
      +any schema
      +boolean itemMode
    }

    class SectionField {
      +string kind~section~
      +string description
    }

    class ScalarField {
      +string kind~scalar~
      +any value
    }

    class ArrayField {
      +string kind~array~
      +string itemType
      +string[] value
    }

    class ObjectArrayField {
      +string kind~objectArray~
      +ObjectArrayItem[] items
      +FormField[] templateFields
    }

    class ObjectArrayItem {
      +string title
      +FormField[] fields
    }

    class UnsupportedField {
      +string path
      +string message
    }

    class collectFormFields {
      +collectFormFields(schemaNode, yamlNode, currentPath, depth, fields, unsupported)
    }

    class collectObjectArrayItemFields {
      +collectObjectArrayItemFields(schemaNode, yamlNode, localPath, displayPath, depth, fields, unsupported)
    }

    class buildObjectArrayItemModels {
      +buildObjectArrayItemModels(itemSchema, yamlNode, propertyPath, depth, unsupported) ObjectArrayItem[]
    }

    class applyFormUpdates {
      +applyFormUpdates(originalYaml, updates) string
    }

    class createNodeFromFormValue {
      +createNodeFromFormValue(value) YamlNode
    }

    class YamlNode {
      <<interface>>
      +string kind
    }

    class YamlScalarNode {
      +string kind~scalar~
      +string value
    }

    class YamlArrayNode {
      +string kind~array~
      +YamlNode[] items
    }

    class YamlObjectNode {
      +string kind~object~
      +YamlObjectEntry[] entries
    }

    class YamlObjectEntry {
      +string key
      +YamlNode node
    }

    class renderFormField {
      +renderFormField(field) string
    }

    class renderObjectArrayItem {
      +renderObjectArrayItem(item) string
    }

    FormModel "1" --> "*" FormField : fields
    FormModel "1" --> "*" UnsupportedField : unsupported

    FormField <|-- SectionField
    FormField <|-- ScalarField
    FormField <|-- ArrayField
    FormField <|-- ObjectArrayField

    ObjectArrayField "1" --> "*" ObjectArrayItem : items
    ObjectArrayField "1" --> "*" FormField : templateFields
    ObjectArrayItem "1" --> "*" FormField : fields

    collectFormFields ..> SectionField : creates
    collectFormFields ..> ScalarField : creates
    collectFormFields ..> ArrayField : creates
    collectFormFields ..> ObjectArrayField : creates
    collectFormFields ..> buildObjectArrayItemModels : uses
    collectFormFields ..> collectObjectArrayItemFields : uses

    collectObjectArrayItemFields ..> SectionField : creates
    collectObjectArrayItemFields ..> ScalarField : creates
    collectObjectArrayItemFields ..> ArrayField : creates

    buildObjectArrayItemModels ..> ObjectArrayItem : creates
    buildObjectArrayItemModels ..> collectObjectArrayItemFields : uses

    renderFormField ..> SectionField : renders
    renderFormField ..> ScalarField : renders
    renderFormField ..> ArrayField : renders
    renderFormField ..> ObjectArrayField : renders
    renderFormField ..> renderObjectArrayItem : uses

    renderObjectArrayItem ..> FormField : renders via renderFormField

    YamlNode <|-- YamlScalarNode
    YamlNode <|-- YamlArrayNode
    YamlNode <|-- YamlObjectNode

    applyFormUpdates ..> YamlNode : manipulates
    applyFormUpdates ..> createNodeFromFormValue : uses

    createNodeFromFormValue ..> YamlScalarNode : creates
    createNodeFromFormValue ..> YamlArrayNode : creates
    createNodeFromFormValue ..> YamlObjectNode : creates
    YamlObjectNode "1" --> "*" YamlObjectEntry : entries
Loading

File-Level Changes

Change Details Files
Wire object-array edits from the webview form into YAML updates via an extended form payload and new YAML node conversion utilities.
  • Extend the webview save payload and extension message handling to include an objectArrays structure alongside scalar and array values.
  • Add applyFormUpdates support for rewriting object-array paths by creating array nodes from structured item payloads using a new createNodeFromFormValue helper.
  • Ensure YAML rendering outputs key: [] for empty object arrays to preserve explicit empties.
tools/gframework-config-tool/src/extension.js
tools/gframework-config-tool/src/configValidation.js
tools/gframework-config-tool/test/configValidation.test.js
Introduce a reusable, schema-aware form rendering model that supports editing object arrays (add/remove items, nested scalars, and scalar arrays) in the VS Code webview.
  • Refactor field rendering into renderFormField and renderObjectArrayItem, adding support for objectArray field kinds and item-local paths.
  • Extend the form model builder with objectArray field collection via collectObjectArrayItemFields and buildObjectArrayItemModels, including handling of nested objects and scalar arrays while flagging unsupported shapes.
  • Enhance the webview script with helpers for parsing textarea arrays, setting nested object values, dynamically adding/removing object-array items, and assembling objectArrays payloads on save.
  • Add styling and layout for object-array editors, item headers, and deeper nesting depths, plus a secondary button style for add/remove actions.
tools/gframework-config-tool/src/extension.js
Rebrand and relocate the VS Code extension from vscode-config-extension to gframework-config-tool, updating metadata, docs, and tooling for local testing and Marketplace publishing.
  • Rename the extension package, publisher casing, and update description, keywords, repository, homepage, and bugs URLs in package.json; add vsce config, devDependency, and packaging/publishing scripts.
  • Update the README and Chinese game config docs to describe object-array editing support and new testing/packaging commands, and adjust current limitations documentation.
  • Add scaffolding for a GitHub Actions workflow (currently commented out) to package and optionally publish the VSIX on tagged pushes or manual dispatch.
  • Introduce extension-local ignore files (.gitignore, .vscodeignore), license, and Bun lockfile under the new tool directory.
tools/gframework-config-tool/package.json
tools/gframework-config-tool/README.md
docs/zh-CN/game/config-system.md
.github/workflows/publish-vscode-extension.yml
tools/gframework-config-tool/.gitignore
tools/gframework-config-tool/.vscodeignore
tools/gframework-config-tool/LICENSE
tools/gframework-config-tool/bun.lock

Tips and commands

Interacting with Sourcery

  • Trigger a new review: Comment @sourcery-ai review on the pull request.
  • Continue discussions: Reply directly to Sourcery's review comments.
  • Generate a GitHub issue from a review comment: Ask Sourcery to create an
    issue from a review comment by replying to it. You can also reply to a
    review comment with @sourcery-ai issue to create an issue from it.
  • Generate a pull request title: Write @sourcery-ai anywhere in the pull
    request title to generate a title at any time. You can also comment
    @sourcery-ai title on the pull request to (re-)generate the title at any time.
  • Generate a pull request summary: Write @sourcery-ai summary anywhere in
    the pull request body to generate a PR summary at any time exactly where you
    want it. You can also comment @sourcery-ai summary on the pull request to
    (re-)generate the summary at any time.
  • Generate reviewer's guide: Comment @sourcery-ai guide on the pull
    request to (re-)generate the reviewer's guide at any time.
  • Resolve all Sourcery comments: Comment @sourcery-ai resolve on the
    pull request to resolve all Sourcery comments. Useful if you've already
    addressed all the comments and don't want to see them anymore.
  • Dismiss all Sourcery reviews: Comment @sourcery-ai dismiss on the pull
    request to dismiss all existing Sourcery reviews. Especially useful if you
    want to start fresh with a new review - don't forget to comment
    @sourcery-ai review to trigger a new review!

Customizing Your Experience

Access your dashboard to:

  • Enable or disable review features such as the Sourcery-generated pull request
    summary, the reviewer's guide, and others.
  • Change the review language.
  • Add, remove or edit custom review instructions.
  • Adjust other review settings.

Getting Help

@deepsource-io

deepsource-io Bot commented Apr 2, 2026

Copy link
Copy Markdown

DeepSource Code Review

We reviewed changes in 65a6e2c...988d7f8 on this pull request. Below is the summary for the review, and you can see the individual issues we found as inline review comments.

See full review on DeepSource ↗

PR Report Card

Overall Grade   Security  

Reliability  

Complexity  

Hygiene  

Code Review Summary

Analyzer Status Updated (UTC) Details
C# Apr 2, 2026 12:46a.m. Review ↗
Secrets Apr 2, 2026 12:46a.m. Review ↗

@sourcery-ai sourcery-ai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hey - 我在这里给出了一些整体性的反馈:

  • README 在使用示例中仍然引用 cd tools/vscode-config-extension,但扩展文件夹/包已经重命名为 gframework-config-tool;请更新这些路径,使本地命令与新的目录结构保持一致。
  • tools/gframework-config-tool/package.json 中,repository.directory 字段仍然指向 tools/vscode-config-extension;请将其更新为新的 tools/gframework-config-tool 路径,以保持元数据准确。
  • 被注释掉的 publish-vscode-extension workflow 仍然使用 working-directory: tools/vscode-config-extension;如果你计划之后启用它,建议现在就更新这个路径,或者在尚未迁移到新的 gframework-config-tool 位置之前先删除该文件。
给 AI Agent 的提示
Please address the comments from this code review:

## Overall Comments
- README 在使用示例中仍然引用 `cd tools/vscode-config-extension`,但扩展文件夹/包已经重命名为 `gframework-config-tool`;请更新这些路径,使本地命令与新的目录结构保持一致。
-`tools/gframework-config-tool/package.json` 中,`repository.directory` 字段仍然指向 `tools/vscode-config-extension`;请将其更新为新的 `tools/gframework-config-tool` 路径,以保持元数据准确。
- 被注释掉的 `publish-vscode-extension` workflow 仍然使用 `working-directory: tools/vscode-config-extension`;如果你计划之后启用它,建议现在就更新这个路径,或者在尚未迁移到新的 `gframework-config-tool` 位置之前先删除该文件。

Sourcery 对开源项目免费 —— 如果你喜欢我们的 Review,欢迎帮忙分享 ✨
帮我变得更有用!请在每条评论上点 👍 或 👎,我会根据你的反馈改进后续的 Review。
Original comment in English

Hey - I've left some high level feedback:

  • The README still references cd tools/vscode-config-extension in the usage examples, but the extension folder/package has been renamed to gframework-config-tool; please update those paths so local commands match the new layout.
  • In tools/gframework-config-tool/package.json, the repository.directory field still points to tools/vscode-config-extension; this should be updated to the new tools/gframework-config-tool path to keep metadata accurate.
  • The commented-out publish-vscode-extension workflow uses working-directory: tools/vscode-config-extension; if you plan to enable it later, consider updating this path or removing the file until it's wired up to the new gframework-config-tool location.
Prompt for AI Agents
Please address the comments from this code review:

## Overall Comments
- The README still references `cd tools/vscode-config-extension` in the usage examples, but the extension folder/package has been renamed to `gframework-config-tool`; please update those paths so local commands match the new layout.
- In `tools/gframework-config-tool/package.json`, the `repository.directory` field still points to `tools/vscode-config-extension`; this should be updated to the new `tools/gframework-config-tool` path to keep metadata accurate.
- The commented-out `publish-vscode-extension` workflow uses `working-directory: tools/vscode-config-extension`; if you plan to enable it later, consider updating this path or removing the file until it's wired up to the new `gframework-config-tool` location.

Sourcery is free for open source - if you like our reviews please consider sharing them ✨
Help me be more useful! Please click 👍 or 👎 on each comment and I'll use the feedback to improve your reviews.

- 更新GitHub工作流中工具路径配置
- 新增游戏内容配置系统详细文档
- 创建VS Code扩展包描述文件
- 添加VS Code扩展功能说明文档
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant