Skip to content
| Marketplace
Sign in
Visual Studio Code>Programming Languages>Fenix Helper (Spring Data JPA)New to Visual Studio Code? Get it now.
Fenix Helper (Spring Data JPA)

Fenix Helper (Spring Data JPA)

dodo

| (0) | Free
Smart support for blinkfox/fenix XML: jump between @QueryFenix methods and fenix XML statements, tag/attribute completion, #{param} completion, and alignment diagnostics
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

Fenix Helper

blinkfox/fenix(Spring Data JPA 动态 SQL)的 VS Code 支持。 功能对标 JetBrains 平台的 Fenix 插件,并补充静态诊断、SQL 预览与大纳树等能力。

功能

跳转

  • fenix XML 里 <fenix id="xxx"> 行上的 CodeLens → 跳转到 Dao 的 @QueryFenix 方法
  • <fenixs namespace="..."> 的 namespace → 跳转到 Dao 类
  • resultType → 跳转到实体类;<import fenixId> → 跳转到目标语句
  • Dao 方法上方的 CodeLens → 跳转到对应的 fenix XML 语句

补全

  • < 触发:全部 fenix 标签(约 50 个,来自官方 fenix.xsd)+ 参数化片段
  • 标签内空格触发:属性补全(标注必需项,过滤已输入)
  • #{ / @if{ / match、value 等属性值内:@Param 名 → 参数 VO 字段 两级补全

诊断

  • XML:namespace 指向的 Dao 不存在(Error)
  • XML:<fenix id> 找不到对应 @QueryFenix 方法(Warning)
  • XML:未注册的 fenix 标签(Error,运行时会抛 NodeNotFoundException)
  • XML:match / @if{} / #{} 表达式语法错误(Warning)
  • XML:引用未定义参数(Error)、参数 VO 上不存在该字段(Error,沿继承链跨包解析)
  • Java:@QueryFenix 方法找不到 XML 语句(Error)

注释掉的语句不参与诊断。

SQL 预览

语句行 CodeLens「▶ 预览 SQL」打开面板:

  • 表格式条件清单:勾选框(是否生成该条件)/ 条件名 / 参数输入框
  • 勾选强制包含该条件,取消强制排除;在输入框填值即替换参数
  • 输出两种视图:命名参数版(:qv_plant)与参数已内联版('AI01')
  • 一键复制 SQL

其他

  • Code Action:@QueryFenix 方法缺 XML 时一键生成语句节点/文件
  • 大纲树:Explorer 侧 FENIX 视图(模块 → 文件 → 语句),支持关键字过滤
  • SQL 高亮:TextMate 注入语法,只影响 fenix 语句块内的文本
  • Snippets:文件骨架、语句块、@if 块、#{} 插值
  • 命令:新建 fenix XML、预览 SQL、过滤/刷新大纲

约定

  • fenix XML 位置不做限定:fenix 的 xml-locations 可自定义目录名(如 fenix、md-fenix、base-fenix)。 扩展会自动识别 fenix / *-fenix 目录,并读取 application*.yml / application*.properties 里的 fenix.xml-locations;也可用设置 fenixHelper.xmlGlobs 追加自定义 glob。 最终以文件内容(根节点 <fenixs)判定是否为 fenix 文件,与目录位置无关。
  • @QueryFenix 空注解形式:namespace = Dao 全限定名,id = 方法名
  • 也兼容 @QueryFenix("ShortName.methodId") 值形式

已知限制

  • VS Code 未提供「可点击的 gutter 图标」API,因此跳转入口统一为 CodeLens。
  • Java 侧不注册 DefinitionProvider:Java 语言服务对接口方法声明本身会返回「自身定义」, 与扩展合并后会显示 2 个定义。跳转请用方法上方的 CodeLens。

开发

npm install
npm run build      # typecheck + esbuild
npm test           # 单元测试(纯 node,无 VS Code 依赖)
npm run smoke      # 构建冒烟脚本 out/smoke.mjs
npm run package    # 产出 vsix(自动先 build)

冒烟用法:

node out/smoke.mjs <fenix xml 文件…>

设计与实现细节见仓库中的 DESIGN.md,版本记录见 CHANGELOG.md。

图标

使用 fenix 官方凤凰 logo(docs/assets/images/logo.png,116×113)放大到 256×256, 原图保留在 media/fenix-logo-original.png。

License

MIT

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
  • Your Privacy Choices
  • Consumer Health Privacy
© 2026 Microsoft