免费开源MIT 许可证IntelliJ IDEA 2026.2

给 SQL 和 HTTP 文件一份目录

Code Comment Navigator 读取你本来就写在注释里的 Markdown 标题——SQL 里的 -- # 标题、HTTP 里的 // # 标题——在 IntelliJ IDEA 右侧生成可折叠的 Comment Outline,点击标题就跳到对应注释行。项目文件和 Scratches 里越写越长的迭代脚本都适用。

在 GitHub 上获取 查看标题写法

版本 1.1.0 · MIT 许可证 · 适配 IntelliJ IDEA 2026.2

上方是 IntelliJ IDEA 窗口的示意图:左侧编辑器里是一个 SQL 文件,注释里的标题(-- # 角色与权限核对、-- ## 角色本体、-- ### 商户角色 等)在右侧 Comment Outline 工具窗口中变成四层树;树里选中的是「商户角色」,编辑器中对应的注释行同时高亮。

怎么用

  1. 在注释里写标题

    在普通注释行里用 ####### 标记层级:SQL 写 -- # 标题,HTTP 写 // # 标题。井号后必须留一个空格,文件的其他部分什么都不用改。

  2. 打开 Comment Outline

    点右侧的 Comment Outline 标签,或走 View → Tool Windows → Comment Outline。编辑器右键菜单和 Edit 菜单里同样有 Comment Structure 动作(默认键位 Shift+Cmd+F12)。

  3. 点击跳转,输入搜索

    点击标题,或用上下键选中后按 Enter,跳到对应注释行。直接在树里输入就能搜索标题。

Scratches 里的迭代脚本会一路变长:几百行 SQL,没有结构,也很难回到刚才在看的那一段。注释大纲不改变你的书写习惯,只是把这份文件变成一份目录。

功能

大纲能做的事,以及它不做的事。

  • SQL / HTTP / REST 六级标题

    支持 .sql.http.rest 文件,Markdown ####### 直接变成树。跳级时挂在前一个层级更浅的标题下,同级标题保持文件顺序。

  • 点击或回车跳转,输入即搜索

    点击标题,或用上下键选中后按 Enter,跳到对应注释行。在树里直接输入就能搜索标题,不用先开弹窗。

  • 跟随编辑器,不必保存

    面板跟随当前选中的编辑器,修改后约 250 ms 自动重建大纲,不需要先保存文件。

  • 展开、折叠、保留状态

    可逐个节点展开或折叠,也有全部展开、全部折叠。同一文件编辑时保留折叠状态,切换文件后恢复为展开。

  • 认识 HTTP 的 ###,也有普通注释兜底

    HTTP Client 的 ### 请求名称 分隔符固定作为二级节点,空的 ### 会跳过。整个文件没有任何标题和请求名称时,回退成普通注释的平级列表。

  • Java / Kotlin 弹窗保留

    原有的 Java / Kotlin 注释导航弹窗保留,仍然通过同一个 Comment Structure 动作(Shift+Cmd+F12)打开。

  • 项目文件和 Scratches 都支持——不断变长的 scratch 脚本正是这个插件的由来。
  • 解析使用平台 Document API,不依赖 SQL / Database 或 HTTP Client 语言插件。

标题写法

标题就是普通注释。数据库控制台和 HTTP Client 看到的仍然是注释,文件照样能直接执行。

SQL

-- # 角色与权限核对
-- ## 角色本体
-- ### 系统模板
SELECT 'system role';

-- ### 商户角色
SELECT 'merchant role';

-- ## 授权明细
/*
 * ### 页面权限
 * #### PRO 页面
 */
SELECT 'page permission';
  • 支持 -- 行注释和 /* … */ 块注释。
  • 标题必须独占一整行注释。
  • 不会把 SQL 语句行尾注释、字符串或引用标识符里的内容误认成标题。

HTTP

// # 货柜查询
// ## 正常场景
# ### 响应字段核对

### 批量查询货柜
GET {{host}}/freezers

// # 补货单
### 补货单详情
GET {{host}}/replenishments/example
  • 推荐用 // # 标题# # 标题# 注释后再加 Markdown 标记)同样支持。
  • ### 请求名称 固定是二级节点,因此不要用它表达三级标题;需要明确层级时写 // ### 标题
  • 空的 ### 不进入目录;请求前置和响应处理脚本里的注释也不进入目录。
HTTP 标题层级对照
写法 大纲层级
// # 标题# # 标题 一级
// ## 标题 二级
// ### 标题 三级
### 请求名称 二级 —— HTTP Client 原有的请求分隔符

两种语言通用的规则

  • 标题标记后必须留一个空格。
  • 支持 1–6 级。
  • 跳级时挂在前一个层级更浅的标题下。
  • 同级标题保持文件顺序。
  • 普通说明不会混入已有显式标题的大纲。
  • 整个文件没有任何标题或请求名称时,回退到普通注释的平级列表。

安装

两分钟、一条命令,IDE 提示时重启一次即可。

  1. Marketplace 条目建设中

    JetBrains Marketplace 的条目尚未上线,也还没有 GitHub Release。在它发布之前,请按下面的步骤自行构建安装包——只要一条命令。

  2. 从源码构建

    克隆仓库,用 JDK 25 执行 ./gradlew test buildPlugin。安装包输出在 build/distributions/comment-navigation-1.1.0.zip

  3. Install Plugin from Disk

    在 IDE 里打开 Settings → Plugins → 齿轮菜单 → Install Plugin from Disk…,选择该 ZIP,按 IDE 提示完成安装。

  4. 打开 SQL 或 HTTP 文件

    打开 .sql.http.rest 文件,点右侧的 Comment Outline 标签,或走 View → Tool Windows → Comment Outline。

本版本的构建与验证范围是 IntelliJ IDEA 2026.2(262.*),更早的 IDE 版本未纳入兼容范围。从源码构建需要 JDK 25。

想先看看效果?仓库里带了两个示例文件: SQL 示例 · HTTP 示例

常见问题

Code Comment Navigator 是免费的吗?

是。项目采用 MIT 许可证,个人和企业均可免费使用,包括商业用途,无需购买、订阅或激活码。允许修改、再分发及销售,须保留版权声明与许可声明。软件按现状提供,不承诺固定更新周期或支持响应时间。

支持哪些版本的 IntelliJ IDEA?

1.1.0 的构建与验证范围是 IntelliJ IDEA 2026.2(262.*),更早的 IDE 版本未纳入本次兼容范围。从源码构建插件需要 JDK 25。

需要额外装 Database 或 HTTP Client 插件吗?

不需要。解析使用平台 Document API,不依赖 SQL / Database 或 HTTP Client 语言插件,.sql.http.rest 文件都能自己读。

它会把我的代码传到外部吗?

不会。插件不含任何网络代码,只读取你当前打开的编辑器文本,并在 IDE 本地生成大纲。

为什么 ### 请求名称 是二级节点?

因为它是 HTTP Client 原有的请求分隔符,为了让既有 .http 文件保持可用,它固定映射为二级节点;空的 ### 会被跳过。需要明确的三级标题时,改写成 // ### 标题

在 Scratches 里能用吗?

能。项目文件和 Scratches 都支持——Scratches 里越写越长的迭代脚本正是这个大纲存在的理由。打开 scratch 的 SQL 或 HTTP 文件,面板照常跟随编辑器。

许可与联系

Code Comment Navigator 采用 MIT 许可证,版权归 Fuuqiu (Tinyue) 所有(2024–2026)。个人和企业均可免费使用,包括商业用途,无需购买、订阅或激活码。

允许修改、再分发以及销售,须保留版权声明与许可声明。软件按现状提供,不提供担保,也不承诺固定的更新周期或支持响应时间。

相关链接

有问题、Bug 或功能建议:提一个 issue,或发邮件到 fuuqiu@gmail.com.