public abstract class PriorityIntentionActionWrapper extends java.lang.Object implements IntentionAction
EMPTY_ARRAY| Modifier and Type | Method and Description |
|---|---|
PsiElement |
getElementToMakeWritable(PsiFile file)
Controls whether this intention/fix is going to modify the current file.
|
java.lang.String |
getFamilyName()
Returns the name of the family of intentions.
|
java.lang.String |
getText()
Returns text to be shown in the list of available actions, if this action
is available.
|
static IntentionAction |
highPriority(IntentionAction action) |
void |
invoke(Project project,
Editor editor,
PsiFile file)
Called when user invokes intention.
|
boolean |
isAvailable(Project project,
Editor editor,
PsiFile file)
Checks whether this intention is available at a caret offset in the file.
|
static IntentionAction |
lowPriority(IntentionAction action) |
static IntentionAction |
normalPriority(IntentionAction action) |
boolean |
startInWriteAction()
Indicate whether this action should be invoked inside write action.
|
public java.lang.String getText()
IntentionActiongetText in interface IntentionActionIntentionAction.isAvailable(Project, Editor, PsiFile)public java.lang.String getFamilyName()
IntentionActiongetFamilyName in interface IntentionActionIntentionManager.registerIntentionAndMetaData(IntentionAction, String...)public boolean isAvailable(Project project, Editor editor, PsiFile file)
IntentionActionisAvailable in interface IntentionActionproject - the project in which the availability is checked.editor - the editor in which the intention will be invoked.file - the file open in the editor.true if the intention is available, false otherwise.public void invoke(Project project, Editor editor, PsiFile file) throws IncorrectOperationException
IntentionActionIntentionAction.startInWriteAction() returns true, this method is also called
inside write action.invoke in interface IntentionActionproject - the project in which the intention is invoked.editor - the editor in which the intention is invoked.file - the file open in the editor.IncorrectOperationExceptionpublic PsiElement getElementToMakeWritable(PsiFile file)
FileModifier@NotNull, and the current file is read-only,
it will be made writable (honoring version control integration) before the intention/fix is invoked.
By default, as a heuristic, returns the same as WriteActionAware.startInWriteAction().
If the action is going to modify multiple files, or the set of the files is unknown in advance, please
don't bother overriding this method, return false from WriteActionAware.startInWriteAction(), and call FileModificationService methods in the implementation, and take write actions yourself as needed.getElementToMakeWritable in interface FileModifierfile - the same file where intention would be invoked (for LocalQuickFix it would be the containing file of ProblemDescriptor.getPsiElement())public boolean startInWriteAction()
IntentionActionfalse if, e.g., a modal dialog is shown inside the action.
If false is returned the action itself is responsible for starting write action
when needed, by calling Application.runWriteAction(Runnable).startInWriteAction in interface IntentionActionstartInWriteAction in interface WriteActionAwaretrue if the intention requires a write action, false otherwise.public static IntentionAction highPriority(IntentionAction action)
public static IntentionAction normalPriority(IntentionAction action)
public static IntentionAction lowPriority(IntentionAction action)