【第二篇·额外】CIDE仓颉开发软件新功能
先交代背景:这是上一篇《写仓颉再也不用切浏览器查 API 了》的续篇。CIDE 仍然是我个人开发的第三方开源项目,社区版,跟华为、仓颉官方团队没有任何隶属或背书关系。上一篇发出去之后我又埋头更了几个版本,从 1.x 更到了 2.3.0。这篇不讲已经讲过的(API 面板、调试、测试树、覆盖率那些去看上一篇),只讲新长出来的能力。
上次发完之后,我又被几件事情烦到了
2.3.0 这个版本,就是把这三件事收进 IDE 里。
1. 数据库面板:写完 DAO 顺手就把表查了
侧边栏 🗄️ 图标或Ctrl+Shift+D打开。支持MySQL 和 SQLite。
连库:新建连接 → 填主机端口账号密码 → 点「测试连接」。不通会直接告诉你原因(密码错 / 端口不通 / 库不存在),不会保存完才发现连不上。密码走系统 DPAPI 加密落盘,明文不进配置文件。
看数据:左侧树(连接 ▸ 库 ▸ 表),双击表名出数据页签,然后所有操作都是点与键:
| 操作 | 怎么做 |
|---|---|
| 改数据 | 双击单元格进入编辑态,回车确认 / Esc 取消 |
| 加一行 | 工具栏 ➕ 或Ctrl+N |
| 删一行 | 选中后点 🗑️,弹确认框(无主键的表禁用删除,防误删) |
| 保存 | Ctrl+S,脏行高亮、一次性提交 |
| 刷新 | F5或 🔄 |
写 SQL:切到 SQL 页签,Monaco 编辑器(和 VS Code 同内核)带语法高亮,Ctrl+Enter执行,结果直接出在下面;右上角下拉可以换目标库跨库查询。改了 SQL 想重跑,F5就行。
看结构:表结构页签列出全部列定义,一键展开SHOW CREATE TABLE。
两个工程细节顺带说一句:MySQL 连接层强制utf8mb4并自动SET NAMES,中文插入不乱码(前提是你的表本身不是 latin1/gbk 建的,那种得自己 ALTER);单条查询 30 秒超时,假死有兜底。
2. 远程开发:Windows 上写,Linux 上跑(2.1 引入,2.3 完善)
这是 2.1.0 开始做的第一阶段,这篇正式讲一下:
- SSH 连上 Linux 服务器后,在服务器上执行
cjpm编译与运行,输出实时回传到本机终端 - 保存文件自动增量上传改动;断线后指数退避自动重连
- 连接密码同样 DPAPI 加密落盘
也就是说:IDE 本体还是 Windows x64,但你的仓颉项目可以实实在在跑在 Linux 生产环境里。
3. 多模块项目:库 + 可执行 + path 依赖,互不干扰
2.1.0 起的另一个大块:新建、编译、运行多模块仓颉项目。打开项目后按运行配置在 Services 面板展示可运行模块,各模块构建互不干扰。打开项目会自动按配置确定运行目标,不用手动选。
4. IDEA 风格的两个补全(2.0 引入)
- 未导入类型直接补全:直接敲类型名就能补全,选中后自动追加
import,不用先手动导包 - 生成函数小灯泡:调用了不存在的自由函数时,小灯泡给出「生成函数 ‘xxx’」,按调用现场推导参数与返回值生成桩代码
配合之前就有的「Generate Code 九项生成」,写仓颉类的样板代码基本不用手敲了。
5. 顺手带的几样新东西
- Git 状态着色:编辑器标签和项目树文件名按 Git 状态着色(修改=蓝、新增=红),行号区实时显示行级变更竖条,行为和 VS Code / IDEA 一致
- 应用内自动更新:启动自动检测新版本,菜单红点提醒,一键下载安装,更新包带 SHA-256 校验(免安装版检测到后手动解压替换)
- 新建仓颉文件对话框 + 模板页:新建
.cj文件时可选模板;设置面板里有仓颉模板页,模板内容可以自己改 - JSON 工具面板:侧边栏内置 JSON 格式化 / 校验,不用再开网页工具
- TODO 待办面板:自动扫描工程里的
TODO/FIXME注释,汇总成列表点击直达源码行 - 教程第二篇宏系列完结:反射、宏基础、deriving 宏实战,IDE 内置教程面板直接读,所有示例在 SDK 1.2.0 下逐行实测编译通过
6. 一批不起眼但天天用得上的打磨
这几项单独列出来太碎,但都是真实修过的坑,合并说一说:
std.core预导入包(Comparable、String这类)不再被误提示「需要导包」cjpm.toml保存时内容没变化不再弹同步提示条;同步按钮挪了位置,不再和视图切换栏重叠- 光标悬停在已导入类型上不再反复弹出导包小灯泡
- 字符串插值
${...}输入}时代码被错误缩进的问题已修 - 笔记编辑器遗留英文文案全部汉化,表格高亮改为覆盖层方案,窗口尺寸变化不再抛 DOM 异常
- 首次启动后
Alt+Enter导包偶发无效的问题已修
三分钟跑起来(2.3.0)
- 本机装好仓颉 SDK 1.2.0(编译、LSP、调试依赖它)
- 下载安装包 → https://atomgit.com/wp_upala/cide/releases
- 安装。Windows 弹「未知发布者」/ SmartScreen 是正常的——社区版没钱做代码签名。点「更多信息 ▸ 仍要运行」
- File ▸ Open Project选仓库里的示例工程,立刻可玩
数据库面板首次使用需在面板里点一次「导入驱动」(MySQL 用 mysql2、SQLite 用 sql.js),一键完成。
可验证功能
| 想看什么 | 怎么做 | 应该看到 |
|---|---|---|
| 数据库编辑 | 面板连上你的库,双击一张表,双击单元格改值,Ctrl+S | 改动落库,脏标记消失 |
| SQL 跨库 | SQL 页签右上角换目标库,写条SELECT | 结果从选中的库返回 |
| TODO 收集 | 代码里写一行// TODO: 试试,打开待办面板 | 列表里出现这条,点击跳回源码行 |
| Git 着色 | 打开一个 Git 仓库改两行代码 | 文件树变蓝、行号区出竖条 |
| 自动更新 | 菜单 Help 看更新红点(有新版本时) | 一键下载,SHA-256 校验通过 |
已知限制(照旧不藏着)
| 限制 | 说明 |
|---|---|
| 仅 Windows x64 | macOS / Linux 桌面版未适配;但 2.1 起可通过远程开发在 Linux 服务器上编译运行 |
| 未做代码签名 | 安装首启触发 Windows 安全提示,属预期 |
| MySQL 表字符集 | 连接层已强制 utf8mb4;表本身是 latin1/gbk 的话需自行ALTER TABLE ... CONVERT TO CHARACTER SET utf8mb4 |
| 远程调试还没做 | 远程模式下编译运行在服务器,调试仍为本机调试,在排期 |
链接汇总
| 内容 | 地址 |
|---|---|
| 源码仓库(AtomGit) | https://atomgit.com/wp_upala/cide |
| 源码仓库(GitCode 镜像) | https://gitcode.com/wp_upala/cide |
| 下载与发行版 | https://atomgit.com/wp_upala/cide/releases |
| 上一篇:API 面板 / 调试 / 测试 / 覆盖率 | https://blog.csdn.net/weixin_41618057/article/details/164193602 |
.cjo签名索引技术实现 | https://blog.csdn.net/weixin_41618057/article/details/164175064 |
| 开源许可证 | Apache License 2.0 |
| 版本变更日志 | 仓库CHANGELOG.md |
最后
上一篇结尾我说 CIDE 做的是「把仓颉已有工具链的产出翻译成点得到的界面」。2.3.0 还是这个思路——mysql2、cjprof、SSH、LSP 全是现成的,我只是把数据库、性能、远程这三条原本要切出去的动线,收回到同一个窗口里。
一个人开发,更新节奏不会太快,但你提的 issue 我会看。觉得有点用的话,给个 Star 就是最大的支持。