For AI agents: the complete documentation index is available at /llms.txt, the full documentation bundle is available at /llms-full.txt, and this page is available as Markdown at /changelog/inline-diff-highlight.md.
  • 简体中文
  • 编辑差异行内高亮

    • 日期:2026-07-30
    • 提交feat(tui): edit diff 行内高亮并迁移 diffy 到 similar
    • 版本0.12.1-alpha.2

    此前工具编辑文件时,diff 只按整行区分新增/删除/上下文,无法看出"这一行里到底改了哪几个字"。本次更新为 diff 引入了行内高亮:修改(Replace)行内实际发生变化的片段会用更醒目的强调样式标出,同时把 diff 库从 diffy 迁移到 similar,使行内差异识别具备更好的 Unicode 感知。

    主要变化

    1. Replace 行内变化片段高亮
      当一行内既有被删除又有新增的内容时,发生变化的片段会以"段级强调"渲染——在整行 tint 基础上叠加更饱和的背景并加粗,一眼就能看出这行具体改了什么。纯上下文(Context)行以及整块新增/删除(Insert/Delete)行不做行内强调,仍沿用原有的整行样式。

    2. diff 库迁移到 similar(inline + unicode)
      文本差异算法从 diffy 迁到 similar,并启用 inlineunicode 特性。行内变更片段按 Unicode 字符切分,对中文等多字节文本的改动识别更准确。

    3. diff 颜色收口到主题调色板
      行内强调色与整行 tint 统一收到 theme/palette 管理,随暗色/亮色背景自适应。当终端使用默认配色(未显式设置背景色)时自动降级:整行 tint 退化为无背景,强调片段退化为 REVERSED 反显,保证可辨识。

    相关说明

    • 行内细化与行级 diff 共享同一次 200ms 协作式计算预算;超大块或超长行超出预算时回退为整行样式,避免渲染开销失控。
    • 同一份 diff 内容只需计算一次,header 的 +N/−N 计数、展开详情与紧凑展示共享同一份结果。

    效果示例(删除指定行中的 temporary 单词):

    edit-diff

    其中 temporary 单词会以强调色标出。

    后续可能会实现更易读的左右 diff 视图,而不止于当前的内联 diff 视图!