From ae7f5d17db1090ad54e73b97e420ef839a7b7828 Mon Sep 17 00:00:00 2001 From: Carl-Robert Date: Mon, 27 Nov 2023 01:24:02 +0200 Subject: [PATCH] 262 - Support auto code formatting (#292) --- .../configuration/ConfigurationComponent.java | 13 ++++++++ .../ConfigurationConfigurable.java | 6 +++- .../configuration/ConfigurationState.java | 9 ++++++ .../carlrobert/codegpt/util/EditorUtil.java | 31 ++++++++++++++++--- .../resources/messages/codegpt.properties | 5 +-- 5 files changed, 56 insertions(+), 8 deletions(-) diff --git a/src/main/java/ee/carlrobert/codegpt/settings/configuration/ConfigurationComponent.java b/src/main/java/ee/carlrobert/codegpt/settings/configuration/ConfigurationComponent.java index 23bbe2e1..4816f209 100644 --- a/src/main/java/ee/carlrobert/codegpt/settings/configuration/ConfigurationComponent.java +++ b/src/main/java/ee/carlrobert/codegpt/settings/configuration/ConfigurationComponent.java @@ -43,6 +43,7 @@ public class ConfigurationComponent { private final JBTable table; private final JBCheckBox openNewTabCheckBox; private final JBCheckBox methodNameGenerationCheckBox; + private final JBCheckBox autoFormattingCheckBox; private final JTextArea systemPromptTextArea; private final IntegerField maxTokensField; private final JBTextField temperatureField; @@ -104,12 +105,16 @@ public class ConfigurationComponent { methodNameGenerationCheckBox = new JBCheckBox( CodeGPTBundle.get("configurationConfigurable.enableMethodNameGeneration.label"), configuration.isMethodRefactoringEnabled()); + autoFormattingCheckBox = new JBCheckBox( + CodeGPTBundle.get("configurationConfigurable.autoFormatting.label"), + configuration.isAutoFormattingEnabled()); mainPanel = FormBuilder.createFormBuilder() .addComponent(tablePanel) .addVerticalGap(4) .addComponent(openNewTabCheckBox) .addComponent(methodNameGenerationCheckBox) + .addComponent(autoFormattingCheckBox) .addVerticalGap(4) .addComponent(new TitledSeparator( CodeGPTBundle.get("configurationConfigurable.section.assistant.title"))) @@ -267,6 +272,14 @@ public class ConfigurationComponent { methodNameGenerationCheckBox.setSelected(disableMethodNameGeneration); } + public boolean isAutoFormattingEnabled() { + return autoFormattingCheckBox.isSelected(); + } + + public void setAutoFormattingEnabled(boolean enabled) { + autoFormattingCheckBox.setSelected(enabled); + } + class RevertToDefaultsActionButton extends AnActionButton { RevertToDefaultsActionButton() { diff --git a/src/main/java/ee/carlrobert/codegpt/settings/configuration/ConfigurationConfigurable.java b/src/main/java/ee/carlrobert/codegpt/settings/configuration/ConfigurationConfigurable.java index 301f2d9b..364c66ee 100644 --- a/src/main/java/ee/carlrobert/codegpt/settings/configuration/ConfigurationConfigurable.java +++ b/src/main/java/ee/carlrobert/codegpt/settings/configuration/ConfigurationConfigurable.java @@ -40,7 +40,9 @@ public class ConfigurationConfigurable implements Configurable { || configurationComponent.isCreateNewChatOnEachAction() != configuration.isCreateNewChatOnEachAction() || configurationComponent.isMethodNameGenerationEnabled() - != configuration.isMethodRefactoringEnabled(); + != configuration.isMethodRefactoringEnabled() + || configurationComponent.isAutoFormattingEnabled() + != configuration.isAutoFormattingEnabled(); } @Override @@ -54,6 +56,7 @@ public class ConfigurationConfigurable implements Configurable { configurationComponent.isCreateNewChatOnEachAction()); configuration.setMethodNameGenerationEnabled( configurationComponent.isMethodNameGenerationEnabled()); + configuration.setAutoFormattingEnabled(configurationComponent.isAutoFormattingEnabled()); EditorActionsUtil.refreshActions(); } @@ -68,6 +71,7 @@ public class ConfigurationConfigurable implements Configurable { configuration.isCreateNewChatOnEachAction()); configurationComponent.setDisableMethodNameGeneration( configuration.isMethodRefactoringEnabled()); + configurationComponent.setAutoFormattingEnabled(configuration.isAutoFormattingEnabled()); EditorActionsUtil.refreshActions(); } diff --git a/src/main/java/ee/carlrobert/codegpt/settings/configuration/ConfigurationState.java b/src/main/java/ee/carlrobert/codegpt/settings/configuration/ConfigurationState.java index 02cfb369..b3d2d190 100644 --- a/src/main/java/ee/carlrobert/codegpt/settings/configuration/ConfigurationState.java +++ b/src/main/java/ee/carlrobert/codegpt/settings/configuration/ConfigurationState.java @@ -23,6 +23,7 @@ public class ConfigurationState implements PersistentStateComponent tableData = EditorActionsUtil.DEFAULT_ACTIONS; public static ConfigurationState getInstance() { @@ -95,4 +96,12 @@ public class ConfigurationState implements PersistentStateComponent