前言¶
DeepSeek Harness (DSH) 採用插件化架構,旨在通過模塊化組件解決特定場景下的開發痛點。在開發過程中,頻繁切換窗口查看文件內容或對比代碼差異通常會影響效率。fdtree 旨在解決這一問題。它將文件目錄樹和實時 Diff 視圖嵌入到 DSH 的界面中,提供始終可見且非浮動的文件瀏覽體驗。
核心功能¶
1. 四列布局與多標籤¶
界面採用四列形態(原生側邊欄 | 對話區 | 文件內容 | 文件樹),始終佔列,非浮動。內容列默認收起,僅顯示文件樹。支持多標籤打開,文件內容與 Diff 整合爲單一視圖,無需頻繁切換上下文。
2. 實時紅綠 Diff 展示¶
Diff 視圖顯示刪除行(紅色)、新增行(綠色)、行號及統計(+N -N)。支持 22 種語言的語法高亮(包括 JS/TS、Python、JSON、Markdown 等)。
3. 智能模式切換¶
插件根據工作區環境自動切換模式:
* Git 模式:自動檢測工作區是否位於 git 倉庫內(含父目錄)。啓用後與 HEAD 對比,實時顯示改動、未跟蹤及刪除狀態。git commit 後差異自動歸零。
* 基線模式:非倉庫目錄自動使用基線模式,與打開時的快照對比。支持「📌 設基線」功能。
4. 輔助功能¶
- 終端集成:右鍵目錄樹節點可彈出菜單,在宿主系統打開終端並自動定位。支持一鍵
cd到選中目錄(支持 Windows PowerShell/cmd、macOS Terminal.app、Linux 桌面終端)。 - 性能優化:大文件優化,通過
FsVersion變更檢測避免重複讀盤。
安裝與啓用¶
在目標機器的 DSH web profile 中安裝:
# 方式一:通過 Git 倉庫地址安裝
dsh plugin --profile web add "https://github.com/musclePatrickStar/fdtree.git"
# 方式二:通過 SSH 安裝(注意必須使用 git+ssh:// 完整格式)
dsh plugin --profile web add "git+ssh://git@github.com/musclePatrickStar/fdtree.git"
# 方式三:通過本地路徑安裝
dsh plugin --profile web add "file:/path/to/fdtree"
更新插件:
# 拉取最新提交併重新解析安裝(git 依賴按提交哈希鎖定,必須 update 纔會升級)
dsh plugin --profile web update fdtree
卸載插件:
dsh plugin --profile web remove fdtree
安全與限制¶
- 無外部網絡請求:客戶端只通過同源
fetch('/fdtree/rpc')與本機 DSH web 服務器通信,不連接任何外部域名;無遙測、無上報。 - 只讀工作區:插件只讀取當前會話工作區內的文件(帶路徑越界檢查),git 命令僅在本地運行並受 DSH 沙箱策略約束,從不執行
fetch/pull/push。 - 會話隔離:未綁定會話前,所有 RPC 一律拒絕(
NO_SESSION),不會暴露任何路徑或文件內容。 - 終端功能:僅在用戶顯式右鍵點擊時觸發,目標目錄被限制在工作區內。
- 數據本地化:所有內容都在你自己的瀏覽器中渲染展示,不會發送到任何服務器。
- 信任模型:安裝即信任,等同於執行插件作者代碼。
總結¶
fdtree 提供了一個輕量級的文件瀏覽與 Diff 工具,通過真嵌入佈局和智能模式切換,優化了 DSH 中的開發體驗。對於需要頻繁查看文件結構和代碼變更的開發者而言,該插件能有效減少界面切換成本。
- GitHub 倉庫:https://github.com/musclePatrickStar/fdtree
- 插件目錄:https://www.skillhub.cn/plugins/musclePatrickStar/fdtree