diff --git a/src/main/java/org/antlr/intellij/plugin/actions/InlineRuleAction.java b/src/main/java/org/antlr/intellij/plugin/actions/InlineRuleAction.java index 54836d0c..e76cd52c 100644 --- a/src/main/java/org/antlr/intellij/plugin/actions/InlineRuleAction.java +++ b/src/main/java/org/antlr/intellij/plugin/actions/InlineRuleAction.java @@ -4,8 +4,6 @@ import com.intellij.openapi.actionSystem.AnActionEvent; import com.intellij.openapi.actionSystem.LangDataKeys; import com.intellij.openapi.actionSystem.PlatformDataKeys; -import com.intellij.openapi.application.Result; -import com.intellij.openapi.command.WriteCommandAction; import com.intellij.openapi.editor.Document; import com.intellij.openapi.editor.Editor; import com.intellij.openapi.project.Project; @@ -25,6 +23,8 @@ import java.util.List; +import static com.intellij.openapi.command.WriteCommandAction.runWriteCommandAction; + public class InlineRuleAction extends AnAction { @Override public void update(AnActionEvent e) { @@ -74,14 +74,10 @@ public void actionPerformed(AnActionEvent e) { final String ruleText = ruleText_; // we ref from inner class; requires final // replace rule refs with rule text - WriteCommandAction setTextAction = new WriteCommandAction(project) { - @Override - protected void run(final Result result) { - // do in a single action so undo works in one go - replaceRuleRefs(doc,tokens,ruleName,rrefNodes,ruleText); - } - }; - setTextAction.execute(); + runWriteCommandAction(project, () -> + // do in a single action so undo works in one go + replaceRuleRefs(doc,tokens,ruleName,rrefNodes,ruleText) + ); } public void replaceRuleRefs(Document doc, CommonTokenStream tokens, diff --git a/src/main/java/org/antlr/intellij/plugin/actions/UniquifyRuleRefs.java b/src/main/java/org/antlr/intellij/plugin/actions/UniquifyRuleRefs.java index 16354356..afbb9cbb 100644 --- a/src/main/java/org/antlr/intellij/plugin/actions/UniquifyRuleRefs.java +++ b/src/main/java/org/antlr/intellij/plugin/actions/UniquifyRuleRefs.java @@ -4,8 +4,6 @@ import com.intellij.openapi.actionSystem.AnActionEvent; import com.intellij.openapi.actionSystem.LangDataKeys; import com.intellij.openapi.actionSystem.PlatformDataKeys; -import com.intellij.openapi.application.Result; -import com.intellij.openapi.command.WriteCommandAction; import com.intellij.openapi.editor.Document; import com.intellij.openapi.editor.Editor; import com.intellij.openapi.project.Project; @@ -24,6 +22,8 @@ import java.util.List; +import static com.intellij.openapi.command.WriteCommandAction.runWriteCommandAction; + /** Make every ref to a rule unique by dup'ing the rule and making them * rule1, rule2, etc... */ @@ -63,14 +63,10 @@ public void actionPerformed(AnActionEvent e) { if ( ruleDefNameNode==null ) return; // alter rule refs and dup rules - WriteCommandAction setTextAction = new WriteCommandAction(project) { - @Override - protected void run(final Result result) { - // do in a single action so undo works in one go - dupRuleAndMakeRefsUnique(doc, ruleName, rrefNodes); - } - }; - setTextAction.execute(); + runWriteCommandAction(project, () -> + // do in a single action so undo works in one go + dupRuleAndMakeRefsUnique(doc, ruleName, rrefNodes) + ); } public void dupRuleAndMakeRefsUnique(Document doc, diff --git a/src/main/java/org/antlr/intellij/plugin/psi/MyPsiUtils.java b/src/main/java/org/antlr/intellij/plugin/psi/MyPsiUtils.java index 1295b9cb..5fec9400 100644 --- a/src/main/java/org/antlr/intellij/plugin/psi/MyPsiUtils.java +++ b/src/main/java/org/antlr/intellij/plugin/psi/MyPsiUtils.java @@ -1,8 +1,6 @@ package org.antlr.intellij.plugin.psi; import com.intellij.lang.ASTNode; -import com.intellij.openapi.application.Result; -import com.intellij.openapi.command.WriteCommandAction; import com.intellij.openapi.project.Project; import com.intellij.psi.PsiElement; import com.intellij.psi.PsiFile; @@ -23,6 +21,8 @@ import java.util.Iterator; import java.util.List; +import static com.intellij.openapi.command.WriteCommandAction.runWriteCommandAction; + @SuppressWarnings("SimplifiableIfStatement") public class MyPsiUtils { @Nullable @@ -101,14 +101,10 @@ public static PsiElement createLeafFromText(Project project, PsiElement context, public static void replacePsiFileFromText(final Project project, final PsiFile psiFile, String text) { final PsiFile newPsiFile = createFile(project, text); - WriteCommandAction setTextAction = new WriteCommandAction(project) { - @Override - protected void run(final Result result) { - psiFile.deleteChildRange(psiFile.getFirstChild(), psiFile.getLastChild()); - psiFile.addRange(newPsiFile.getFirstChild(), newPsiFile.getLastChild()); - } - }; - setTextAction.execute(); + runWriteCommandAction(project, () -> { + psiFile.deleteChildRange(psiFile.getFirstChild(), psiFile.getLastChild()); + psiFile.addRange(newPsiFile.getFirstChild(), newPsiFile.getLastChild()); + }); } public static PsiFile createFile(Project project, String text) { diff --git a/src/main/java/org/antlr/intellij/plugin/refactor/RefactorUtils.java b/src/main/java/org/antlr/intellij/plugin/refactor/RefactorUtils.java index 9c9d9178..9585f864 100644 --- a/src/main/java/org/antlr/intellij/plugin/refactor/RefactorUtils.java +++ b/src/main/java/org/antlr/intellij/plugin/refactor/RefactorUtils.java @@ -1,9 +1,5 @@ package org.antlr.intellij.plugin.refactor; -import com.intellij.openapi.application.Result; -import com.intellij.openapi.command.WriteCommandAction; -import com.intellij.openapi.editor.Document; -import com.intellij.openapi.project.Project; import org.antlr.intellij.plugin.parser.ANTLRv4Parser; import org.antlr.v4.runtime.CommonTokenStream; import org.antlr.v4.runtime.Parser; @@ -134,40 +130,6 @@ public static ParseTree getAncestorWithType(ParseTree t, Class