feat: v0.3.0 大文件性能与差异导航增强 - 自研虚拟滚动、仅看差异过滤(折叠提示行)、F7/Shift+F7导航快捷键、交换左右侧、忽略空行

This commit is contained in:
2026-08-17 22:17:57 +08:00
parent b46826334a
commit d910f6c352
15 changed files with 593 additions and 103 deletions
+18 -5
View File
@@ -70,7 +70,7 @@ src/renderer/src/
- 完全一致 → 全部 `unchanged`,无差异
- 行级:新增、删除(含左/右行号、空槽 lineNo 为 `null`
- 词级:同一删除/新增配对为 `modified` 并产生左右 `segs`
- 忽略选项:`ignoreCase``trimWhitespace` 生效与关闭
- 忽略选项:`ignoreCase``trimWhitespace``ignoreBlankLines` 生效与关闭
- 行切分:结尾换行不产生多余空行
### 5.2 报告生成(`report.ts`
@@ -79,10 +79,23 @@ src/renderer/src/
- Markdown:表格化、管道符转义保持表格结构
- 格式分发与扩展名映射(`REPORT_EXT`
### 5.3 应用冒烟(`App.tsx`
- 渲染应用名 `DiffLens`
- 未加载文件时展示左右空态面板
- 未加载文件时不显示导出入口(导出仅在加载后可用)
### 5.3 文本工具(`textUtils.ts`
- 文本扩展名白名单放行 / 拒绝 / 大小写不敏感
- `countLines` 与 diff 引擎切分规则一致(结尾换行、CRLF)
- `displayCols` 半角 1 列 / 全角 2 列 / 中英混排叠加
### 5.4 对比视图(`DiffView.tsx`
- 渲染:行内容、行号、词级高亮段、行尾空白标注
- 虚拟滚动:大行数下仅渲染可见窗口(DOM 行数远小于总量);滚动后窗口移动;容器总高度按全部行数撑满
- 折叠提示行:默认文案与自定义文案(仅看差异视图)
- 交互:左右/横向滚动同步、右键菜单回调、拖放回调、导航定位走受控 `scrollTo`
### 5.5 应用冒烟与集成(`App.tsx`
- 渲染应用名 `DiffLens`;未加载文件时展示左右空态面板、不显示导出入口
- 加载文件后的对比视图、导出、右键菜单、拖拽、粘贴、容错提示
- 仅看差异视图:未更改行折叠、折叠提示出现、关闭后恢复
- F7 / Shift+F7 导航快捷键;粘贴弹窗打开时快捷键不抢占
- 交换左右侧后面板文件互换
---