Fitten Code 提供了一项极为实用的功能:只需在代码注释中按照特定语法描述数据操作需求,它便能自动生成可执行的 SQL 语句。从此,手动拼接 WHERE 条件、纠结字段名大小写、担心引号遗漏等繁琐问题,统统可以省去。

启用注释转 SQL 功能
首先需要在设置中开启该功能。操作路径:打开 Fitten Code 设置 → 编辑器 → 勾选【SQL Generation from Comments】选项 → 重启编辑器使插件生效。
这一步必不可少,若未勾选,即使后续写好了完整的注释,右键菜单中也不会出现“Generate SQL”选项。
基础语法:单表查询生成
在 JavaScript 或 TypeScript 文件中,任意位置按如下格式书写注释:
// @sql SELECT * FROM users WHERE status = 'active' AND created_at > '2024-01-01'
将光标停在该行上 → 右键 → 点击“Generate SQL” → 插件会自动生成一条以分号结尾的标准 SQL 语句,并插入到光标下方。
请注意:@sql 之后必须紧跟一个空格,整行不能包含其他字符。字段名和表名不会进行校验——生成结果完全依赖你所写的注释内容,它不会做语法纠错。
进阶写法:多表关联与参数占位
方法一:使用 {{ }} 包裹动态参数
// @sql SELECT u.name, o.total FROM users u JOIN orders o ON u.id = o.user_id WHERE u.role = '{{role}}' AND o.status != '{{exclude}}'
执行生成后,Fitten Code 会弹出输入框,依次让你填入 role 和 exclude 的值,最终输出带有实际字符串的 SQL(自动为你加上单引号)。
方法二:用 /* */ 块注释支持多行结构
/*
@sql INSERT INTO products (name, price, category)
VALUES ('{{name}}', {{price}}, '{{category}}')
*/
这种写法适合复杂语句,但必须确保 @sql 出现在块注释的第一行,否则无法被识别。
安全限制与不可用场景
第一,确认当前文件后缀为 .js、.ts、.jsx 或 .tsx,.py、.java 等其他语言文件不支持该功能。
第二,检查注释是否写在函数体外或顶层作用域——如果写在函数内部,且被缩进了超过 4 个空格,Fitten Code 会直接跳过解析。
第三,避免在注释中使用反引号、嵌套 SQL 关键字(例如 WITH RECURSIVE),这类语法目前解析器仍不支持,遇到后会报错“Invalid SQL template”。
