adds: configuration for the commit-message system prompt (#304)

* adds: configuration for the commit-message system prompt

this will remove the default file and move it to the code to be overwritten if the user chooses to modify the prompt.

* fix: checkstyle

---------

Co-authored-by: Carl-Robert Linnupuu <carlrobertoh@gmail.com>
This commit is contained in:
René 2023-12-09 13:48:10 +01:00 committed by GitHub
parent c36d4dd566
commit c214b59f55
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
7 changed files with 59 additions and 5 deletions

View file

@ -15,6 +15,7 @@ import com.intellij.ui.TitledSeparator;
import com.intellij.ui.ToolbarDecorator;
import com.intellij.ui.components.JBCheckBox;
import com.intellij.ui.components.JBLabel;
import com.intellij.ui.components.JBTextArea;
import com.intellij.ui.components.JBTextField;
import com.intellij.ui.components.fields.IntegerField;
import com.intellij.ui.table.JBTable;
@ -46,6 +47,7 @@ public class ConfigurationComponent {
private final JBCheckBox methodNameGenerationCheckBox;
private final JBCheckBox autoFormattingCheckBox;
private final JTextArea systemPromptTextArea;
private final JTextArea commitMessagePromptTextArea;
private final IntegerField maxTokensField;
private final JBTextField temperatureField;
@ -100,6 +102,10 @@ public class ConfigurationComponent {
systemPromptTextArea.setColumns(60);
systemPromptTextArea.setRows(3);
commitMessagePromptTextArea = new JBTextArea(configuration.getCommitMessagePrompt(), 3, 60);
commitMessagePromptTextArea.setLineWrap(true);
commitMessagePromptTextArea.setBorder(JBUI.Borders.empty(8, 4));
checkForPluginUpdatesCheckBox = new JBCheckBox(
CodeGPTBundle.get("configurationConfigurable.checkForPluginUpdates.label"),
configuration.isCheckForPluginUpdates());
@ -125,6 +131,10 @@ public class ConfigurationComponent {
CodeGPTBundle.get("configurationConfigurable.section.assistant.title")))
.addComponent(createAssistantConfigurationForm())
.addComponentFillVertically(new JPanel(), 0)
.addComponent(new TitledSeparator(
CodeGPTBundle.get("configurationConfigurable.section.commitMessage.title")))
.addComponent(createCommitMessageConfigurationForm())
.addComponentFillVertically(new JPanel(), 0)
.getPanel();
}
@ -200,6 +210,23 @@ public class ConfigurationComponent {
return form;
}
private JPanel createCommitMessageConfigurationForm() {
var formBuilder = FormBuilder.createFormBuilder();
addAssistantFormLabeledComponent(
formBuilder,
"configurationConfigurable.section.commitMessage.systemPromptField.label",
"configurationConfigurable.section.commitMessage.systemPromptField.comment",
JBUI.Panels
.simplePanel(commitMessagePromptTextArea)
.withBorder(JBUI.Borders.customLine(
JBUI.CurrentTheme.CustomFrameDecorations.separatorForeground())));
formBuilder.addVerticalGap(8);
var form = formBuilder.getPanel();
form.setBorder(JBUI.Borders.emptyLeft(16));
return form;
}
private ComponentValidator createInputValidator(
Disposable parentDisposable,
JBTextField component) {
@ -245,6 +272,14 @@ public class ConfigurationComponent {
return systemPromptTextArea.getText();
}
public void setCommitMessagePrompt(String commitMessagePrompt) {
commitMessagePromptTextArea.setText(commitMessagePrompt);
}
public String getCommitMessagePrompt() {
return commitMessagePromptTextArea.getText();
}
public double getTemperature() {
return Double.parseDouble(temperatureField.getText());
}