当前位置: 首页 > news >正文

IDEA 插件开发:Internal Actions 与 UI Inspector 快速定位 PSI

在开发 IntelliJ 平台插件的过程中,你常常需要搞清楚 某个 IDE 弹框背后是如何操作 PSI(Program Structure Interface) 的。下面这篇笔记将介绍如何通过 Internal Actions、UI Inspector 以及调试技巧快速定位 PSI 调用链。


1. 启用 Internal 模式

Internal Actions 是 JetBrains 内部调试工具,默认对普通用户隐藏。要开启:

  1. 打开 idea.properties(如果是插件开发,用来运行插件的沙箱 IDEA 实例)。

  2. 添加一行:

    idea.is.internal=true
    
  3. 重启 IDEA。

此时,在"Help > Find Action"(Ctrl + Shift + A)里即可搜索到所有 Internal | ... 相关动作。


2. 常用 Internal Actions

  • Internal | Show PSI:弹出当前光标所指元素的 PSI 树。
  • Internal | Show Element under Cursor:显示光标处 PSI 节点信息。
  • Internal | Dump PSI tree:将当前文件的 PSI 结构打印到控制台。
  • Internal | Show AST:查看抽象语法树。
  • Internal | Show Editor Context Info:展示编辑器上下文信息。
  • Internal | Analyze Stack Trace:在 IDE 中美化查看栈跟踪。
  • Internal | UI | Show Focused Component Info:显示当前获得焦点的 UI 组件信息。
  • Internal | UI | Show Component Tree:展示当前窗口的组件树结构。
  • Internal | UI | Show DataContext:显示当前 DataContext 相关信息。
  • Internal | UI | Dump UI Hierarchy:将当前 UI 层级结构导出到日志。

入口位置说明: 开启 Internal 模式后,Internal Actions 会出现在菜单栏的 Tools 菜单下(Tools > Internal Actions),也可以通过"Help > Find Action"搜索 Internal | ... 直接访问。


3. UI Inspector:定位弹框组件来源

启用 Internal 模式后,按住 Ctrl + Shift 然后单击代码,可直接弹出 PSI 详情窗口。

该快捷键在不同 IDEA 版本中可能有所调整。建议进入设置页面,在 Keymap 中搜索 “UI Inspector”,以实际显示的快捷键为准。也可以在 Find Action(Ctrl+Shift+A)中搜索 “UI Inspector”,更快地查看和确定当前快捷键。


4. 小结

通过开启 Internal 模式、掌握 Internal Actions、UI Inspector 和调试断点,你可以迅速定位任何 IDEA 弹框背后与 PSI 交互的代码路径。这对插件开发者以及想要深入理解 IntelliJ Platform 的同学,都是必备技能。


(END)

http://www.lqws.cn/news/542827.html

相关文章:

  • Java反射机制讲解,利用疑问一步步刨析
  • Netty堆内存字节缓冲区深度解析
  • 数学:数学里面rank(A)是什么运算
  • UR机器人,如何设置 TCP
  • spring-security原理与应用系列:requestMatchers和authorizeRequests
  • Docker学习
  • Gitee 持续集成与交付(CI/CD)篇
  • IBW 2025: CertiK首席商务官出席,探讨AI与Web3融合带来的安全挑战
  • 线上问题之-OOM排查记
  • 【Docker基础】Docker容器管理:docker ps及其参数详解
  • RAG 多段检索 + 多段拼接 + Encoder 与 Decoder 原理详解
  • C++11 lambda
  • 【C++】命令模式
  • iOS App 上架常见问题解决方案:六大难点与实战工具分工详解
  • MCP-安全(代码实例)
  • 鸿蒙OH南向开发 小型系统内核(LiteOS-A)【文件系统】上
  • Web基础关键_003_CSS(一)
  • 3.web逆向之开发者工具调试
  • Guava Cache 本地项目缓存
  • JDBC 工具类:1.0到3.0版本
  • leetcode 295. 数据流的中位数
  • element-plus限制日期可选范围(这里以7天为例)
  • Unity 脚本自动添加头部注释
  • Qwen VLo :一个多模态统一理解与生成模型
  • 在shell中直接调用使用R
  • 【容器】容器平台初探 - k8s整体架构
  • RJ45 以太网与 5G 的原理解析及区别
  • swagger访问不了的解决方案 http://localhost:8080/swagger-ui/index.html
  • 可编辑37页PPT | 数字化转型咨询规划方案
  • Mysql Mybatis批量插入和批量更新数据