前言¶
在 DeepSeek Harness(DSH)裏讓智能體改代碼,常見做法是:在對話裏描述「第幾行、哪段邏輯要改」,或把片段複製進輸入框。文件一多、行號一變,引用就容易錯位;若同時開着只讀預覽,還要在預覽和對話之間來回切換。
文件批註器(File Annotator)是維護者 Arvin-work 發佈的客戶端插件:在 DSH 右側欄打開工作區文本/代碼文件,選中文本即可在行內寫批註,跨文件統一計數與導航,需要時再一鍵把結構化修改要求追加到對話輸入框(不會自動發送)。插件無構建步驟、無運行時 npm 依賴,界面貼近原生 DSH。
這是什麼¶
- 倉庫:Arvin-work/dsh-plugin-file-annotate
- 社區目錄:skillhub.cn 插件頁
- 分類:客戶端(
package.json中dsh.client.platform爲web) - 當前版本(資料中的
package.json):0.1.1 - 許可證:MIT
插件通過 extension 優先級接管常見文本/代碼文件,提供懶加載文件樹、可編輯保存、行內批註、跨文件批註導航、Markdown 預覽,以及向 composer 草稿交接批註內容。
核心功能¶
文件編輯與文件樹¶
「打開文件」工作區左側爲文件樹、右側爲編輯器:目錄懶加載、變更自動刷新、篩選與刷新、可拖寬寬度,當前文件高亮;支持鍵盤導航、雙擊打開,展開與滾動位置可持久化。文件樹可隱藏,保留約 30px 軌道以便重新展開。
保存使用 ⌘/Ctrl+S,帶文件版本校驗,避免覆蓋外部修改。單文件超過 20 萬字符時退化爲純文本模式,並禁用申請重定位等重操作;直接保存也受該字符數限制。
行內批註¶
默認處於「批註」模式:選中文本後,在選中行下方出現批註塊。批註塊內 Enter 發佈,Shift+Enter 換行;中文輸入法組合輸入期間不會誤發佈。「編輯」模式則恢復正常選中、複製與編輯。
批註引用創建時的原文與行號;原文被改寫導致 quote 不再匹配時標記爲 stale,並提示位置可能已失效。
跨文件批註導航¶
當前會話只要有批註,右下角顯示統一計數 1/N;用 ↑/↓ 跨文件切換,自動打開目標文件並定位到批註範圍。
在工作區模式下切換右側當前文件時,文件樹保持不動;在獨立編輯器 tab 中則替換當前 tab,不堆積新 tab。
- 提交:把當前文件的批註加入對話草稿;成功後自動清除已提交的當前文件批註。
- 清除:清當前文件批註。
- 全部清除:清當前會話全部批註,帶二次確認。
沒有剩餘批註時,浮動導航條消失。
Markdown 預覽¶
打開 .md / .markdown / .mdx 時,工具欄出現「預覽」按鈕。用當前編輯中的 draft 渲染標題、段落、列表、引用、表格、代碼塊、鏈接等。按鈕文字始終爲「預覽」,通過亮/不亮表示是否處於預覽狀態;預覽只讀,再次點擊回到源碼。
非文本與其它入口¶
圖片、PDF、Office 等非文本文件不在批註編輯器內渲染;從文件樹點擊時交給宿主原生預覽(PDF 使用 DSH 宿主的 PDF 查看器,非插件內嵌)。原有隻讀文本預覽可通過頭部 ✎ 批註此文件 轉爲批註編輯器;工具欄 ↗ 可用宿主原生預覽打開同一文件。右側欄終端使用 DSH 原生 terminal tab,插件不提供僞終端。
安裝與啓用¶
插件以當前 DSH 進程權限運行;安裝前建議瀏覽倉庫源碼並確認 MIT 許可證與行爲是否符合預期。DSH 生態強調「一切皆插件」;skillhub.cn 等社區目錄爲獨立站點,與 DeepSeek / 幻方無官方從屬關係。
從 GitHub 安裝¶
dsh plugin --profile <profile> add github:Arvin-work/dsh-plugin-file-annotate
若使用 DSH Desktop,可在 Settings → Plugins → Add plugin 中粘貼 GitHub 倉庫地址,由桌面端管理當前 Profile。
安裝後按提示刷新頁面;宿主支持熱加載時,刷新後通常可見「打開文件」入口。
從 Release tarball 安裝¶
若倉庫 GitHub Release 提供 tarball:
dsh plugin --profile <profile> add <Release tarball 的 https 地址>
插件市場¶
被 DSH Market 收錄後,可搜索 File Annotator 或 文件批註器 一鍵安裝。
本地開發時可 link 安裝:
dsh plugin --profile <profile> add /absolute/path/to/dsh-plugin-file-annotate
典型用法¶
README 說明:截圖中的示例項目 just_interester、 example.py 及 example 批註均爲演示數據,不代表真實項目或用戶數據。
- 打開右側欄的「打開文件」。
- 從左側文件樹選擇一個文本/代碼文件。
- 在「批註」模式下選中一段文本。
- 在出現的批註塊裏寫下修改要求,按 Enter 發佈。
- 用右下角浮動條的
↑/↓跨文件瀏覽批註。 - 需要智能體處理時,點 提交:批註進入當前對話輸入框,確認後再發送;提交成功後當前文件批註自動清除。
- 需要直接改文件時,切到「編輯」模式,改完保存。
隱私、數據與已知限制¶
- 批註保存在當前瀏覽器 localStorage,按會話和文件區分;插件無遙測,不會把批註、文件內容或個人信息發往第三方。
- 文件讀寫通過 DSH 宿主 workspace/file API;提交 只調用宿主 composer actions(必要時回退 bridge)追加到輸入框,不直接提交給模型。
需注意:非文本文件不能在批註編輯器中編輯或批註;大文件(>200k 字符)不執行批註重定位;批註 quote 變 stale 後無法自動定位;關閉編輯器 tab 不會彈未保存確認;依賴當前 DSH Client 插件/側欄 API,DSH 升級後可能需要適配。
結尾¶
文件批註器把「在文件裏圈定位置 + 寫修改要求 + 交給對話」收攏到 DSH 右側欄一條鏈路,適合需要在多文件間統一瀏覽批註、再手動確認發送的場景。