From 087acaa195304c9c6728e22718061a5fb23a4bab Mon Sep 17 00:00:00 2001 From: Konstantin Kolosovsky Date: Sat, 15 Apr 2017 23:12:46 +0300 Subject: [PATCH] Display shortcut for "Reformat commit message" quick fix --- .../commit/BaseCommitMessageInspection.java | 40 ++++++++++++++++++- 1 file changed, 39 insertions(+), 1 deletion(-) diff --git a/platform/vcs-impl/src/com/intellij/vcs/commit/BaseCommitMessageInspection.java b/platform/vcs-impl/src/com/intellij/vcs/commit/BaseCommitMessageInspection.java index e21886b14c6a..30c43e220fb3 100644 --- a/platform/vcs-impl/src/com/intellij/vcs/commit/BaseCommitMessageInspection.java +++ b/platform/vcs-impl/src/com/intellij/vcs/commit/BaseCommitMessageInspection.java @@ -22,18 +22,23 @@ import com.intellij.codeInsight.intention.IntentionAction; import com.intellij.codeInsight.intention.LowPriorityAction; import com.intellij.codeInspection.*; import com.intellij.codeInspection.longLine.LongLineInspection; +import com.intellij.openapi.actionSystem.ShortcutProvider; +import com.intellij.openapi.actionSystem.ShortcutSet; import com.intellij.openapi.editor.Document; +import com.intellij.openapi.editor.Editor; import com.intellij.openapi.options.ConfigurableUi; import com.intellij.openapi.project.Project; import com.intellij.openapi.util.TextRange; import com.intellij.psi.PsiDocumentManager; import com.intellij.psi.PsiElement; import com.intellij.psi.PsiFile; +import com.intellij.util.IncorrectOperationException; import org.jetbrains.annotations.Nls; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import static com.intellij.codeInspection.ProblemHighlightType.GENERIC_ERROR_OR_WARNING; +import static com.intellij.openapi.keymap.KeymapUtil.getActiveKeymapShortcuts; import static com.intellij.openapi.vcs.ui.CommitMessage.isCommitMessage; import static com.intellij.util.ArrayUtil.isEmpty; @@ -143,7 +148,8 @@ public abstract class BaseCommitMessageInspection extends LocalInspectionTool { public abstract void doApplyFix(@NotNull Project project, @NotNull Document document, @Nullable ProblemDescriptor descriptor); } - protected static class ReformatCommitMessageQuickFix extends BaseCommitMessageQuickFix implements LowPriorityAction { + protected static class ReformatCommitMessageQuickFix extends BaseCommitMessageQuickFix + implements LowPriorityAction, IntentionAction, ShortcutProvider { protected ReformatCommitMessageQuickFix() { super(ReformatCommitMessageAction.NAME); } @@ -152,5 +158,37 @@ public abstract class BaseCommitMessageInspection extends LocalInspectionTool { public void doApplyFix(@NotNull Project project, @NotNull Document document, @Nullable ProblemDescriptor descriptor) { ReformatCommitMessageAction.reformat(project, document); } + + @Nullable + @Override + public ShortcutSet getShortcut() { + return getActiveKeymapShortcuts("Vcs.ReformatCommitMessage"); + } + + @Nls + @NotNull + @Override + public String getText() { + return getName(); + } + + @Override + public boolean isAvailable(@NotNull Project project, Editor editor, PsiFile file) { + return true; + } + + @Override + public void invoke(@NotNull Project project, @Nullable Editor editor, @NotNull PsiFile file) throws IncorrectOperationException { + Document document = getDocument(file); + + if (document != null) { + doApplyFix(project, document, null); + } + } + + @Override + public boolean startInWriteAction() { + return true; + } } } \ No newline at end of file