前言¶
DeepSeek Harness (DSH) 採用“一切皆插件”的架構,側欄是其核心交互區域。在 DSH 0.1.6-alpha.2 版本中,第三方側欄插件 dsh-better-sidebar 在文件行點擊上存在靜默失敗的問題(點擊後無新增標籤、無提示)。修復第三方編譯產物存在版本覆蓋風險,因此 dsh-file-tree 從零基於官方擴展點開發,通過註冊原生標籤頁提供功能,不接管任何佈局。
核心功能¶
- 工作區文件樹與內置編輯器:提供基於
code-server4.138.0 的 VS Code 網頁版體驗,支持多文件編輯、集成終端與 Git。插件隨包打包了約 640MB 的二進制,無需額外下載。 - 就地預覽與搜索:支持文本與圖片的行內預覽。圖片/SVG 會自動使用
<img>渲染,文本使用官方着色。支持按文件名搜索,結果展示目錄與大小。 - 一鍵 @文件 引用:點擊文件行右側的
@或預覽頭部的引用按鈕,可將工作區相對路徑插入輸入框,支持帶空格路徑的引用文法(如@"my file.txt")。 - Ctrl/Cmd + 點擊跳轉:支持跳轉模塊路徑、標識符與方法。支持 barrel 文件(如
components/index.ts)的多級跳轉。
安裝¶
使用官方 CLI 安裝:
dsh plugin --profile web add github:jackchen13755/dsh-file-tree
安裝後硬刷新瀏覽器(Cmd/Ctrl+Shift+R)即可生效。
配置¶
在 cordis.patch.yml 中添加 file-tree 配置項。以下是主要可選項:
- insert:
- id: file-tree
name: 'dsh-file-tree'
config:
readLimitBytes: 524288 # 文本預覽上限(1KB–8MB)
imageLimitBytes: 3145728 # 圖片預覽上限(0–16MB)
listLimit: 2000 # 單目錄條目上限
searchLimit: 200 # 搜索命中上限
可配置項還包括 codeServerEnabled、codeServerPath、codeServerSearchPaths、codeServerDataDir、codeServerArgs、codeServerStartTimeoutSeconds 和 codeServerIdleMinutes。
使用方法¶
- 打開編輯器:會話 → 右側欄 → “+ 新標籤頁” → 選擇“編輯器”。此標籤頁打開的是基於
code-server的完整工作區環境。 - 瀏覽與預覽:會話 → 右側欄 → “+ 新標籤頁” → 選擇“文件面板”。在此面板中可以只讀瀏覽文件,點擊文件行會自動分流:文本類文件在原生標籤頁打開(帶語法着色),圖片/SVG 在本面板內聯顯示。
- 行內預覽:點行內
▤按鈕,可在本面板預覽任意文件。點文件行也可觸發此行爲。 - 跳轉:在文件面板或官方預覽標籤頁中,按住 Ctrl/Cmd 點擊符號(如方法名、變量名),會自動跳轉到定義處。支持相對路徑、別名映射和 barrel 文件跳轉。
安全與依賴¶
- DSH 版本:依賴 DSH >=0.1.5-rc.1,實測適配 0.1.6-alpha.2。
- 安全模型:code-server 進程只監聽本機(127.0.0.1)。插件對請求路徑進行包含性校驗,拒絕
../、絕對路徑及指向工作區外的符號鏈接。僅接收 JSON POST 請求,所有操作爲只讀。 - 進程管理:按工作區池化 code-server 進程,空閒 120 分鐘後回收。側欄不可見或標籤不在前臺時不啓動進程。
總結¶
dsh-file-tree 通過複用 DSH 原生預覽與側欄能力,解決了舊版側欄插件交互失效的問題,同時提供了完整的代碼編輯環境。更多細節可參考 GitHub 倉庫。