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()); }