前言¶
在 DSH Web 會話中處理工程時,經常需要查看當前工作區的文件,並對文件做少量修改。lak321/dsh-filetree 面向 DSH Web 界面,提供工程查看 / 打開 / 編輯能力的插件組合,把文件瀏覽和編輯器加入會話視圖。
這是什麼¶
lak321/dsh-filetree 是一個 DSH 插件組合,由 lak321 維護,採用 MIT 許可證。它的目標是在 DSH Web 會話視圖中提供當前工作區(工程)的目錄查看、文件打開、文件編輯與保存能力。
核心功能¶
下面介紹這個插件的主要能力:
- 在 DSH Web 會話視圖新增“文件”頁籤。
- 顯示當前工作區(工程)的完整目錄樹。
- 支持展開 / 摺疊所有子文件夾,並跟隨當前工作區切換。
- 點擊任意文件查看內容。
- 支持直接修改並保存到磁盤。
- 提供 VSCode 風格編輯器,包括 C/C++ 語法高亮、行號欄、Tab 鍵縮進與回車自動縮進、狀態欄、深色主題和透明滾動條。
安裝與啓用¶
安裝命令中的 <commit> 需替換爲倉庫主頁中的最新提交號。
dsh plugin --profile web add "github:lak321/dsh-filetree#<commit>&path:/"
裝完重啓 DSH:
npx -y @deepseek-ai/dsh web
舊的手動複製 host/ + client/ 並注入 cordis.patch.yml 的方式已廢棄,由 bundle 層棧安裝替代。
典型用法¶
按下面步驟使用:
1、打開 DSH Web 界面,進入任意會話。
2、點頂部“文件”頁籤,該頁籤位於“對話 / 軌跡”之後。
3、左側顯示當前工程目錄樹;點 ▸ 展開文件夾,點文件在右側打開。
4、編輯後點“保存”;需要收起編輯器時點“關閉”。
開發與排錯注意¶
如果需要在同類 DSH 客戶端插件中接入或修改,注意以下已列出的約束:
- client 插件必須導出
exports.inject(依賴列表,如["slots"]),否則ctx.slots不可用:
exports.inject = ["slots"];
client.js是window.__ModuleLoader__.load({ id, factory })格式,factory內用require("react"),並導出exports.apply/exports.inject。- 若替換 single slot,必須用更低優先級:
priority: -1
否則 loader 報 already has a registration at priority 0。
適用場景與注意¶
適合需要在 DSH Web 會話中查看當前工作區文件,並打開、編輯、保存文件的場景。由於該插件提供文件查看和保存到磁盤的能力,且會以當前 dsh 進程權限運行,安裝前應檢查源碼和 MIT 許可證,只安裝可信來源。
結尾¶
lak321/dsh-filetree 爲 DSH Web 會話補齊了當前工程的文件查看、打開、編輯與保存路徑。倉庫地址: