Repository navigation
Replies: 3 comments
|
https://github.com/aberter0x3f/dsh-custom-enter-key vibe 了一个插件来实现这个行为,如果需要的话可以直接来用. |
|
同意。而且这么高频使用的功能应当是一个原生行为而不依赖插件。实现起来也不难 |
|
English summary: Support the proposal. One correction — the "current behaviour" table is stale: the composer is no longer a 支持做成设置项,理由(习惯差异 + 不改默认)都成立。补充一处更正和一个可直接复用的先例。 更正:「当前行为」表格已过期原帖引用
editor.registerCommand(KEY_ENTER_COMMAND, (event) => {
if (event !== null && (event.altKey || event.getModifierState("AltGraph")
|| event.ctrlKey && event.metaKey
|| event.shiftKey && (event.ctrlKey || event.metaKey))) return true;
if (event?.shiftKey === true) return false; // → 交给 Lexical 插入换行
if (event !== null && isComposingEvent(event, recentlyComposing)) return true;
if (handlers.arbitrate("enter", false) !== "pass") {
event?.preventDefault();
return true;
}
event?.preventDefault();
if (event?.repeat === true) return true;
if (!handlers.canSubmit()) return true;
handlers.submit(event?.ctrlKey === true || event?.metaKey === true);
return true;
}, 4);可直接复用的先例:
|
Uh oh!
There was an error while loading. Please reload this page.
功能建议:Composer 输入框支持可配置的发送键(Ctrl/Cmd+Enter 发送,Enter 换行)
一句话说明
希望 DSH Web UI 的输入框(composer)支持用户自定义发送快捷键,特别是 Slack/Discord 风格的 Ctrl+Enter(或 Cmd+Enter)发送、普通 Enter 换行。
背景:当前行为(已在源码确认)
@deepseek-ai/dsh-client-ui-conversation的输入栏键盘处理是硬编码的(lib/client.js约 3491-3503 行):EnterbusyEnter策略处理)Ctrl/Cmd + EnterShift + Enter现状是 Enter 发送、Shift+Enter 换行。很多用户习惯(尤其 Slack/飞书/Discord/Gmail 用户)是反过来的:Enter 只换行、Ctrl/Cmd+Enter 才发送。
建议方案
在用户设置(
dsh-client-ui-settings-general/ Host user-settings 文档)中新增一个可配置项,例如composer.enterBehavior或sendOnEnter:send(默认,保持现状):Enter 发送,Shift+Enter 换行newline:Enter 换行,Ctrl/Cmd+Enter 发送(也可选 Shift+Enter 发送)该值由
dsh-client-ui-conversation的键盘处理读取(类似现有busyEnter的读取方式),并写入设置文档供用户调整,热生效或重启生效均可接受。为什么建议做成设置而非改默认
busyEnter已有先例——composer 行为走用户设置文档是既有模式;验收与细节
newline后 Enter 只换行、Ctrl/Cmd+Enter 发送;选send(默认)行为不变。busyEnter策略仍适用。All reactions