前言¶
在 DSH 流程中,當 AI 調用 write 或 edit 工具修改文件時,通常只顯示執行成功或一個簡短的摘要。若要查看具體的變更內容,通常需要離開對話流去檢查文件或手動運行 git 命令。下面介紹 roushanyyzz/dsh-diff-vis 插件,它能在對話流中直接展示文件差異,避免用戶在界面切換中迷失。
插件定位¶
該插件由用戶 roushanyyzz 維護,是一個客戶端插件。它攔截 write 和 edit 工具調用,在對話流中對應的工具卡片位置直接渲染 git 風格文件差異。
核心功能¶
- 零 git 依賴:插件不調用 git 或外部 diff 工具,使用純 JS 實現行級差異計算。
- 原位展示:差異直接渲染在對話流中對應的工具卡片上,無需離開對話框。
- 視圖切換:支持上下對比(紅刪綠增,灰色上下文)與左右對比(並排,行號對齊)兩種模式。
- 行內高亮:變化的詞語額外黃底標出(保留共同前後綴),一眼看到“改了哪個詞”。
- 偏好記憶:你選過的視圖(左右/上下)自動保存到瀏覽器 localStorage,之後的卡片默認跟隨。
- 大文件保護:超過 4M 時,差分單元格自動降級爲整體替換視圖,防止進程卡死。
安裝與啓用¶
安裝命令如下:
dsh plugin --profile web add github:roushanyyzz/dsh-diff-vis
安裝後重啓 dsh web 即可。以後每次啓動都會自動加載,不需要重複執行安裝命令。
典型用法¶
滿足以下任一情況,卡片即自動出現:
- AI 調用
write工具:寫入文件時顯示差異。新增內容顯示爲綠色;若覆蓋已有文件,則顯示舊→新的完整差異。 - AI 調用
edit工具:修改已有文件時,顯示精確的刪行/增行與行內變化。
卡片操作:
- 點擊卡片右上角,在上下對比與左右對比視圖間切換。
- 點擊卡片頭部文件名,直接在工作區打開該文件。
注意事項¶
- 進程限制:差異記錄保存在進程中。插件重啓後,歷史卡片顯示兜底提示,但之後的修改照常捕獲。
- 工具支持:目前僅支持
write/edit兩個文件改寫工具,bash/pwsh等命令產生的文件變化暫不追蹤。 - 行數限制:每個卡片最多處理 8 萬行輸入,超大文件會顯示“文件過大”提示。
適用場景¶
該插件適合小說創作、文檔寫作、代碼協作等一切讓 AI 反覆改文件、而你想盯住每一處改動的場景。DSH 理念是“一切皆插件”,社區目錄與 DeepSeek / 幻方無官方從屬關係,使用前建議檢查源碼與許可證。
結尾¶
該插件通過原位展示差異,簡化了文件審查流程。更多細節可參考 GitHub 倉庫。