--- name: actions description: Guidelines for implementing IntelliJ actions (AnAction). Use those rules when you need to create or change an action in the intellij platform. --- # Actions Guidelines for implementing IntelliJ actions (`AnAction`). ## Documentation - [Action System](../../../../docs/IntelliJ-Platform/4_man/Action-System.md) - Architecture and usage of the action system ## Best Practices - **NEVER instantiate Presentation in action constructors** - Use no-argument constructors - **Define text, description, and icon in plugin.xml** - Not in constructor parameters - **Follow the convention:** 1. Set the `id` attribute for the action in plugin.xml 2. Optionally set the `icon` attribute if an icon is needed 3. Set text and description in the message bundle (e.g., GitBundle.properties): - `action..text=Translated Action Text` - `action..description=Translated Action Description` **Good example:** Kotlin: ```kotlin class MyAction : AnAction() ``` plugin.xml: ```xml ``` Bundle.properties: ```properties action.My.Action.Id.text=My Action action.My.Action.Id.description=Description of my action ```