IDEA插件开发(10)---Components

Posted 流子

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了IDEA插件开发(10)---Components相关的知识,希望对你有一定的参考价值。

插件组件是支持与为旧版本 IntelliJ 平台创建的插件兼容的遗留功能。使用组件的插件不支持动态加载(无需重新启动 IDE 即可安装、更新和卸载插件的能力)。

插件组件在插件配置文件的、和部分中定义。

移民
要将现有代码从组件迁移到更现代的 API,请参阅以下指南。

管理状态
要管理一些仅在用户执行特定操作时才需要的状态或逻辑,请使用Service。

持续状态
要在应用程序或项目级别存储插件的状态,请使用Service并实现PersistentStateComponent接口。有关详细信息,请参阅持久化组件状态。

订阅事件
要订阅事件,请使用侦听器或为专用扩展点(例如)创建扩展com.intellij.editorFactoryListener(如果存在要订阅的事件)。

应用程序启动
应尽可能避免在应用程序启动时执行代码,因为它会减慢启动速度。

插件代码应该只在项目打开(参见项目打开)或用户调用插件操作时执行。如果无法避免,请添加订阅该主题的侦听器。AppLifecycleListener另请参阅运行任务一次。

要在 IDE 启动时在后台执行活动(例如,预热缓存),请使用PreloadingActivity.

项目开放
要在打开项目时执行代码,请使用以下两个扩展之一:

com.intellij.postStartupActivity
StartupActivity在 EDT 上立即执行。实现DumbAware以指示活动可以在后台线程中运行(与其他此类任务并行)。

com.intellij.backgroundPostStartupActivity
StartupActivity.Background在后台线程(2019.3 或更高版本)中延迟 5 秒执行。

任何长时间运行或 CPU 密集型任务都应使用ProgressManager.run(Task.Backgroundable). 对索引的访问必须用 包装DumbService,另请参见一般线程规则。

另请参阅运行任务一次。

项目和申请 关闭
要在项目关闭或应用程序关闭时执行代码,请在ServiceDisposable中实现接口并将代码放在方法中。或者,使用传递或服务实例作为参数(请参阅选择一次性父级)。dispose()Disposer.register()ProjectApplicationparent

以上是关于IDEA插件开发(10)---Components的主要内容,如果未能解决你的问题,请参考以下文章

IDEA插件开发(23)--Miscellaneous Swing Components

推荐 10个 NB的 IDEA 插件,开发效率至少提升一倍

10个最有用的 IntelliJ IDEA 插件

Java 开发必装的 IntelliJ IDEA 插件

10个 IDEA 插件解放双手,这些代码都自动生成

IntelliJ Idea 常用12款插件(提高开发效率),附优秀主题插件