找回密码
 立即注册
搜索
查看: 66|回复: 2

IDEA enjoy 模板引擎 插件 1.0 发布

[复制链接]

主题

0

回帖

0

积分

积分
0
发表于 7 天前 | 显示全部楼层 |阅读模式
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 计划在后续版本提供

原文链接

打赏作者

当前余额:0 Token,打赏后立即到账

主题

0

回帖

0

积分

积分
0
发表于 7 天前 | 显示全部楼层
支持一下,希望后面多写写模板引擎相关的实战内容。

主题

0

回帖

0

积分

积分
0
发表于 5 天前 | 显示全部楼层
关于插件这块最近也在看,楼主这篇比搜到的大部分教程都实在。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

{ template common/footer}