3***@qq.com
3***@qq.com
  • 发布:2026-11-12 08:40
  • 更新:2026-11-12 08:40
  • 阅读:13

qoder界面插件

分类:HBuilderX

Qoder 面板(HBuilderX 版)
把 Qoder CLI 装进经典版 HBuilderX 的右侧面板——不用切终端,在编辑器里直接对话、读文件、改代码, 工具执行前先问你。

非官方第三方插件,与 Qoder 无关联。 图标为自制,未使用 Qoder 标识。

这个项目是 qoder-hbuilderv-plugin(VS Code 内核的 HBuilderV 扩展) 的 HBuilderX 移植版,页面协议与交互功能保持一致,宿主 API 换成了 HBuilderX 插件 API。

为什么单独做一份
HBuilderX 是 Qt5 + CEF3 的独立 IDE,插件 API(require('hbuilderx'))与 VS Code 扩展 API 形状 不同:没有 createWebviewPanel、没有同步的 activeTextEditor、没有 globalState、没有 showOpenDialog、文本选区是扁平字符偏移、webview 也没有 CSP 与本地资源白名单。同一份控制器代码 不可能在两边直接跑,所以这里加了一层宿主门面(src/hxHost.js),上层逻辑照旧。

功能
右侧停靠的对话面板(视图 → Qoder),也可用命令或快捷键 Ctrl + Alt + Q 打开
流式输出、思考过程、工具调用与工具结果分块展示,轻量 Markdown 渲染
工具权限确认:允许一次 / 本会话始终允许 / 拒绝;权限模式可切(default / acceptEdits / plan / auto / dontAsk)
模型切换、单轮回合上限
历史会话浏览与恢复
编辑器右键「用选中代码提问」,项目管理器右键「添加文件到对话」
点击工具结果里的文件路径直接在 HBuilderX 打开并跳到对应行
一键网页授权登录 / 退出登录(只删 ~/.qoder/.auth/user,机器标识与界面偏好保留),认证失效 时自动重启后台进程
启动即检测 Qoder CLI 与 Agent SDK,缺失时给出面板卡片 + 通知,点一下由插件在后台执行 npm install -g,进度写日志通道,装完自动复检并刷新模型列表
跟随 HBuilderX 配色:读取 editor.colorScheme 决定深/浅色,用 media/theme.css 补齐 HBuilderX 不注入的 --vscode-* 变量
与 HBuilderV 版的差异
项目 HBuilderV(VS Code 内核) HBuilderX(本项目)
面板载体 createWebviewPanel,可拆到标签页、retainContextWhenHidden createWebView(viewId),固定在右侧容器
webview 安全 CSP default-src 'none' + nonce + connect-src 'none' 宿主不支持 CSP/资源白名单,改为依赖 chat.js 全量转义 + 外链仅 http(s)
页面↔插件桥 acquireVsCodeApi() 全局 hbuilderx 对象,hbuilderxReady 前的消息先入队
主题变量 宿主注入 media/theme.css 自带两套配色
状态持久化 context.globalState <appData>/extensions/qoder-panel/state.json
文件选择 showOpenDialog showFormDialog 的 fileSelectInput,失败退回 showInputBox
Node 运行时 扩展宿主 Node 20 HBuilderX 自带 plugins/node/node.exe(v18.20.0)
产物 .vsix 目录压缩包 qoder-panel-<version>.zip
实现要点
纯 JS,无构建步骤,10 个源文件
src/hxHost.js:HBuilderX API 的 VS Code 形状门面(Uri、workspace、window、通知、配置、 输出通道、JSON 状态存储、行跳转),其余源码基本与 HBuilderV 版一致
src/chatController.js 沿用原有页面消息协议,webview 侧 media/chat.js 只改了桥接与 收发消息两处,页面 UI 完全复用
src/qoderSession.js 通过 SDK 的 query() 驱动会话,固定用 ProcessTransport 加使用者 自己的 qodercli
src/sdk.js 在运行时解析 SDK(设置项 qoder.sdkPath → 插件自带 node_modules → 全局 npm 目录);SDK 是 ESM,在插件进程里动态 import()
src/extension.js 给出站消息打 _seq,页面侧同时监听 window.message 与 hbuilderx.onDidReceiveMessage 并按 _seq 去重(官方文档说两者等同,但投递形状没写明)
scripts/pack.js 用 Node 内置 zlib 手写 zip,不依赖任何打包工具,打完回读中央目录校验
scripts/smoke.js 是离线自检:伪造 hbuilderx、SDK 与 CLI 探测,在临时沙箱里跑 18 项断言, 不触碰真实认证、不启动真实会话
环境要求
HBuilderX ≥ 3.8.5(Windows / macOS)。插件进程用的是 HBuilderX 自带的 Node v18.20.0,Agent SDK 1.0.59 已验证可在其中加载。开发时验证过的组合:Agent SDK 1.0.59 + qodercli 1.1.86。

Windows 上 webview 依赖 WebView2 Runtime(Win10/Win11 一般已内置)或 HBuilderX 自带的 CEF3; 面板空白时先确认这一点。

qoder-panel-<version>-slim.zip 不自带 Qoder CLI 与 Agent SDK(两者都是 Qoder 的专有软件), 需要你先自行准备:

Qoder CLI 与 Agent SDK:装好插件后打开面板,缺哪个就会提示「立即安装」,由插件在后台执行 npm install -g;也可以自己在终端装:

npm install -g @qoder-ai/qodercli
npm install -g @qoder-ai/qoder-agent-sdk
登录:在面板中点击 登录 按钮走网页授权,或在命令行执行 qodercli login

默认的 qoder-panel-<version>.zip 会把 SDK 及其依赖一起打进去(npm run sync-sdk 复制而来), 只供你本机自用——Qoder Product Service Terms 的授权是 non-transferable、non-sublicensable, 含 SDK 的产物不要上传插件市场、不要转发给别人,需要分发时用 npm run package:slim。

配置项
在 HBuilderX 的 工具 → 设置 → 插件配置(或直接改配置文件)里可以调:

配置项 说明
qoder.cliPath qodercli 的 JS 入口或可执行文件路径,留空自动探测
qoder.nodePath 运行 qodercli 的 node 路径,留空用 PATH 中的 node
qoder.sdkPath Agent SDK 目录,留空依次查插件自带 node_modules 与全局 npm 目录
qoder.model 默认模型,留空用 Qoder 默认模型
qoder.permissionMode default / acceptEdits / plan / auto / dontAsk
qoder.maxTurns 单轮最大回合数,0 不限制
模型与权限模式在面板里切换后会写进 <appData>/extensions/qoder-panel/state.json,重启保留。

命令与快捷键
命令 说明
qoder.openChat 打开 Qoder 面板(Ctrl + Alt + Q / macOS command + alt + Q)
qoder.newSession 新建会话
qoder.askSelection 把编辑器选区加入上下文并打开面板
qoder.addFileContext 把文件加入上下文(项目管理器右键可用)
qoder.installDeps 全局安装缺失的 CLI / SDK
qoder.login / qoder.logout 登录 / 退出登录
qoder.showLogs 打开插件日志通道
开发
npm run smoke # 离线自检(18 项),不连网、不动真实认证
npm run sync-sdk # 从同机已装好的目录复制 SDK 及依赖树到本插件 node_modules
npm run package # 打出含 SDK 的自用 zip
npm run package:slim # 打出不含 SDK 的可分发 zip
npm run install-ext # 复制到 HBuilderX 的 plugins 目录(需要重启 HBuilderX)
npm run install-ext 会先删掉 <HBuilderX>/plugins/qoder-panel 再复制,可以用第一个参数或 环境变量 HBUILDERX_HOME 指定安装目录:

npm run install-ext -- "D:\program\HBuilderX"

下载地址 https://gitee.com/chuyuan104/qoder-hbuilderx-plugin

hbuilderV 下载地址:
https://gitee.com/chuyuan104/hubilder_v_qrcode

0 赞 关注 分享

要回复文章请先登录或注册