CodeGeeX插件必须显示“Ready”才可触发代码生成:若状态栏无图标或显示“Not ready”,主因是VSCode未重启、插件未重载、工作区禁用、小程序项目不在workspace root,或API密钥缺失;需在.js文件中确认右下角为绿色“Ready”,并用明确祈使句指令(如“生成onShow函数,调用wx.login和wx.request获取openid,适配基础库2.28.0+”),且手动校验setData、encodeURIComponent及生命周期命名。

CodeGeeX 插件必须显示 “Ready” 才能触发生成
状态栏没出现 CodeGeeX 图标或显示 “Not ready”,说明插件未激活,Ctrl+I 会完全无响应。常见原因包括:VSCode 没重启、插件安装后没点“重新加载”、工作区禁用了该插件、或微信小程序项目未在 workspace root 下(导致上下文感知失败)。
验证方式:打开任意 .js 文件 → 看右下角状态栏 → 找到 CodeGeeX 字样并确认是绿色“Ready”。不是灰色、不是“Loading”、也不是空白。
- 如果显示“API key missing”,需前往插件设置补全密钥(部分版本要求)
- 如果项目使用了自定义构建工具(如 taro、uni-app),插件可能无法识别 Page 结构,建议先在原生小程序项目中验证
- Mac 用户注意是
Cmd+I,不是Ctrl+I;快捷键冲突时可在 VSCode 键盘快捷方式中搜索 “codegeex” 重绑定
指令必须用祈使句,且限定基础库版本
输入“请帮我写一个 onShow 函数”大概率返回空或格式错误;而“生成 onShow 函数,调用 wx.login 和 wx.request 获取 openid,成功后 this.setData({ userInfo: { openid } })”才能命中逻辑模板。关键点在于动词开头 + 明确动作 + 关键 API 名称 + 数据流向。
微信基础库 2.28.0+ 已废弃 wx.getUserInfo,但 CodeGeeX 默认提示词未排除它。若生成结果含该 API,说明指令缺版本约束。
- 必须加一句:“适配微信基础库 2.28.0+,不使用 wx.getUserInfo、wx.authorize(scope.userInfo)”
- 涉及跳转时,明确写“调用
navigateTo跳转到 pages/detail/detail,携带 id 参数”比“跳转到详情页”更可靠 - 避免模糊表述如“处理错误”,应写“catch 块中 console.error 错误信息,并弹出 wx.showToast 提示”
生成代码必须手动校验 setData 调用和编码安全
AI 生成的 setData 常见两类硬伤:一是直接赋值嵌套对象(如 this.setData({ userInfo: res.data })),未做深拷贝或路径校验,易引发 setData 错误;二是跳转参数未 encodeURIComponent,导致 URL 解析失败。
尤其在带中文、特殊符号或用户输入字段的场景下,漏掉编码会直接让页面跳转白屏或参数截断。
-
setData前检查对象是否为 plain object,避免传入 Promise、Date 等非序列化类型 - 所有
navigateTo/redirectTo的url参数,query 部分必须包裹encodeURIComponent,例如:id=${encodeURIComponent(id)} - 生成的 try-catch 中若只捕获
err但没打印err.stack,调试时几乎无法定位问题,建议补全
DeepSeek + Cline 插件更适合复杂逻辑迭代
CodeGeeX 对单函数生成快,但遇到跨页面状态同步、异步链式调用(如 login → get token → fetch user info → update cache)这类多步骤逻辑时,容易生成断裂代码。此时换用 Cline 插件 + DeepSeek 模型更稳——它支持多轮对话修正,比如你发一句“上一步生成的 token 请求没带 header”,它能立刻补全 header: { 'Authorization': 'Bearer ' + token }。
但代价是配置稍重:需手动填 DeepSeek API Key、设 max_tokens=1024、并在 settings.json 中指定模型 endpoint。对临时小项目不如 CodeGeeX 开箱即用。
- 适合场景:需要复用已有 service 层、依赖 TypeScript 类型推导、或要生成配套单元测试
- 不推荐场景:纯小程序原生开发、无后端联调、仅需快速补个生命周期函数
- 注意
Cline默认不识别Page语法糖,需在指令里强调“按微信小程序 Page 构造器格式写”
console.log 有没有漏掉、setData 的 key 是不是拼错了、跳转路径是不是少了个 pages/ 前缀——这些细节不会报错,但会让功能在真机上静默失效。


















