Changelog
1.0 (2026-10-24)
首个正式版本。为 JFinal Enjoy 模板引擎提供完整的 IntelliJ IDEA 编辑支持。
语法高亮与编辑
- Enjoy 模板语法高亮(指令、表达式、注释、字符串等,可在颜色设置页自定义配色)
- 与 HTML / SQL 混合编辑(Template Language 双 PSI 架构),保留数据语言的原生高亮与补全能力
- 代码补全:指令关键字自动触发(输入
#弹出)、模板函数调用插入 - 代码折叠:
#if/#for/#define/#switch块 - 注释:行注释
###、块注释#-- ... --#(Ctrl+/) - 括号匹配:
#if/#end配对及()[]{}高亮 - 块指令配对检查:多余或缺失的
#end实时提示
格式化
- 缩进模式参考 JetBrains Velocity 插件:文件顶层不缩进,模板文本跟随所属指令级别,
#else/#elseif/#end与所属指令对齐,嵌套指令缩进一级 - 指令参数支持跨行(与 JFinal 引擎行为一致)
- HTML 数据语言区域由 IDEA 原生 HTML 格式化引擎处理
- 提供语言级代码风格设置页
SQL 模板支持
#sql/#namespace/#para指令完整支持- 数据语言为 SQL 方言(MySQL、PostgreSQL 等)时,
#para(...)作为 JDBC 参数占位符?交给 SQL 解析器,与手写?行为一致,不产生语法错误提示 - 依赖数据库插件(可选):未安装时插件其余功能不受影响
表达式
- 算术、比较、逻辑、赋值运算符;三元表达式
- 可选链
?.、空值合并??、静态访问::、范围[1..10] - 字符串 / 数字 / 布尔 / null / Map / 数组字面量
- 自增自减
++/--
支持的指令
| 指令 | 说明 |
|---|---|
#if / #else if / #else / #end |
条件判断 |
#for / #end |
循环(经典、迭代、Map 遍历、#else) |
#set / #setLocal |
变量设置 |
#define / #end |
模板函数定义 |
#include / #render |
文件包含 |
#switch / #case / #default / #end |
开关判断 |
#call |
子模板调用 |
#date / #number / #escape |
输出格式化 |
#continue / #break / #return |
流程控制 |
#sql / #namespace / #end |
SQL 模板 |
#@funcName() |
模板函数调用 |
#(expr) |
输出表达式 |
#para(...) 及 #xxx(...) |
自定义指令(( 需紧跟指令名) |
#[[ ... ]]# |
原样输出块 |
### / #-- --# |
行注释 / 块注释 |
兼容性
- IntelliJ IDEA 2025.1 及以上版本(Ultimate / Community)
- Community 版本同样可用;SQL 模板的
#para占位符特性需要数据库插件(Ultimate 自带)
已知限制
- 自定义指令的
(必须紧跟指令名(#para(0)✓,#para (0)暂不支持) - 结构视图、Find Usages、重命名、Go to Declaration 计划在后续版本提供