英语 | 简体中文
@zhangzhian / dsh-devtools-terminal
1 . DSH terminal 【中文译文
按“Ctrl/Cmd +”在 2 . DSH里打开(普通点击仍然是选择/光标,
VSCode (VSCode)
【中文译文 @deepseek-ai/dsh-client-ui-sidebar-terminal
“”“”“”“”“”“”“”“”“
页签类型注册表——李慈欣 extension 注册会顶掉内置类型。接管的是「怎么画」,
【中文译文 ctx.webTerminals(中文:)。
安装
不要单独装它。装清单包——它会作为依赖自动拉下来,并在插件页上给你一个可开关的组件行:
dsh plugin --profile web add @zhangzhian/dsh-devtools
清单包同时用 browser.patch.yml 【翻译右栏浏览器
(@deepseek-ai/dsh-client-ui-sidebar-browser),所以终端链接点下去就落在那里。
本仓库开发回路:
pnpm install
pnpm --filter @zhangzhian/dsh-devtools-terminal build
node scripts/profile-link.mjs # 把声明了 dsh.client 的包接进 ~/.dsh/profiles/web
node scripts/smoke-terminal-links.mjs # 真浏览器 + 真 PTY 冒烟(链接落在右栏浏览器里)
装完/改完都要让运行中的dsh web重新发现插件(重启近年来网络,或等dsh-hmr重载)。 不需要【中文翻译】:http://www.chinac.cn/cn/】
提供什么
- ;
- 按“Ctrl / Cmd +”在右栏浏览器页签里打开链接——
ctx.sidebarRight.openTab('browser', { params: { url } }),载体由平台决定: Web /<webview>; 地址栏、后退/前进/刷新和「在系统浏览器中打开」都由那个面板提供; - 右栏浏览器页签不可用(配置文件)
自动回退
window.open(..., 'noopener,noreferrer'):浏览器里是新标签页, 【翻译回退不会吞掉这次点击; - 普通点击不打开(选择/光标原样);
- ■■■■■■■■■■■■■■■■■■
- OSC 8超链接走同一套逻辑(替掉xterm默认“单击+确认+空白页”的兜底);
- 终端服务缺席时正文显示提示,插件其余部分不崩。
为什么优先右栏浏览器(而不是系统浏览器)
开发工具用户的日常恰好是面板能打开的那一类页面:自己起的服务器(轻快地/下/ dev
故事书,......),中文,中文,中文,中文,中文,中文。起完服务直接在右栏看,
【中文译文】公网站点仍可能因为 X-Frame-Options /
CSP frame-ancestors 中文名称:中文名称
「在系统浏览器中打开」(↗)即可。
落点规则是纯函数(src/link-target.ts),单元测试钉住「面板优先 / 面板抛错回退 /
【中文翻译】:http://http://englishcn.cn/cn/ scripts/smoke-terminal-links.mjs
Cmd/Ctrl+ <s:1> window.open 零次)。
要求
- 近年来
0.2.0-rc.2【中文译文package.json里); - 浏览器侧运行时:
dsh.client.platform是web; - 宿主的终端服务(
@deepseek-ai/dsh-api-terminal-controller)默认随dsh web提供; 没有它时正文显示「不可用」,不报错。
英语
@zhangzhian / dsh-devtools-terminal
DSH devtools的右边栏终端接管了平台的内置
terminal 选项卡类型,以便在终端输出中打开url Ctrl/Cmd + click 在
DSH右边栏浏览器选项卡 (普通点击仍然选择文本-相同
语义作为VS Code终端)。
为什么它接管而不是扩展:平台终端保留它的xterm
的私有惰性块中的实例和UI
@deepseek-ai/dsh-client-ui-sidebar-terminal,所以第三方插件也不能
到达实例,而不是替换该UI。平台的干净扩展点
所提供的是 tab-type注册表:一个 extension 以相同方式注册
Kind优先于内置的。只有渲染被接管;这个
PTY仍然来自于平台 ctx.webTerminals (并发限制,空闲
回收,崩溃恢复和关闭处理程序继续工作)。
安装
请勿直接安装。安装manifest包——它把它作为一个 依赖并在插件页面上给你一个可切换的组件行:
dsh plugin --profile web add @zhangzhian/dsh-devtools
清单包还启用 right-Sidebar浏览器
(@deepseek-ai/dsh-client-ui-sidebar-browser),平台船只被禁用
Web,通过其 browser.patch.yml -所以终端连接就在那里。
此存储库的本地开发循环:
pnpm install
pnpm --filter @zhangzhian/dsh-devtools-terminal build
node scripts/profile-link.mjs # link every package declaring dsh.client into ~/.dsh/profiles/web
node scripts/smoke-terminal-links.mjs # real browser + real PTY smoke (link lands in the Sidebar browser)
安装或重建后,让运行 dsh web 重新发现插件
(重新启动它,或者等待ssh -hmr重新加载)。 DSH安装没有变化
它本身是需要的 -新机器、新版本或远程SSH环境
只需要安装一次插件。
它提供了什么
- 右侧栏终端(多个选项卡);将URL悬停会显示下划线和 指针游标;
- Ctrl / Cmd + click 控件中的链接 右边栏浏览器选项卡 - - - - - -
ctx.sidebarRight.openTab('browser', { params: { url } });平台挑选 载体:网络和手机上的iframe,原生的<webview>在桌面 (dsh-electron航母)。地址栏,后退/前进/重新加载和“在系统中打开” 浏览器"都来自那个面板; - 当浏览器选项卡是 不可用 (配置文件禁用了该行,或者
平台版本没有这样的选项卡类型),它回落到
window.open(..., 'noopener,noreferrer')- Web上的一个新浏览器选项卡 系统浏览器通过桌面载体。退路永远不会吞噬一切 点击; - 普通点击不打开(选择和光标的行为和以前一样);
- 包装url,宽字符,CJK标点符号和平衡括号都是 处理自实端缓冲器;
- OSC 8超链接遵循相同的规则(取代xterm的默认值) “点击+确认+空白页”回退);
- 如果终端服务缺席,则正文显示通知,其余部分显示 插件保持工作。
为什么侧边栏浏览器是第一位的
开发服务器页面正是面板最擅长处理的:vite / next /
在环回端口上的故事书和后端预览页几乎从不拒绝
框架。启动服务器并在侧边栏中观察它,而不是将DSH留给
另一个浏览器选项卡。公共网站仍然可以显示空白框架,因为
X-Frame-Options / CSP frame-ancestors -这是一个的物理极限
面板上的“在系统浏览器中打开”(xxx)是出路。
目标规则是一个纯函数(src/link-target.ts)和单元测试
固定“面板第一/回落时面板抛出/从不打开非http(s)”;
真正的点击语义在真正的浏览器中由
scripts/smoke-terminal-links.mjs (普通点击打开什么,Ctrl/Cmd+点击
在侧边栏浏览器中以零打开 window.open 调用)。
要求
- 近年来
0.2.0-rc.2或者是更新的(同侪范围)package.json); - 浏览器端运行时:
dsh.client.platform是web; - 主机的终端服务(
@deepseek-ai/dsh-api-terminal-controller)船只 与dsh web默认情况下;没有它,身体会显示“不可用”,而不是 失败。