dsh-file-tree:DSH 原生右側欄文件面板

前言

DeepSeek Harness (DSH) 採用“一切皆插件”的架構,側欄是其核心交互區域。在 DSH 0.1.6-alpha.2 版本中,第三方側欄插件 dsh-better-sidebar 在文件行點擊上存在靜默失敗的問題(點擊後無新增標籤、無提示)。修復第三方編譯產物存在版本覆蓋風險,因此 dsh-file-tree 從零基於官方擴展點開發,通過註冊原生標籤頁提供功能,不接管任何佈局。

核心功能

  • 工作區文件樹與內置編輯器:提供基於 code-server 4.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 倉庫。

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

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

小夜