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。

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

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

小夜