dsh-file-panel-left:DSH Web 純文件工作臺側邊欄

在 DSH Web 環境中,處理文件通常需要切換窗口或使用功能臃腫的側邊欄。dsh-file-panel-left 提供了一個集中的“文件工作臺”體驗,將文件資源管理器、代碼編輯器和預覽器整合在一個面板中。這是一個精簡的 Fork,保留了文件相關的核心能力(文件樹、編輯器、預覽、@ 引用),移除了終端、瀏覽器、Git 和標籤頁等無關功能。

核心功能

佈局與交互

插件採用經典的“左樹右內容”佈局。左側爲文件樹,右側爲內容區域。支持可拖動的面板寬度(240-480px,默認 280px)。內容區域的“關閉”按鈕可摺疊顯示頁,恢復 65% 的視口寬度以專注於文件樹。佈局狀態和寬度偏好會按會話隔離保存。

文件樹

文件樹支持懶加載目錄(每次加載一級以保持響應速度)、符號鏈接支持(解析真實類型並標記斷鏈)、UNC 網絡路徑以及全局文件名搜索(300ms 防抖)。用戶可以通過樹頭或文件夾行的“+”號創建新文件(Enter 確認,Esc 取消),或右鍵複製相對/絕對路徑、重命名或刪除文件。會話根目錄不可刪除。

代碼編輯器

編輯器基於 CodeMirror 6 構建,支持 20+ 種語言的語法高亮(包括 JS/TS/JSON/Python/HTML/CSS/Markdown/Rust/Go 等)。提供 Ctrl/Cmd+F 搜索、括號匹配、代碼摺疊、自動縮進和列選擇。支持 Ctrl/Cmd+S 保存文件,且包含自動保存機制(每秒檢查一次未保存更改)。對於 JSON/JSONC 文件,支持 Ctrl/Cmd+Shift+F 快捷格式化。

查看器

內置 6 種查看器:圖像、PDF、Markdown(含 Mermaid 預覽)、HTML(在沙箱 iframe 中運行,不訪問 GUI 數據或本地文件)、代碼和二進制文件。超大文件會被截斷顯示(前 512 KB)。Markdown 支持預覽和編輯模式切換。

@ 引用

在編輯器中選中代碼並釋放鼠標,會觸發“添加到對話”彈窗,插入純引用行(如 @relative/path L12-L25),不復制選中文本,以保持 Token 友好。插件包含 file-line-reading 技能,引導 AI 僅讀取引用的行範圍。該功能與 DSH 官方的 @ 源共存,互不干擾。

集成能力

聊天中的文件鏈接會優先在側邊欄打開。外部插件可以通過 ctx.betterSidebar 服務註冊側邊欄標籤和自定義文件查看器。

安裝與啓用

安裝前請確保環境滿足要求:Node.js >= 20 且已安裝 DSH Web(CLI)。

dsh plugin --profile web add dsh-file-panel-left

安裝後,無需額外配置文件。DSH 運行時會自動提供 React 18、Cordis 和 @deepseek-ai/dsh-* 依賴。安裝完成後需重啓 DSH 並硬刷新瀏覽器(Ctrl+Shift+R / Cmd+Shift+R)以加載插件。

典型用法

  1. 文件操作:單擊文件打開,或使用樹頭/文件夾行的“+”創建新文件。
  2. 代碼編輯:在編輯器中按 Ctrl/Cmd+S 保存,按 Ctrl/Cmd+F 搜索代碼,按 Ctrl/Cmd+Shift+F 格式化 JSON。
  3. 引用代碼:在編輯器中選中一段代碼並釋放鼠標,系統會自動插入 @path L12-L25 引用行。

注意事項

  • 本地開發:如果使用 pnpm 進行本地開發,file: 依賴是複製而非鏈接。修改源碼後,需刪除 ~/.dsh/profiles/web/node_modules/dsh-file-panel-left 並重新運行 pnpm install,否則瀏覽器可能加載舊的構建。
  • 會話隔離:每個會話擁有獨立的工作目錄和麪板狀態。
  • 兼容性:Windows 標題欄兼容模式下會預留空間;無設置服務的部署會回退使用 ~/.dsh/dsh-file-panel-left-prefs.json 存儲偏好。

總結

dsh-file-panel-left 爲 DSH Web 提供了一個輕量、專注的文件工作環境。它通過移除非必要功能提升了文件操作的效率,並提供了完善的編輯和引用體驗。更多細節可參考 GitHub 倉庫。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜