Skip to content

Commit 9d6f93c

Browse files
author
fulin
committed
feat(settings): 模版绑值
1 parent 0d8df65 commit 9d6f93c

5 files changed

Lines changed: 39 additions & 42 deletions

File tree

src/main/java/com/fulinlin/action/CreateCommitAction.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ public void actionPerformed(AnActionEvent actionEvent) {
3232
CommitDialog dialog = new CommitDialog(actionEvent.getProject(),settings);
3333
dialog.show();
3434
if (dialog.getExitCode() == DialogWrapper.OK_EXIT_CODE) {
35-
commitPanel.setCommitMessage(dialog.getCommitMessage().toString());
35+
commitPanel.setCommitMessage(dialog.getCommitMessage(settings).toString());
3636
}
3737
}
3838

src/main/java/com/fulinlin/ui/CommitDialog.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,8 @@ protected JComponent createCenterPanel() {
2525
return panel.getMainPanel();
2626
}
2727

28-
public CommitMessage getCommitMessage() {
29-
return panel.getCommitMessage();
28+
public CommitMessage getCommitMessage(GitCommitMessageHelperSettings settings) {
29+
return panel.getCommitMessage(settings);
3030
}
3131

3232
}

src/main/java/com/fulinlin/ui/CommitMessage.java

Lines changed: 32 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,10 @@
11
package com.fulinlin.ui;
22

33
import com.fulinlin.model.ChangeType;
4+
import com.fulinlin.model.CommitTemplate;
5+
import com.fulinlin.model.TypeAlias;
6+
import com.fulinlin.storage.GitCommitMessageHelperSettings;
7+
import com.fulinlin.utils.VelocityUtils;
48
import org.apache.commons.lang.WordUtils;
59

610
import static org.apache.commons.lang.StringUtils.isNotBlank;
@@ -12,44 +16,36 @@ public class CommitMessage {
1216
private static final int MAX_LINE_LENGTH = 72; // https://stackoverflow.com/a/2120040/5138796
1317
private final String content;
1418

15-
public CommitMessage(ChangeType changeType, String changeScope, String shortDescription, String longDescription, String closedIssues, String breakingChanges) {
16-
this.content = buildContent(changeType, changeScope, shortDescription, longDescription, closedIssues, breakingChanges);
19+
public CommitMessage(GitCommitMessageHelperSettings settings, TypeAlias typeAlias, String changeScope, String shortDescription, String longDescription, String closedIssues, String breakingChanges) {
20+
this.content = buildContent(
21+
settings,
22+
typeAlias,
23+
changeScope,
24+
shortDescription,
25+
longDescription,
26+
breakingChanges,
27+
closedIssues
28+
);
1729
}
1830

19-
private String buildContent(ChangeType changeType, String changeScope, String shortDescription, String longDescription, String closedIssues, String breakingChanges) {
20-
StringBuilder builder = new StringBuilder();
21-
builder.append(changeType.label());
22-
if (isNotBlank(changeScope)) {
23-
builder
24-
.append('(')
25-
.append(changeScope)
26-
.append(')');
27-
}
28-
builder
29-
.append(": ")
30-
.append(shortDescription)
31-
.append(System.lineSeparator())
32-
.append(System.lineSeparator())
33-
.append(WordUtils.wrap(longDescription, MAX_LINE_LENGTH));
34-
35-
if (isNotBlank(breakingChanges)) {
36-
builder
37-
.append(System.lineSeparator())
38-
.append(System.lineSeparator())
39-
.append(WordUtils.wrap("BREAKING CHANGE: " + breakingChanges, MAX_LINE_LENGTH));
40-
}
41-
42-
if (isNotBlank(closedIssues)) {
43-
builder.append(System.lineSeparator());
44-
for (String closedIssue : closedIssues.split(",")) {
45-
builder
46-
.append(System.lineSeparator())
47-
.append("Closes ")
48-
.append(closedIssue);
49-
}
50-
}
51-
52-
return builder.toString();
31+
private String buildContent(GitCommitMessageHelperSettings settings,
32+
TypeAlias typeAlias,
33+
String changeScope,
34+
String shortDescription,
35+
String longDescription,
36+
String breakingChanges,
37+
String closedIssues
38+
) {
39+
40+
CommitTemplate commitTemplate = new CommitTemplate();
41+
commitTemplate.setType(typeAlias.toString());
42+
commitTemplate.setScope(changeScope);
43+
commitTemplate.setSubject(shortDescription);
44+
commitTemplate.setBody(longDescription);
45+
commitTemplate.setChanges(breakingChanges);
46+
commitTemplate.setCloses(closedIssues);
47+
String template = settings.getDateSettings().getTemplate();
48+
return VelocityUtils.convert(template, commitTemplate);
5349
}
5450

5551
@Override

src/main/java/com/fulinlin/ui/CommitPanel.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,9 +37,10 @@ JPanel getMainPanel() {
3737
return mainPanel;
3838
}
3939

40-
CommitMessage getCommitMessage() {
40+
CommitMessage getCommitMessage(GitCommitMessageHelperSettings settings) {
4141
return new CommitMessage(
42-
(ChangeType) changeType.getSelectedItem(),
42+
settings,
43+
(TypeAlias) changeType.getSelectedItem(),
4344
(String) changeScope.getSelectedItem(),
4445
shortDescription.getText().trim(),
4546
longDescription.getText().trim(),

src/main/java/com/fulinlin/utils/VelocityUtils.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ public class VelocityUtils {
3333
public static String convert(String template, CommitTemplate commitTemplate) {
3434
StringWriter writer = new StringWriter();
3535
VelocityContext velocityContext = new VelocityContext();
36-
velocityContext.put("type", commitTemplate.getBody());
36+
velocityContext.put("type", commitTemplate.getType());
3737
velocityContext.put("scope", commitTemplate.getScope());
3838
velocityContext.put("subject", commitTemplate.getSubject());
3939
velocityContext.put("body", commitTemplate.getBody());

0 commit comments

Comments
 (0)