Skip to content

docs: 契约同步到 #1643 合并后的 preview 提交 - #8

Merged
xiaoyumuxi merged 1 commit into
mainfrom
sync/1581-merged-preview
Nov 1, 2026
Merged

xiaoyumuxi merged 1 commit into
mainfrom
sync/1581-merged-preview

Conversation

@xiaoyumuxi

Copy link
Copy Markdown
Contributor

上次同步(#7)固定在 1lck/Lithe-IDEA 9175bd734(#1595)。之后 preview 上有三个 PR 改了契约,本 PR 把契约同步到 1lck/Lithe-IDEA#1643 合并后的 preview 提交 589116e30。

1. 契约同步(contract/v1、contract.lock.json)

运行 node scripts/contract.mjs sync --revision 589116e30d3bdbf72c9695f8ff18a952c7da33ac,副本从 57 个文件增加到 76 个。按来源 PR 分:

  • feat(plugins): 独立编辑器高亮与动作 API,复用普通函数调用 1lck/Lithe-IDEA#1617 独立编辑器高亮与动作 API
    • languages 2:语言可以声明 grammar(kind 指定高亮引擎,path 指向包内的 Monarch 语法文件)和 configuration(行注释、块注释等编辑器配置)。
    • 新能力 editor.actions:后端注册独立的编辑器动作;需要 backend 2 和 documents.read,只授权 editor/registerActions,不授权编辑文档。README 新增“Independent editor actions (protocol version 3)”一节。
    • 新错误码 plugin.grammar.invalid、plugin.grammar.unavailable。
    • 新 fixture:editor-actions.plugin.json、language-grammar.plugin.json、grammars/http.monarch.json;function-protocol.json、invalid-manifests.json 补了对应用例。
  • feat(plugins): 插件注入的工具链框架与 macOS 只读环境设置页 1lck/Lithe-IDEA#1581 插件注入的工具链
    • 新文档 toolchains.md:工具定义(toolDefinitions 1)、版本管理器提供方(toolchainProviders 1)、toolchains.* Core 命令、查询与回复校验、目录固定值、四层解析和版本匹配;executableResolution 2 只作用于工具定义的候选,不改变现有构建候选。
    • 提供方超时或后端不可用时,宿主用 toolchains.failureReply 生成标准错误回复,解析结果里记为 providerUnavailable,并用 cause 区分两种情况。
    • 新目录 proposals/toolchains/:完整设计草案,包括还没实现的部分,里面的示例只用于评审。
    • plugin-manifest.schema.json 加入两项新贡献的 schema;新 fixture tool-definition.plugin.json、toolchain-provider.plugin.json。
  • fix(contracts): 契约文档链接与 schema $id 检查对齐 lithe-plugin-docs 同步规则 1lck/Lithe-IDEA#1643 契约链接修复:proposals/toolchains/README.md 里指向 fixtures/ 目录的链接改成代码文本。这条链接曾让 #1581 合并后的同步被拒。

2. README 契约文件表

补上 toolchains.md 和 proposals/toolchains/ 两行。状态按 toolchains.md 的说法写:只有 macOS 设置页以只读方式接入,构建、运行和语言服务器还不使用解析结果。

已知问题(需要在主仓库修)

契约 README.md 里关于工具链的几处说明还停留在 #1581 之前:“Neither native host advertises or integrates this foundation yet”、文件表里的 “native hosts are not connected”、能力表里的 “native adapters are not connected”。而 toolchains.md 已经写明 macOS 设置页以只读方式接入。副本按规定逐字节同步,不在这里改,要在主仓库修复后再同步一次。

没有改的

  • 指南:没有新增工具链提供方或编辑器动作的开发指南。
  • SDK:没有改。这次没有动插件后端函数协议(plugin_function.rs),Node 和 Java SDK 也还没有处理 toolchains/query 的辅助接口。

验证(本地)

  • node scripts/contract.mjs verify --upstream:76 个文件与 589116e30 一致。
  • node scripts/contract.mjs drift --ref preview:无漂移。
  • node --test scripts/*.test.mjs:15 个全部通过。
  • SDK 端到端测试由本 PR 的 CI 运行。

上次同步固定在 9175bd734(#1595)。之后 preview 上有三个 PR 改了契约:
#1617 独立编辑器高亮与动作 API、#1581 插件注入的工具链、#1643 契约链接修复。
现同步到 589116e30,副本从 57 个文件增加到 76 个;README 的契约文件表
补上 toolchains.md 和 proposals/toolchains/。
@xiaoyumuxi
xiaoyumuxi merged commit 79c138f into main Nov 1, 2026
5 checks passed
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