From 49e8e97933bccbeb427eed694354136c5622013d Mon Sep 17 00:00:00 2001
From: Mark Kempster
Date: Wed, 29 Nov 2017 17:13:48 -0500
Subject: [PATCH] Support appending template text to existing commit message
---
commit_template.jar | Bin 38019 -> 38485 bytes
resources/META-INF/plugin.xml | 5 ++++
.../CommitMessageTemplateAction.java | 24 +++++++++++-------
.../CommitMessageTemplateConfig.java | 8 ++++++
.../CommitMessageTemplateConfigurableGUI.form | 14 +++++++---
.../CommitMessageTemplateConfigurableGUI.java | 7 ++++-
6 files changed, 45 insertions(+), 13 deletions(-)
diff --git a/commit_template.jar b/commit_template.jar
index 6ce1c33d142f3981bb2e24182802c7b2f0c2f2fc..ec90d15f4175ba5827c24db0d645eca96dbf213c 100644
GIT binary patch
delta 9228
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
Ni2vjMKJIDue*lc|#Bcxr
delta 8727
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
1.0.3-mkempster-20171129
+
+ - Option to append template text to an existing commit message instead of completely overwriting.
+ - Use case: Add crucible smart-commit macros to the default message.
+
1.0.3
- Added the ability to set commentChar when loading template from file.
diff --git a/src/commitmessagetemplate/CommitMessageTemplateAction.java b/src/commitmessagetemplate/CommitMessageTemplateAction.java
index 6f7f93e..b32aeb4 100644
--- a/src/commitmessagetemplate/CommitMessageTemplateAction.java
+++ b/src/commitmessagetemplate/CommitMessageTemplateAction.java
@@ -28,6 +28,7 @@
import com.intellij.openapi.actionSystem.AnAction;
import com.intellij.openapi.actionSystem.AnActionEvent;
import com.intellij.openapi.project.DumbAware;
+import com.intellij.openapi.vcs.CheckinProjectPanel;
import com.intellij.openapi.vcs.CommitMessageI;
import com.intellij.openapi.vcs.VcsDataKeys;
import com.intellij.openapi.vcs.ui.Refreshable;
@@ -39,7 +40,7 @@
public class CommitMessageTemplateAction extends AnAction implements DumbAware {
public void actionPerformed(AnActionEvent e) {
- final CommitMessageI checkinPanel = getCheckinPanel(e);
+ final CheckinProjectPanel checkinPanel = getCheckinPanel(e);
if (checkinPanel == null) {
return;
}
@@ -50,25 +51,30 @@ public void actionPerformed(AnActionEvent e) {
if (config != null) {
String commitMessage = config.getCommitMessage();
if (!commitMessage.isEmpty()) {
- checkinPanel.setCommitMessage(commitMessage);
+ if (config.getAppendMode()) {
+ checkinPanel.setCommitMessage(checkinPanel.getCommitMessage() + " " + commitMessage);
+ } else {
+ checkinPanel.setCommitMessage(commitMessage);
+ }
}
}
}
@Nullable
- private static CommitMessageI getCheckinPanel(@Nullable AnActionEvent e) {
+ private static CheckinProjectPanel getCheckinPanel(@Nullable AnActionEvent e) {
if (e == null) {
return null;
}
Refreshable data = Refreshable.PANEL_KEY.getData(e.getDataContext());
- if (data instanceof CommitMessageI) {
- return (CommitMessageI) data;
- }
- CommitMessageI commitMessageI = VcsDataKeys.COMMIT_MESSAGE_CONTROL.getData(e.getDataContext());
- if (commitMessageI != null) {
- return commitMessageI;
+ if (data instanceof CheckinProjectPanel) {
+ return (CheckinProjectPanel) data;
}
+ // Unsure what to do with this. Can't get the current commitMessage from a commitMessageI.
+// CommitMessageI commitMessageI = VcsDataKeys.COMMIT_MESSAGE_CONTROL.getData(e.getDataContext());
+// if (commitMessageI != null) {
+// return commitMessageI;
+// }
return null;
}
}
diff --git a/src/commitmessagetemplate/CommitMessageTemplateConfig.java b/src/commitmessagetemplate/CommitMessageTemplateConfig.java
index d2340dd..af65904 100644
--- a/src/commitmessagetemplate/CommitMessageTemplateConfig.java
+++ b/src/commitmessagetemplate/CommitMessageTemplateConfig.java
@@ -48,6 +48,9 @@ String getCommentChar() {
return cmState.commentChar;
}
+ boolean getAppendMode() {
+ return cmState.append;
+ }
void setCommitMessage(String commitMessage) {
cmState.manualTemplate = commitMessage;
}
@@ -64,6 +67,10 @@ void setCommentChar(String commentChar) {
cmState.commentChar = commentChar;
}
+ void setAppend(boolean append) {
+ cmState.append = append;
+ }
+
@Nullable
@Override
public CommitState getState() {
@@ -85,6 +92,7 @@ public static class CommitState {
public boolean radioState = true;
public String templateFilePath = "";
public String commentChar = "";
+ public boolean append = false;
}
private String OpenFile(String configFilePath) {
diff --git a/src/commitmessagetemplate/CommitMessageTemplateConfigurableGUI.form b/src/commitmessagetemplate/CommitMessageTemplateConfigurableGUI.form
index cde8a35..0086fdf 100644
--- a/src/commitmessagetemplate/CommitMessageTemplateConfigurableGUI.form
+++ b/src/commitmessagetemplate/CommitMessageTemplateConfigurableGUI.form
@@ -8,7 +8,7 @@
-
+
@@ -54,7 +54,7 @@
-
+
@@ -62,7 +62,7 @@
-
+
@@ -70,6 +70,14 @@
+
+
+
+
+
+
+
+
diff --git a/src/commitmessagetemplate/CommitMessageTemplateConfigurableGUI.java b/src/commitmessagetemplate/CommitMessageTemplateConfigurableGUI.java
index 5674730..7bde684 100644
--- a/src/commitmessagetemplate/CommitMessageTemplateConfigurableGUI.java
+++ b/src/commitmessagetemplate/CommitMessageTemplateConfigurableGUI.java
@@ -20,6 +20,7 @@ public class CommitMessageTemplateConfigurableGUI {
private TextFieldWithBrowseButton templateFilePath;
private JTextField commentChar;
private JLabel commentCharLabel;
+ private JCheckBox append;
private CommitMessageTemplateConfig config;
private FileChooserDescriptor descriptor = FileChooserDescriptorFactory.createSingleFileDescriptor("txt");
@@ -55,6 +56,7 @@ public void actionPerformed(ActionEvent e) {
templateFilePath.setEnabled(!config.getRadioStatus());
commentChar.setEnabled(!config.getRadioStatus());
commentChar.setText(config.getCommentChar());
+ append.setSelected(config.getAppendMode());
}
}
@@ -66,7 +68,8 @@ boolean isModified() {
return !commitMessageTextBox.getText().equals(config.getManualTemplate()) ||
!setTemplateRadioButton.isSelected() == config.getRadioStatus() ||
!templateFilePath.getText().equals(config.getTemplateFilePath()) ||
- !commentChar.getText().equals(config.getCommentChar());
+ !commentChar.getText().equals(config.getCommentChar()) ||
+ !append.isSelected() == config.getAppendMode();
}
void apply() {
@@ -74,6 +77,7 @@ void apply() {
config.setRadioStatus(setTemplateRadioButton.isSelected());
config.setTemplateFilePath(templateFilePath.getText());
config.setCommentChar(commentChar.getText());
+ config.setAppend(append.isSelected());
}
void reset() {
@@ -84,6 +88,7 @@ void reset() {
templateFilePath.setEnabled(!config.getRadioStatus());
commentChar.setEnabled(!config.getRadioStatus());
commentChar.setText(config.getCommentChar());
+ append.setSelected(config.getAppendMode());
}