DSH-Codinput:將 DeepSeek Harness 輸入框升級爲編輯器式面板

DeepSeek Harness (DSH) 採用了插件化架構。在常規對話中,默認的輸入框足以滿足需求。但在處理 Markdown、代碼塊或需要精確縮進的場景時,傳統輸入框的交互限制會變得明顯。DSH-Codinput 修改了 conversation.composer.bar 槽位,將聊天輸入框替換爲類似代碼編輯器的面板,提供更接近編輯器的輸入體驗。

核心功能

插件通過接管宿主的原有槽位,提供以下能力:

  • 三態單實例:輸入入口只有三種形態,任一時刻恰好一個,絕不與官方輸入框共存。
    • 普通模式:默認接管卡片在原輸入位。
    • 懸浮模式:按住卡片頂部行空白區拖動。脫出爲懸浮窗,可拖動位置與尺寸,位置與尺寸會被記憶。
    • 側欄模式:打開右側欄的「Codinput」標籤。側欄收起時不讓位,由標題欄下方的圓形小球喚回。在側欄裏輸入 /codinput 可直接退回官方輸入框並關閉本標籤。
  • 編輯器式輸入:基於 CodeMirror 6。支持行號(可關)、當前行與行號高亮、軟換行、Tab 縮進、行列指示。
  • 編輯與預覽分屏:支持 Markdown 實時渲染,嚴格對半分屏顯示。
  • 撤銷歷史跨形態保留:拖成懸浮、切到側欄再回來,Ctrl+Z 依舊有效。三態共用同一臺官方輸入機,草稿即唯一事實源。
  • / @ 觸發管線:完全走官方鏈路(track → 官方 menu store → 逐項復刻的 MenuView)。候選菜單、鑽取、crumbs 與官方逐一對齊。
  • 模型與權限讀取:模型與思考強度讀官方共享目錄(與 /model 同一狀態源);權限爲官方三預設,含完全權限的風險確認模態。
  • 附件支持:支持 slash「添加 · 文件」、粘貼圖片、拖文件進卡片。點圖片縮略圖可彈原圖預覽。
  • 語音輸入同步:官方桌面版的輸入框帶語音按鈕時,Codinput 在一模一樣的位置渲染一模一樣的按鈕。
  • 性能與用量:復刻官方 stats dock。顯示輪次/步數 · tok/s、累計 tok · 緩存命中、上下文佔用小圈。

安裝與啓用

使用官方包管理器安裝,一條命令即可完成:

dsh plugin --profile web add dsh-codinput

安裝後啓用。設置 → Codinput 中可配置啓用接管、行號、字體、快捷鍵等。未啓用時,打開右側欄的 Codinput 標籤即直接啓用。

典型用法

  • 切換懸浮模式:按住卡片頂部行空白區拖動。
  • 切換側欄模式:打開右側欄的「Codinput」標籤。
  • 退出側欄模式:在側欄裏輸入 /codinput。

注意事項與限制

插件依賴較多宿主內部結構,升級宿主後需按 TESTING.md 測試。

  • 無語法高亮:產品決策(輸入面板不是代碼閱讀器)。
  • 無 Esc 功能。
  • 輸入入口唯一:Codinput 標籤存在期間主輸入整體隱藏(唯一輸入入口約定,瀏覽同欄其他標籤也不恢復)。
  • 標籤限制:同一 pane 複製出第二個「Codinput」標籤時,第二個面板只出提示、不渲染第二個編輯面。
  • 手勢限制:懸浮模式的手勢只保留「拖回底部輸入區 = 普通」。
  • 第三方依賴:CodeMirror 6(MIT)、marked(MIT)、DOMPurify(Apache-2.0 / MPL-2.0)。

結語

DSH-Codinput 解決了 DSH 標準輸入框在複雜輸入場景下的體驗割裂問題,通過復刻官方鏈路與接口,實現了無縫接入。適合需要在 Harness 中進行代碼編寫、長文排版或精細化交互的用戶。項目源碼與詳情見 GitHub。

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

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

小夜