在使用 DeepSeek Harness 處理大項目重構時,直接調用 Write 工具常因指令遺漏或過於簡化而導致重構不完整。爲了在保留源碼行內容的前提下加快重構速度、節省 token 並遷移模塊,需要一種更精細的行操作能力。下面介紹 kezan31/dsh-copy-tool。
這是一個用於 DeepSeek Harness 的增強型行選擇複製插件。插件由 kezan31 維護,旨在解決直接使用基礎 Write 工具時的不足,通過精確控制行範圍來提升代碼遷移和重構的準確性。
核心功能¶
- 行選擇與映射:支持選擇 1 基線的單行或行範圍,並將內容複製到對應的
target_lines。 - 靈活的數組語法:
lines和target_lines參數支持混合數組格式,例如[[633, 889]]或[633, [640, 645], 700]。 - 縮進處理:自動去除源文件中選定非空行的公共縮進,並添加顯式的
indent級別的 4 空格縮進。 - 差異預覽:通過
dry_run參數預覽有界的統一差異(unified diff),確認修改後再執行。 - 原子性文件操作:使用
writeText原子性地創建新文件,或使用editText原子性地編輯現有文件。 - 內容保留:編輯時會保留未被選中的內容以及文件系統原生的換行符。
- 路徑與權限:路徑解析基於當前會話工作區,並遵循其沙盒策略。
安裝與啓用¶
首先切換到 DSH Web 的配置目錄:
cd $env:USERPROFILE\.dsh\profiles\web
執行安裝命令:
npm install dsh-copy-tool
安裝完成後,將 dsh-copy-tool 添加到 package.json 中的 dsh.profile.bundles 數組內,並重啓 DSH Web。
使用說明¶
所有參數均爲必需。展開後的 lines 和 target_lines 必須選擇相同數量的行,源文件的每一行會映射到 target_lines 中對應位置的行。行號爲 1 基線。
現有目標文件會被原地編輯,未選中的內容會被保留。缺失的目標必須使用從 1 開始的連續 target_lines,且將被創建爲新文件。建議先使用 dry_run 檢查差異。
示例配置¶
場景 1:僅預覽差異
{
"source_file": "source.py",
"target_file": "module.py",
"lines": [[633, 644]],
"target_lines": [[1, 12]],
"indent": 0,
"dry_run": true
}
場景 2:寫入修改
{
"source_file": "source.py",
"target_file": "module.py",
"lines": [633, [640, 645], 700],
"target_lines": [1, [2, 7], 8],
"indent": 1,
"dry_run": false
}
注意事項¶
插件以當前 DSH 進程的權限運行,因此安裝前應檢查源碼與許可證。該工具適合需要精確控制代碼塊遷移和重構的場景。
該工具通過精細化的行操作能力,幫助在 DeepSeek Harness 中更安全、高效地執行代碼重構。更多詳情請查看 GitHub 倉庫 或 插件目錄。