plugin.xml ファイルに登録されており、そのコンストラクターで com.intellij.openapi.actionSystem.Presentation オブジェクトをインスタンス化しているアクションを報告します。

パラメーターを持つ AnAction の任意のコンストラクターは Presentation オブジェクトをインスタンス化します。 しかし、コンストラクターで Presentation オブジェクトをインスタンス化すると、不必要な可能性があるリソースの割り当てが発生する可能性があります。 テキスト、説明、またはアイコンを格納する Presentation のインスタンスを作成する代わりに、AnAction の引数がないコンストラクターとその他の基底クラスを活用して plugin.xml でテキスト、説明、およびアイコンを設定する規則に従う方が効率的です。 IDE はアクションがすでに UI に表示されている場合にのみ、テキスト、説明、およびアイコンをロードします。

テキスト、説明、およびアイコンの設定規則は次のとおりです。

悪い例:


  // NewKotlinFileAction.kt
  internal class NewKotlinFileAction : AnAction(
    KotlinBundle.message("action.new.file.text"),
    KotlinBundle.message("action.new.file.description"),
    KotlinIcons.FILE
  )

  
  <action
    class="org.jetbrains.kotlin.idea.actions.NewKotlinFileAction"
  </action>

良い例:


  // NewKotlinFileAction.kt
  internal class NewKotlinFileAction : AnAction()

  
  <action
    id="Kotlin.NewFile"
    class="org.jetbrains.kotlin.idea.actions.NewKotlinFileAction"
    icon="org.jetbrains.kotlin.idea.KotlinIcons.FILE">
  </action>

  # KotlinBundle.properties
  action.Kotlin.NewFile.text=Kotlin クラス/ファイル
  action.Kotlin.NewFile.description=新規 Kotlin クラスまたはファイルを作成します

2023.2 の新機能です