plugin.xml 파일에 등록되고 해당하는 생성자 내에서 com.intellij.openapi.actionSystem.Presentation 객체를 인스턴스화하는 모든 액션을 보고합니다.

매개변수가 있는 AnAction의 생성자는 Presentation 객체를 인스턴스화합니다. 그러나 생성자 내에서 Presentation 객체를 인스턴스화하면 리소스가 할당되며 이는 불필요할 수 있습니다. 텍스트, 설명 및 아이콘을 저장하는 Presentation의 인스턴스를 생성하는 대신 AnAction 및 다른 기본 클래스의 인수 없는 생성자를 활용하고 plugin.xml 내의 텍스트, 설명 및 아이콘 설정 규칙을 따르는 것이 더 효율적입니다. 액션이 실제로 UI 내의 어딘가에 표시될 때만 IDE가 텍스트, 설명 및 아이콘을 로드합니다.

텍스트, 설명 및 아이콘 설정 규칙은 다음과 같습니다.

나쁜 예:


  // 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의 새로운 기능