DSH 采用“一切皆插件”的理念。此插件在 DSH 中心区视图内嵌入固定版本 code-server(VS Code Web),支持安装扩展、浏览/编辑文件等全部 code-server 能力;提供 pinned / 自定义二进制两种服务器来源、端口与目录配置、安装进度与热切换。
核心功能¶
实例池与热切换¶
插件采用实例池机制管理 code-server 实例:按 workspace 缓存实例,同空间会话互切命中同一实例,实现零重载。当实例池满(默认上限 2)时,会弹出窗口让用户选择要腾位的实例,被踢出的实例会整体销毁。
服务器来源与配置¶
支持两种服务器来源:
- pinned:使用插件内置的固定版本。
- custom:使用用户指定的二进制路径。
用户可配置端口、工作区目录、打开目录跟随当前空间的开关以及实例池上限。
UI 交互与布局¶
- 主题跟随:自动跟随 DSH 深色主题或 VS Code 浅色主题。
- 专注布局:默认开启。新打开的 VS Code 默认以“副边栏(右侧 Codex 面板)最大化”进入,隐藏状态栏与欢迎页,活动栏保留。
- 信任打开的目录:默认开启,禁用 Restricted Mode,确保 Codex 等扩展在目录下可用。
版本迭代修复¶
- 0.1.8:内置扩展资源自动补齐,解决 code-server 4.135.0 缺少浏览器端 bundle 导致黑屏的问题。
- 0.1.19 - 0.1.23:持续修复实例池、布局初始化、主题跟随收敛、信任目录、副边栏默认定位等功能。
安装与启用¶
安装插件需要 Node.js >= 20 环境。安装流程如下:
- 进入 DSH 仓库目录。
- 安装插件包(将插件行追加进 profile 层栈)。
cd <dsh 仓库>
pnpm dsh plugin --profile web add <本插件目录>/dsh-vscode-bridge-0.1.20.tgz
- 重启 dsh web(建议脱离终端重启以落盘日志)。
bash <本插件目录>/scripts/restart-dsh-web.sh <dsh 仓库> <工作区>
典型用法¶
安装完成后,插件会在 DSH 原生右栏(better-sidebar 0.19+ / DSH 0.1.5 宿主)或中心区视图出现页签。
- 配置服务器:在侧栏齿轮 → “VS Code Server”设置页,选择服务器模式(pinned 或 custom),配置端口与目录。
- 会话切换:在同一个 DSH 空间内切换会话,VS Code 页面会保持当前状态或零重载,不会重新冷启动。
- 使用专注模式:在设置页关闭“专注布局”开关,或手动在 VS Code 中调整布局后,后续打开该目录将保留用户自定义布局。
适用场景与注意¶
- 环境依赖:需要安装目录下的特定文件(如
cordis.patch.yml,dsh.plugin.json等),且需 code-server 4.135.0 官方 tarball(插件会自动补齐内置扩展资源)。 - 调试隔离:若需独立调试,可通过
DSH_VSCODE_BRIDGE_WORKSPACE环境变量覆盖插件的工作区根,实现独立 profile/端口。 - 版本管理:升级版本时需重新打包 tgz 并按上述步骤重装 + 重启。