Skip to content

Dev - #105

Merged
songdiyang merged 7 commits into
mainfrom
dev
Aug 5, 2026
Merged

Dev#105
songdiyang merged 7 commits into
mainfrom
dev

Conversation

@songdiyang

Copy link
Copy Markdown
Collaborator

变更内容

更新了哪些特性

  1. 图片预览支持 Ctrl+滚轮缩放(范围 10%-1000%)
  2. 图片预览支持 Ctrl+= / Ctrl+- 快捷键缩放,Ctrl+0 重置缩放
  3. 图片预览信息栏显示当前缩放比例
  4. 图片预览支持鼠标中键拖拽平移查看
  5. 文件切换高亮缓存优化,提升大文件切换性能
  6. AI 协作测试框架沉淀

修复了哪些问题

  1. 修复图片缩放后溢出编辑区域遮挡其他 UI 元素的问题
  2. 修复编辑器光标闪烁问题
  3. 优化文件树单击手感
  4. 重命名 $matches 自动变量避免 PSScriptAnalyzer 警告

其他说明

本次发布包含图片预览缩放功能和多项性能优化:

  • 图片预览:支持 Ctrl+滚轮缩放、中键拖拽平移、快捷键操作
  • 性能优化:文件切换高亮缓存,减少大文件切换时的卡顿
  • 编辑器修复:解决光标闪烁问题,优化文件树交互体验

所有更改已通过 CI 检查,可以安全合并到 main 分支。

## 变更内容

### 更新了哪些特性

1. Tree-sitter 高亮结果缓存:为 BackgroundHighlighter 增加 (doc_id, version) LRU 缓存,切回已打开标签时无需重新解析
2. AI 协作测试框架:新建 AetherAi.psm1 动作脚本 DSL、诊断包、像素断言、UI 状态采集能力
3. PostMessage 注入式输入:新增 Send-AetherClickMsg/Send-AetherTextMsg/Send-AetherKeyMsg,GUI 自动化不依赖前台焦点
4. 测试用例模板与文档:新增 _template.tests.ps1、selfcheck.ps1、AI_TESTING.md

### 修复了哪些问题

1. 资源管理器文件切换卡顿:tree-sitter 全文件解析 80K 行需 4.4s,缓存后切回已打开标签零开销
2. 单槽 pending 请求丢失:worker 循环 try_recv 排空旧请求,快速连续点击只解析最后一次
3. SendKeys 文本丢失:改用 WM_CHAR/WM_KEYDOWN PostMessage 注入,解决前台窗口抢占导致输入丢失
4. Wait-AetherLogEvent 误匹配历史日志:改为只观察调用后新增日志行

### 其他说明

- 大文件阈值下调:100K行/5MB → 8K行/2MB
- from_file 双扫描合并为一次扫描
- explorer_inline_input.tests.ps1 升级为 PostMessage 注入模式
- run_tests.ps1 新增 -Suite ai 入口
…ache-and-ai-test-framework

Songdiyang/perf file switch cache and ai test framework
$matches 是 PowerShell 内置自动变量(存储正则匹配结果),
赋值会导致不可预期副作用。改为 $matchedLines。
## 修复了哪些问题

1. **编辑器光标不闪烁**:
   - TabContent 新增 caret_visible 字段,控制光标可见状态
   - 点击编辑器区域时启动 CARET_TIMER_ID 定时器(530ms 周期)
   - on_timer_caret 中新增编辑器光标闪烁逻辑,与 AI 面板/沙盒输入框统一处理
   - render_editor 中根据 caret_visible 决定是否绘制光标,实现闪烁效果

2. **文件树单击手感**:
   - 确认文件树已是单击打开(非双击),handle_file_tree_click 中 FileKind::File 直接打开
   - 拖拽检测阈值保持 4px,避免误触发

## 极致性能设计

- 光标闪烁使用脏矩形标记,只重绘 EditorContent 区域(非全窗口)
- 定时器只在需要时启动(点击编辑器/输入框时),无输入时自动停止
- 与现有脏矩形追踪系统整合,不引入额外渲染开销
- 添加 Ctrl+滚轮缩放图片(10%-1000%)
- 添加 Ctrl+= / Ctrl+- 快捷键缩放
- 添加 Ctrl+0 重置缩放
- 信息栏显示当前缩放比例
- 添加图片渲染裁剪,防止溢出编辑区域
- 添加鼠标中键拖拽平移功能
- 切换图片/标签时自动重置缩放状态
@songdiyang
songdiyang merged commit 257570d into main Aug 5, 2026
2 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