# enjoy-plugin **Repository Path**: wkdu/enjoy-plugin ## Basic Information - **Project Name**: enjoy-plugin - **Description**: No description available - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-08-10 - **Last Updated**: 2025-08-27 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Enjoy 模板插件 ## 项目概述 Enjoy 模板插件是为 [JFinal](https://jfinal.com) 框架开发的 IntelliJ IDEA 插件,旨在为 Enjoy 模板语言提供完整的语言支持。该插件基于 [JFlex](https://jflex.de) 和 [Grammar-Kit](https://plugins.jetbrains.com/plugin/13153-grammar-kit) 构建,提供了语法高亮、代码补全、PSI 结构支持等功能。 该插件主要用于支持 Enjoy 模板引擎的语法解析,适用于开发 JFinal Web 应用时对 Enjoy 模板的编辑与调试。插件实现了对 Enjoy 模板语言中的指令(如 `#if`, `#else`, `#for`, `#set`, `#include`, `#define`, `#switch`, `#case`, `#default`)的识别和语法分析。 --- ## 主要功能 - **语法高亮**:为 Enjoy 模板语言中的关键字、注释、字符串、表达式等提供语法高亮。 - **代码补全**:支持 Enjoy 模板语言中指令关键字的自动补全。 - **PSI 支持**:构建了完整的 PSI(Program Structure Interface)结构,便于 IntelliJ IDEA 解析和识别模板内容。 - **模板文件识别**:定义了 `.enjoy` 文件类型,IDE 可以识别并正确解析 Enjoy 模板文件。 - **语法分析器**:实现了基于 JFlex 的词法分析器和基于 Grammar Kit 的语法分析器,确保 Enjoy 模板语言的完整支持。 --- ![image1](image1.png) ![image2](image2.png) ## 使用方法 1. **安装插件**: - 将插件安装到 IntelliJ IDEA 中。 - 插件支持 `#if`, `#else`, `#for`, `#set`, `#include`, `#define`, `#switch`, `#case`, `#default` 等 Enjoy 模板指令的语法高亮和代码补全。 2. **配置文件类型**: - `.enjoy` 文件类型已定义,确保文件被识别为 Enjoy 模板文件。 3. **开发与调试**: - 使用 `build.gradle.kts` 构建项目。 - 项目依赖 IntelliJ 平台核心模块 `com.intellij.modules.platform`,确保可以在 IntelliJ IDEA 中运行。 --- ## 项目结构 - **Lexer**:使用 JFlex 编写的词法分析器,位于 `src/main/grammar/_EnjoyLexer.flex` 和 `src/main/resources/enjoyv2.flex`。 - **Parser**:基于 Grammar Kit 的语法分析器,定义了 Enjoy 模板语言的结构。 - **PSI**:实现了对 Enjoy 模板语言的 PSI 结构,定义了各种语法节点接口。 - **Highlighter**:语法高亮器,定义了 Enjoy 模板语言中的高亮规则。 - **Completion**:代码补全实现,支持 Enjoy � --- ## 版权信息 该项目使用 [Apache License 2.0](https://www.apache.org/licenses/LICENSE-2.0) 开源协议。更多信息请查看项目根目录的 `LICENSE` 文件。 --- ## 插件图标 插件图标使用 SVG 格式,位于 `src/main/resources/META-INF/pluginIcon.svg` 和 `src/main/resources/icons/pluginIcon.svg`。 --- ## 贡献指南 欢迎为本项目提供贡献,包括新增语法支持、优化代码结构、改进文档等。如需贡献,请提交 Pull Request 到 [Gitee 仓库](https://gitee.com/wkdu/enjoy-plugin)。 --- ## 仓库地址 - Gitee: [https://gitee.com/wkdu/enjoy-plugin](https://gitee.com/wkdu/enjoy-plugin) - JFinal 官方文档: [https://jfinal.com/doc/6-1](https://jfinal.com/doc/6-1)