# Beetl-Support
**Repository Path**: eighttrigrams/Beetl-Support
## Basic Information
- **Project Name**: Beetl-Support
- **Description**: Beetl/BeetlSQL 的idea插件支持
- **Primary Language**: Unknown
- **License**: GPL-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 4
- **Forks**: 5
- **Created**: 2019-08-25
- **Last Updated**: 2026-04-14
## Categories & Tags
**Categories**: Uncategorized
**Tags**: 插件
## README
# Beetl-Support
通过安装dist/Beetl-Support.jar 或者插件市场搜索Beetl安装。
Beetl 语法的idea插件支持,支持作为Inject语言,在html,xml,markdown中使用Beet语言,如
```html
${a}
```
或者markdown
```markdown
# title
<%
var a=1;
%>
```
理论上,任何支持inject的idea文件,都可以注入beetl语言,获得着色,语法提示,属性提示等功能
> 目前版本还不支持beetl作为HOST语言,较早beetl插件是按照HOST语言来做的,未来版本将完成即支持Inject,也支持Host

# 已完成的部分
- Antlr适配 idea PSI树
- 语法高亮
- 词法颜色
- 模板语言中代码提示
- 代码折叠
- 代码格式化
- 错误提示(根据beetl3.0版本语法检测)
- 自定义beetl定界符、占位符、
# 未来可能支持的部分
- 查找变量在模版中的使用,Find Usages
- Native方法调用语法提示,以及导航到Java类(Beetl方法也可以导航到java定义的Function)
- 语法错误提示改成中文提示,同Beetl模版引擎的提示
- 配置文件提示(springboot 的application配置文件提示,已经由最新版starter提供)
- 支持2对定界符和2对占位符,同Beetl模版引擎
# 需要支持部分(难道较大)
- 将Beetl可以作为主HOST语言(插件早起版本功能),也可以作为嵌入Inejct语言.目前实现了Inject
- 允许编写单独的btl,纯beetl脚本文件
- 当作为inject语言是后,支持beetl自定义的html标签着色和语法提示
# 特别说明
- Beetl插件自动找到beetl.properties,获取定界符,占位符以及注册的函数。在目前1.0版本上,使用需要注意
- 为了获得类型和属性提示,必须使用Beetl的类型定义说明,如var<com.test.User> xxx;
- 插件暂时不支持Beetl的HTML扩展标签功能,以及自动提示格式化函数
- Beetl插件开发按照语言Inject方式实现,即Beetl模版语言可以注入到其他语言里,如html/xml,markdown
就好像Java的注释和Java正则都有自己的语法形式,可以注册到Java代码里一样,理论上,Beetl可以Inject注入到所有主语言,只要主语言支持Inject
- 由于使用Inject方式开发,因此在Idea插件里,Beetl只能针对可注入的部分实现代码着色,属性提示。以xml为例子,beetl插件只能针对标签体,注释,属性值中的beetl语法着色,属性提示,绝大部分模版应用场景足够。
- 在使用xml/html 主语言中,如果beetl中使用了"<",或者类型符号"var ",需要在“<”符号后保持空格,否则,idea会认为这是一个HTML符号。
除非,你配置beetl的定界符号为<!--: 和 -->,即xml/html注释符号,这也是我推荐的定界符号