Skip to content

feat(editor): 补齐查找替换、恢复与编辑器设置共享规则 - #22

Merged
1lck merged 1 commit into
mainfrom
codex/ide-essentials
Nov 13, 2026
Merged

1lck merged 1 commit into
mainfrom
codex/ide-essentials

Conversation

@1lck

@1lck 1lck commented Nov 13, 2026 •

Copy link
Copy Markdown
Contributor

关联 Issue

Refs 1lck/Lithe-IDEA#1794;配套 桌面端 PR #1852 一次交付六项编辑器基础能力及 14 张无头截图。

改动

为统一 Viva IDE 补齐共享规则,原生文本缓冲、存储和界面仍由桌面端持有。

  • 新增 editor.find 和 lithe_core_execute_document_json:调用期间借用不可变 UTF-8 文本,不在 JSON 中复制全文,不保留第二份文档。返回原始字节范围、有界替换计划与当前匹配;支持 Unicode、大小写、整词、正则捕获组、零宽匹配和选区。选区随替换长度更新。
  • 限制源文件 64 MiB、查询 4096 字节、结果 10,000 项、替换插入总量 8 MiB;过多匹配的全部替换原子拒绝,错误不包含源码或查询。
  • editor.preferences.resolve 解析行号、空白字符、光标样式/闪烁及自动保存延迟的实际值与上下界。
  • editor.recent.reduce 提供有界最近访问、编辑顺序、位置与过滤,不依赖墙上时钟。
  • editor.recovery.decide 提供恢复、冲突和配额规则;磁盘改变/删除不授权覆盖。原生端执行私有原子检查点存储。
  • keymap.schemes.reduce 迁移旧绑定,支持独立方案保存、选择、重命名和删除;保护默认方案并校验名称、数量和绑定。
  • 同步 C 头、正式 API 文档、可执行契约向量及 ABI 非法指针/非法 UTF-8 回归。没有新增插件宿主 API,也不修改插件协议。

验证

  • Rust Core 注释/Rustdoc 门禁通过。
  • cargo test --manifest-path rust/Cargo.toml -p lithe-core --lib:1,763 项通过。
  • 最终借用式 ABI 向量与空指针/UTF-8 检查:2 项通过;含选区缩放的新向量。
  • 最终查找模块:5 项通过。
  • 桌面端全量 Go 测试记录 3,370 条,无失败;另有最终定向/竞态验证和深色中文、浅色英文截图,详见配套桌面 PR。
  • macOS 上运行;Windows ABI/native runtime 未在本机运行,不能以无头截图代替目标平台验收。

@1lck
1lck marked this pull request as ready for review November 13, 2026 10:39
@1lck
1lck merged commit 65cf823 into main Nov 13, 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