自定义设置组

走着路睡觉小于 1 分钟

自定义设置组

扩展点

可以通过com.intellij.projectConfigurablecom.intellij.applicationConfigurable 扩展点来注册扩展组

通过以下2种方式可以维护设置项之间的父子关系:

  • 单独注册设置项,设置项之间通过一个属性的值联系在一起。

  • 嵌套注册设置项

单独注册

<extensions defaultExtensionNs="com.intellij">
  <projectConfigurable
      parentId="tools"
      id="com.intellij.sdk.tasks"
      displayName="Tasks"
      nonDefaultProject="true"
      instance="com.intellij.sdk.TaskConfigurable"/>
<!--通过parentId 设置为上面的设置项id来建立父子关系-->
  <projectConfigurable
      parentId="com.intellij.sdk.tasks"
      id="com.intellij.sdk.tasks.servers"
      displayName="Servers"
      nonDefaultProject="true"
      instance="com.intellij.sdk.TaskRepositoriesConfigurable"/>
</extensions>

嵌套注册

<!--通过 configurable 属性来注册子设置项,可以增加多个 configurable -->
<extensions defaultExtensionNs="com.intellij">
    <projectConfigurable
            parentId="tools"
            id="com.intellij.sdk.tasks"
            displayName="Tasks"
            nonDefaultProject="true"
            instance="com.intellij.sdk.TaskConfigurable"/>
    <configurable
            id="com.intellij.sdk.tasks.servers"
            displayName="Servers"
            nonDefaultProject="true"
            instance="com.intellij.sdk.TaskRepositoriesConfigurable"/>
    </projectConfigurable>
</extensions>

注册属性描述

在上面注册的父子设置项里,id 属性是必须配置的

id 的格式由2部分构成:xx.yy

  • xx :com.intellij.openapi.options.Configurable 实现类的全限定命名
  • yy :用来和其它子设置项作区分

标记接口

Configurable.Composite 接口表示当前设置项是否有子设置项。不建议使用这种方式,因为会加载很多子类,建议在plugin.xml 里直接注册子设置项

上次编辑于:
贡献者: zhaojingbo
Loading...