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的主要内容,如果未能解决你的问题,请参考以下文章