idea自定义插件开发

idea自定义插件开发

# 扩展

# 扩展

除了为按键和toolbar增加Actions之外,还提供了扩展方式来扩展idea的功能

用扩展增加的常见功能如下:

  • com.intellij.toolWindow 扩展点可以增加 tool windows (显示在用户界面边侧的窗口,如project, gradle的窗口);

  • com.intellij.applicationConfigurable 和 com.intellij.projectConfigurable 扩展点可以增加Settings/Preferences 对话框

  • 自定义语言插件 使用了大量的扩展点来扩展语言的功能

提示

有1000多个扩展点来扩展ide的功能

# 可用的扩展点

扩展点和监听器列表(Extension Point and Listener List ) 列举了所有的 IntelliJ Platform的扩展点,

针对于特定ide的扩展点可看 文档

可以搜索
open in new window
扩展点的用法

此外 在 plugin.xml里 可以联想出所有的扩展点,如下图:

idea自定义插件开发

想了解更多,可查看 文档

# 声明扩展

需要注意以下3点

  1. 在plugin.xml增加extensions标签,
    如果扩展继承于IntelliJ Platform的方法,则defaultExtensionNs=”com.intellij”
    如果扩展继承于 第三方插件 ,则设置 defaultExtensionNs=”第三方插件的id”,详看下面代码

  2. 在extensions标签下增加子标签,子标签的名称需要和你开发的扩展点名称保持一致 ,详看下面代码

  3. 根据扩展点的类型,需要以下操作,详看下面代码

    • 如果扩展点是使用 interface 属性声明的,那么需要设置 implementation=”class的全限定名称”

    • 如果扩展点是使用 beanClass 属性声明的,那么需要在指定的类上加上注解 @Attribute
      open in new window

了解更多详情,请看 文档



# 扩展的默认属性

  • id :唯一的id

  • order :可以使用 first, last or before [插件id],after [插件id] 来指定顺序

  • os 指定系统,如果设置了os=”windows”,那么将只在windwos系统idea自定义插件开发下才注册这个扩展

如果在某个扩展中需要退出程序,可以在扩展的构造器(constructor)中抛出 ExtensionNotApplicableException
open in new window

# 扩展的其它属性

以下几个属性需要配置为类的全限定名称( fully qualified class name)

  • implementation

  • className

  • serviceInterface/serviceImplementation

  • 以Class结尾的属性

A required parent type can be specified in the extension point declaration via nested <with>:



Property name language (or ending in *Language, 2020.2+) resolves to all present Language IDs.

Similarly, action resolves to all registered <action> IDs.

Specifying @org.jetbrains.annotations.Nls validates a UI String capitalization according to the text property Capitalization enum value (2019.2 and later).

Attributes with Enum type support code insight with lowerCamelCased notation (2020.1 and later).

今天的文章
idea自定义插件开发分享到此就结束了,感谢您的阅读。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/130122.html

(0)
编程小号编程小号
上一篇 2024-08-24 23:11
下一篇 2024-08-24

相关推荐