Codinput
Code-editor-style composer for DSH — line numbers, split Markdown preview, six dockable layouts, sends plain-text Markdown
- Stars
- 0
- Language
- JavaScript
- Created
- Sep 5, 2026
- Updated
- Sep 9, 2026
Introduction
Codinput
中文 | English
一个 DSH(DeepSeek Harness)Web 插件:把聊天输入框替换为代码编辑器风格的组件——行号、当前行高亮、编辑/预览分屏、六种可拖拽停靠布局——而底层发送的仍然是纯文本 Markdown 源码,消息格式与普通文本消息完全一致。
特性
- 编辑器界面:行号、VSCode 式当前行高亮(色带横贯行号栏与编辑区,软换行下按视觉行实测定位)、等宽字体(JetBrains Mono / 自定义)、Tab 缩进、Ln/Col 状态
- Markdown 编辑 / 预览:两个独立开关,可单开或并排同开;预览复用 DSH 官方
MarkdownText渲染器;草稿图片以缩略图显示在附件栏,可逐个移除 - 状态栏控件(样式与 DSH 原生工具行一致):访问权限(Full access 走官方风险确认弹窗)、模型与推理等级、上下文占用环(含 token 分解)
- 六种布局两两互转:底部 / 左侧 / 右侧停靠、浮动窗、better-sidebar 侧栏标签页;按住标题栏拖动出现投放区提示,落点自动判定;布局切换带 FLIP 形变过渡;尺寸可拖拽调整,偏好全部持久化
- 触发菜单:行首
/命令与@文件/会话引用,由官方InputTriggerController驱动,鼠标点击与键盘操作均走官方管线(命令芯片、引用序列化照常生效) - 主题跟随:样式全部使用
--dsw-*主题令牌,自动适配 DSH 明暗主题
环境要求
- DSH ≥ 0.1.1-rc.1
- pnpm(
dsh plugin的安装动作转发给 pnpm 执行) - 推荐使用 Chromium 内核浏览器;侧栏标签页模式需安装 dsh-better-sidebar(可选,未安装时右/底停靠退回固定面板)
安装
以下命令均在任意目录执行(--profile web 按你的 profile 名称调整)。
方式一:通过 npm 安装
dsh plugin --profile web add codinput
尚未发布:npm 包将在开源后发布,届时此命令可用(包名以发布时为准)。
方式二:通过仓库安装(当前可用)
# 短格式
dsh plugin --profile web add github:Witherwithwinter/Codinput
# 或完整 git 地址
dsh plugin --profile web add git+https://github.com/Witherwithwinter/Codinput.git
若 pnpm 在安装时提示需要放行构建脚本(allowBuilds),按它打印的键名加入 profile 目录下 pnpm-workspace.yaml 的 allowBuilds 后重跑同一条命令即可(本包无构建脚本,通常不会遇到)。
方式三:本地检出(开发)
git clone https://github.com/Witherwithwinter/Codinput.git
cd Codinput
dsh plugin --profile web add link:.
Windows 下若检出路径含空格,pnpm 的 link 支持不佳——建议检出到无空格路径,或用
mklink /J建立无空格路径的目录联接后再add link:<联接路径>。
启用与卸载
dsh plugin --profile web update codinput # 更新
dsh plugin --profile web remove codinput # 卸载
安装/更新后重启 dsh web 并强刷浏览器页面(Ctrl+F5)即可生效。
使用
- 页面加载后,输入框工具行出现
</> Codinput开关,点击启用; Enter换行;Ctrl+Enter(macOS 为Cmd+Enter)或发送按钮发送纯文本 Markdown 源码,发送后自动清空、行号重置;- 按住标题栏拖动切换布局(左/右/底部停靠、浮动窗、面板标签行),拖拽边缘调整尺寸;
- 行首输入
/或@唤起命令 / 引用候选菜单; - 点击工具行开关或卡片右上角 × 退出,恢复默认输入框(草稿原样保留)。
注意:选中无参数命令(如
/compact、/export)会立即执行,这是官方命令决策表的语义;带参数命令(如/goal)则领取输入框等待你补充参数后手动发送。
设置
DSH 左下角 设置 → Codinput:隐藏行号(自动切换软换行)、发送快捷键(预设或现场捕获自定义组合)、编辑器字体。
已知边界
- 接管期间,默认输入框的工具行(图片上传、模型选择等)随官方接管语义一并隐藏,一键退出即恢复;
@文件候选依赖 DSH 工作区文件索引,冷启动或大工作区下首次查询可能等待数秒,且每次按键都会以新关键词重发查询(官方菜单 reducer 语义,与官方输入框同速)。
项目结构
Codinput/
├── package.json # 双面插件清单:bundle patch(宿主挂载)+ client(浏览器半边声明)
├── cordis.patch.yml # 挂载声明
├── DEVELOPING.md # 开发与维护须知(中文)
└── lib/
├── index.js # 宿主半边:纯挂载载体
└── client.js # 浏览器半边:全部 UI 逻辑
开发
node --check lib/client.js && node --check lib/index.js # 语法检查
安装后重启 dsh web:GET /plugins/codinput/client.js 应返回 200,首页 boot 清单应包含 codinput。
接管机制、停靠几何硬约束与完整浏览器侧验证清单见 DEVELOPING.md(中文)。