• 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

  • 相关阅读:
    MYSQL字符串函数详解和实战(字符串函数大全,内含示例)
    Django-Import-Export插件控制数据导入流程
    SpringBoot学习笔记(3)——B站动力节点
    stm32mp157中断简单应用
    如何在图片上添加水印?快把这些方法收好
    flink去重(一)flink、flink-sql中常见的去重方案总结
    jQuery
    Spring 深入——IoC 容器 02
    Linux编程之线程池的设计与实现
    高阶数据结构学习之LRU_Cache
  • 原文地址:https://blog.csdn.net/jiangguilong2000/article/details/126061864