Skip to content

feat: add worktree sorting and script save shortcuts - #65

Merged
ca1e merged 16 commits into
EasyConNS:devfrom
axechaso:feat/worktree-sort-ctrls
Sep 29, 2026
Merged

ca1e merged 16 commits into
EasyConNS:devfrom
axechaso:feat/worktree-sort-ctrls

Conversation

@axechaso

@axechaso axechaso commented Sep 29, 2026 •

Copy link
Copy Markdown
Contributor

内容

  • 工作树增加六种排序:名称正序/倒序、修改时间新/旧优先、文件类型正序/倒序;目录置顶,名称数字按自然顺序比较,排序偏好持久化。
  • 排序和刷新保留展开、选中与视口状态;异步加载竞态不会覆盖当前项目。
  • 主窗口接入 Ctrl+S 和 Ctrl+Shift+S;按钮、菜单、快捷键统一保存流程,保存成功后才提交路径状态,取消/失败保留原路径和项目根。
  • 修复无路径编辑区直接输入后无法保存:编辑内容会启用保存,首次 Ctrl+S 正确打开另存对话框并加载目标项目目录。
  • 修复切换项目期间的旧树竞态:切换时清空旧项目状态;异步加载按请求代次和目标路径校验;新树加载前禁用文件操作,避免剪贴板粘贴或新建操作落到旧项目。
  • 修复隐藏布局切换时滚动锚点丢失、首个可见行顶部坐标错误、虚拟化下吸顶标题不稳定,以及两个工作树的排序菜单单选组绑定问题。
  • 修正 CustomSleep 对 Stopwatch.ElapsedTicks 的平台频率假设,使用 Stopwatch.Frequency,避免非 Windows 平台延时错误。
  • 将 PR 合入 upstream/dev 的修复作为基线,保持本 PR base 为 dev;未合入 upstream/dev。
  • 调整 format-fix:仅同仓库 PR 可以写回格式修复;fork PR 使用只读 checkout 和格式检查。Windows Debug 与 Release CI 都串行执行真实窗口 Ctrl+S 回归,避免窗口测试并发干扰。

验证

  • dotnet format EasyCon2.slnx --verify-no-changes --verbosity quiet 通过;git diff --check 通过。
  • Release 全解决方案测试:1,033 通过、40 个 Explicit 跳过、0 失败。覆盖 EasyCon、Avalonia Core、SDLInput、Avalonia UI 和 LSP 测试。
  • 真实 Avalonia 窗口快捷键回归:Release 2/2、Debug 2/2 通过,分别覆盖经典布局与卡片布局;编辑器无路径时输入后按 Ctrl+S 可保存。
  • 合入 upstream/dev 前的冲突验证:模块测试 29/29、ScriptService 测试 14/14、格式校验通过。
  • Windows Release 发布目录:build/worktree-sort-save-f12cde92-20260929/EasyCon2.Avalonia.exe;SHA-256 2B4BA68FC3B0712E97FE2E8B03A5FC302DE788AA252728981C681DDF858C201F。
  • PR feat: add worktree sorting and script save shortcuts #65 最新 GitHub Actions 已通过:format、format-fork-check、Windows build-and-test 全部通过;fork PR 的写回 job format-fix 按预期跳过。

尚待人工验收

  • 当前环境无法操作本机应用窗口,尚未完成方案要求的发布 EXE 人工视觉验收(两套布局、DPI、滚动位置及吸顶标题)。Headless UI 的窗口键盘路由、布局、滚动锚点、吸顶标题和排序菜单回归已完成。

@axechaso
axechaso changed the base branch from main to dev September 29, 2026 07:53
@ca1e
ca1e merged commit 2834320 into EasyConNS:dev Sep 29, 2026
4 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.

2 participants