开发工具代码评审CLIAI 应用【免费下载链接】hunkReview-first terminal diff viewer for agentic coders项目地址https://gitcode.com/gh_mirrors/hu/hunk点击查看免费下载Hunk 0.14是面向 agentic 编码者的 review-first 终端 diff 查看器在 2026 年 5 月下旬5 月 26 日 – 6 月 1 日发布的两个版本0.14.0 / 0.14.1。本指南围绕该版本的三大新增能力展开基于鼠标拖拽的文本选择与 OSC 52 剪贴板复制、折叠未变更上下文的内联展开、以及 Catppuccin Latte / Mocha 内置主题并附上 0.14.1 引入的本地性能基准测试与一批稳定性/安全修复的源码级解读。读完本文你将掌握 Hunk 0.14 的安装方式、copy_decorations配置的语义、上下文展开的交互细节与适用输入模式以及每个特性背后对应的源码实现路径。npm i -g hunkdiff0.14.1注意Hunk 0.14 已不是当前版本如需最新版本请查看 CHANGELOG.md 或仓库内的安装相关文档如 docs/README.md 对应的各平台安装说明。版本总览与发布节奏0.14 系列共包含两个小版本版本发布日期类型核心内容0.14.12026-06-01修复 新增本地性能基准测试固定pierre/diffs依赖0.14.02026-05-26功能 修复鼠标选择复制、内联上下文展开、Catppuccin 主题、agent 作者名等原始发布说明由bun run generate:changelog生成见 scripts/generate/generate-changelog.ts编辑入口是仓库根目录的 CHANGELOG.md。0.14.1本地性能基准测试与依赖修复新增本地性能基准测试0.14.1 为 Hunk 的启动startup、加载loading、渲染rendering、语法高亮highlighting、导航navigation与内存memory新增了本地基准测试并支持可选的竞品对比competitor comparisons。这套基准测试在仓库中的落地位置是 benchmarks/其入口与说明见 benchmarks/README.md运行入口为 benchmarks/run.ts。基准目录下按主题拆分了多个场景脚本例如启动与加载benchmarks/bootstrap-load.ts、benchmarks/working-tree-load.ts、benchmarks/huge-stream.ts渲染与布局benchmarks/render-layout.ts、benchmarks/terminal-width.ts高亮与缓存benchmarks/highlight-cache-layers.ts、benchmarks/highlight-prefetch.ts、benchmarks/worker-highlight-cache.ts内存与几何benchmarks/memory.ts、benchmarks/geometry-memory.ts、benchmarks/navigation-memory.ts、benchmarks/resize-memory.ts交互延迟benchmarks/interaction-latency.ts竞品对比benchmarks/competitors.ts从源码结构看基准测试分为lib/共享测试设施如 benchmarks/lib/appHost.tsx、benchmarks/lib/fixtures.ts、benchmarks/lib/benchmark-result.ts与release/按版本归档的 JSON 结果例如bench-0.15.0.json、bench-0.16.0.json等两个部分配合 scripts/benchmarks/compare-release-benchmarks.ts 可对发布版本之间的性能走向做对比分析。修复固定pierre/diffs依赖版本0.14.1 将pierre/diffs固定为 Hunk 实际测试过的版本避免上游有问题的1.2.6发布破坏npm install。这属于典型的锁定已验证依赖策略防止发布窗口期内的破坏性版本漂移。0.14.0新增功能详解鼠标拖拽选择与 OSC 52 剪贴板复制0.14.0 为 diff 视图加入了鼠标拖拽文本选择选中后将对应行复制到系统剪贴板通过终端 OSC 52 转义序列实现。更关键的是它引入了一个交互开关菜单View Copy decorations配置项copy_decorations该开关控制复制结果是否包含 diff rails增删符号栏、gutters行号槽与 file headers文件头或者只复制变更的代码本身。从源码看该配置定义在 packages/hunk/src/core/run/config.ts默认视图偏好中copyDecorations: false见 config.ts即默认只复制代码内容配置 schema 声明为key: copy_decorations、property: copyDecorations、类型boolean、运行期默认值false描述为 Include diff signs and line numbers in copied selections.config.ts它与其他视图偏好theme、mode、line_numbers、wrap_lines等一起被持久化保存对应prompt_save_view_preferences行为config.ts。选择与复制逻辑的几何核心在 packages/hunk/src/ui/components/panes/copySelection.ts值得注意的实现细节split 布局分侧锚定拖拽锚点按列归属左右窗格CopySelectionSide left | right分别对应 old/A 与 new/B 侧确保跨窗格选择不会混淆copySelection.ts双击/三击扩展双击按代码词边界扩展isCopyWordChar匹配[A-Za-z0-9_$]三击选中整行渲染文本且在 split 布局中三击只会选中点击所在的一侧避免跨窗格误选copySelection.tsdecorations 与否走两套渲染copyDecorations为真时使用renderDecoratedPlannedRowText保留装饰列并保留空白可视行为假时使用renderCodeOnlyPlannedRowText丢弃装饰与空白行copySelection.ts剪贴板写入路径复制时优先通过渲染层的 OSC 52 支持renderer.isOsc52Supported?.()copyToClipboardOSC52若终端不支持则给出提示 Clipboard copy unsupported in this terminal (enable OSC 52 to capture selections)packages/hunk/src/ui/components/panes/useDiffSelectionController.ts。也就是说copy_decorations true时复制的是所见即所得的完整 diff 视图文本含符号、行号、文件头false时复制的是纯净的变更代码——适合把某段改动直接贴进 PR 描述或 commit message。折叠未变更上下文的内联展开0.14.0 允许在不离开 review 的情况下展开折叠的未变更文件内容点击可展开的 gap 行形如▾ N unchanged lines不可展开时显示静态的··· N unchanged lines ···或选中 hunk 后按e键即可看到该 hunk 周围的上下文行与文件尾部行。关键限制该 affordance 仅对有可达源内容的输入模式显示包括hunk diff、show、stash show、file-pairdiff/difftool以及未跟踪文件而 raw 的hunk patch输入仍按原有方式渲染。加载过程的状态反馈非常细致加载进行中gap 行显示Loading N unchanged lines…加载失败显示Could not load N unchanged lines源文件过大显示Source too large to expand N unchanged lines展开成功后行首变为Hide N unchanged lines可再次折叠这些状态文本与FileSourceStatusloading/loaded/error其中 error 可携带too-large原因直接对应实现在 packages/hunk/src/ui/diff/expandCollapsedRows.ts。展开过程会把 gap 行替换为真实未变更行通过buildSplitContextRow/buildUnifiedContextRow分别构造 split 与 unified 布局的 context 行行 key 形如${fileId}:expanded:${position}:${hunkIndex}:${index}expandCollapsedRows.ts展开的上下文行复用与周围 diff 相同的语法高亮通过sourceLineSpans解析器保证视觉连续性源文本读取有上限控制见下文 0.14.0 修复项超大文件不会因展开而冻结或耗尽内存。Agent 作者名浮出为让多 agent review 场景一眼可读0.14.0 在内联注释与对应的 agent popover 中浮出 agent 作者名当注解没有作者时则使用 fallback 标题兜底。Catppuccin Latte 与 Mocha 内置主题0.14.0 将Catppuccin Latte浅色与Catppuccin Mocha深色加入内置主题。在源码的主题目录 packages/hunk/src/core/theme/catalog.ts 中可以看到完整的 Catppuccin 家族主题 IDcatppuccin-frappe、catppuccin-latte、catppuccin-macchiato、catppuccin-mochacatalog.ts背景色Latte 为#eff1f5Mocha 为#1e1e2ecatalog.ts前景色Latte 为#4c4f69Mocha 为#cdd6f4catalog.tsdiff 语义色Latte 的 added#40a02b/ removed#d20f39/ modified#df8e1dMocha 的 added#a6e3a1/ removed#f38ba8/ modified#f9e2afcatalog.ts。同时 0.14.0 修复了自定义主题配置使 Catppuccin Latte 与 Mocha 可以作为自定义主题的base基底主题使用相关测试见 packages/hunk/src/core/theme/customThemes.test.ts。主题的完整配置方式可参考仓库中的 docs/themes.md。0.14.0 修复项稳定性、安全与兼容性0.14.0 还包含一批值得关注的修复按主题归类如下输入与安全性加固控制序列注入防护对来自 diff、文件路径、notes、展开上下文、复制选区以及 pager 回退输出的内容做了终端渲染加固防止恶意内容注入控制序列相关清理工具见 packages/hunk/src/lib/terminalText.ts 中的sanitizeTerminalLine/sanitizeTerminalSpans展开上下文行在 expandCollapsedRows.ts 中同样经过清理pager 环境变量硬化纯文本 pager 启动时PAGER/HUNK_TEXT_PAGER中的 shell 元字符作为普通参数传递而非被隐式求值避免意外执行会话根目录限制daemon 命令无法读取初始 Hunk session root 之外的文件限制 session reload 的访问范围。渲染与文本测量宽字符对齐修复split diff 中宽 CJK 与 emoji 字符的对齐改为按终端单元格测量渲染文本相关测量工具measureTextWidth、cellRangeToCharRange、sliceTextByWidth见 packages/hunk/src/ui/lib/text.ts换行行 hover 背景稳定被 wrap 的 diff 行 hover 背景不再导致 add-note affordance 移动行布局Git log ANSI 颜色保留hunk pager回退到纯文本终端 pager 输出非 diff 内容时保留原颜色。快捷键与输入模式内联笔记复制和弦Ctrl-C、Ctrl-Shift-C 等复制和弦不再误触发笔记操作tmux CSI-u 兼容修复 tmux 发送 CSI-u 键盘输入时内联笔记的 Ctrl-S 保存e快捷键从仓库子目录启动 Hunk 时e编辑快捷键不再失效。pager 与 VCS 检测静态 pager 输出captured pager 环境尊重用户配置的自定义主题hunk pager在 captured pager 与 dumb-terminal 上下文中直接透传非 diff 文本而不启动lessVCS 自动检测嵌套在父级 Jujutsu workspace 下的 Git 仓库默认仍正确进入 Git 模式相关检测逻辑见 packages/hunk-vcs/src/ 与 packages/hunk/src/core/run/。相关文档与进一步阅读0.14 的两个主要交互特性鼠标选择、上下文展开对应仓库内的相关文档键盘与鼠标操作docs/keybindings.md主题配置docs/themes.md本版本的基准测试结果目录benchmarks/release/版本演进全览CHANGELOG.md小结Hunk 0.14 的关键价值在于把选择、复制、展开、换主题这些高频 review 动作做得足够顺手且安全copy_decorations让复制结果在完整 diff 视图与纯净代码之间自由切换▾ N unchanged lines/e键的内联展开让大文件的上下文查看不再打断 review 流Catppuccin Latte / Mocha 则补齐了浅色与深色两个经典配色。配合 0.14.1 落地的本地基准测试与逐项加固的渲染/输入安全这一系列可以视为 Hunk 在交互完备度与工程严谨度上的一个重要节点。赞分享开发工具代码评审CLIAI 应用【免费下载链接】hunkReview-first terminal diff viewer for agentic coders项目地址https://gitcode.com/gh_mirrors/hu/hunk点击查看免费下载相关推荐GraphCast用图神经网络几分钟生成10天全球天气预报的深度学习天气模型GraphCast用图神经网络几分钟生成10天全球天气预报的深度学习天气模型 如果三天后某地会下大雨还是晴天传统数值天气预报模式可能要等超算跑上数小时才能给人工智能深度学习科研预训练Element Plus折叠面板Collapse内容折叠与展开控制Element Plus折叠面板Collapse内容折叠与展开控制 在现代Web应用中内容折叠与展开是极其常见的交互模式。Element Plus的Coll前端UI组件MacVim鼠标拖动选择配置选区行为与复制方式MacVim鼠标拖动选择配置选区行为与复制方式 你是否曾在MacVim中尝试用鼠标拖动选择文本却发现结果与预期不符本文将详细介绍如何配置MacVim的鼠标开发工具桌面应用上一篇如何快速上手AI视频生成HunyuanVideo-Avatar 5步终极指南下一篇DiligentEngine工具链详解纹理加载、资源管理与状态打包工具创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
