From 17370fe3596a3393c0424616b0cdf9be948e1b80 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marcel=20Ha=C3=9Flinger?= Date: Mon, 19 Jul 2021 20:03:46 +0200 Subject: [PATCH] add settings option to opt-out code assistance service --- .../de/marhali/easyi18n/dialog/SettingsDialog.java | 13 +++++++++++-- .../de/marhali/easyi18n/editor/KeyAnnotator.java | 5 +++++ .../easyi18n/editor/KeyCompletionProvider.java | 6 ++++++ .../de/marhali/easyi18n/model/SettingsState.java | 10 ++++++++++ src/main/resources/messages.properties | 3 ++- 5 files changed, 34 insertions(+), 3 deletions(-) diff --git a/src/main/java/de/marhali/easyi18n/dialog/SettingsDialog.java b/src/main/java/de/marhali/easyi18n/dialog/SettingsDialog.java index 2d1f9e4..fc1eb92 100644 --- a/src/main/java/de/marhali/easyi18n/dialog/SettingsDialog.java +++ b/src/main/java/de/marhali/easyi18n/dialog/SettingsDialog.java @@ -5,6 +5,7 @@ import com.intellij.openapi.project.Project; import com.intellij.openapi.ui.DialogBuilder; import com.intellij.openapi.ui.DialogWrapper; import com.intellij.openapi.ui.TextFieldWithBrowseButton; +import com.intellij.ui.components.JBCheckBox; import com.intellij.ui.components.JBLabel; import com.intellij.ui.components.JBTextField; @@ -26,6 +27,7 @@ public class SettingsDialog { private TextFieldWithBrowseButton pathText; private JBTextField filePatternText; private JBTextField previewText; + private JBCheckBox codeAssistanceCheckbox; public SettingsDialog(Project project) { this.project = project; @@ -35,18 +37,20 @@ public class SettingsDialog { String localesPath = SettingsService.getInstance(project).getState().getLocalesPath(); String filePattern = SettingsService.getInstance(project).getState().getFilePattern(); String previewLocale = SettingsService.getInstance(project).getState().getPreviewLocale(); + boolean codeAssistance = SettingsService.getInstance(project).getState().isCodeAssistance(); - if(prepare(localesPath, filePattern, previewLocale).show() == DialogWrapper.OK_EXIT_CODE) { // Save changes + if(prepare(localesPath, filePattern, previewLocale, codeAssistance).show() == DialogWrapper.OK_EXIT_CODE) { // Save changes SettingsService.getInstance(project).getState().setLocalesPath(pathText.getText()); SettingsService.getInstance(project).getState().setFilePattern(filePatternText.getText()); SettingsService.getInstance(project).getState().setPreviewLocale(previewText.getText()); + SettingsService.getInstance(project).getState().setCodeAssistance(codeAssistanceCheckbox.isSelected()); // Reload instance DataStore.getInstance(project).reloadFromDisk(); } } - private DialogBuilder prepare(String localesPath, String filePattern, String previewLocale) { + private DialogBuilder prepare(String localesPath, String filePattern, String previewLocale, boolean codeAssistance) { JPanel rootPanel = new JPanel(new GridLayout(0, 1, 2, 2)); JBLabel pathLabel = new JBLabel(ResourceBundle.getBundle("messages").getString("settings.path.text")); @@ -73,6 +77,11 @@ public class SettingsDialog { rootPanel.add(previewLabel); rootPanel.add(previewText); + codeAssistanceCheckbox = new JBCheckBox(ResourceBundle.getBundle("messages").getString("settings.editor.assistance")); + codeAssistanceCheckbox.setSelected(codeAssistance); + + rootPanel.add(codeAssistanceCheckbox); + DialogBuilder builder = new DialogBuilder(); builder.setTitle(ResourceBundle.getBundle("messages").getString("action.settings")); builder.removeAllActions(); diff --git a/src/main/java/de/marhali/easyi18n/editor/KeyAnnotator.java b/src/main/java/de/marhali/easyi18n/editor/KeyAnnotator.java index 38db8fb..3395133 100644 --- a/src/main/java/de/marhali/easyi18n/editor/KeyAnnotator.java +++ b/src/main/java/de/marhali/easyi18n/editor/KeyAnnotator.java @@ -23,6 +23,11 @@ public class KeyAnnotator { * @param holder Annotation holder */ protected void annotate(@NotNull String key, @NotNull Project project, @NotNull AnnotationHolder holder) { + // Do not annotate keys if service is disabled + if(!SettingsService.getInstance(project).getState().isCodeAssistance()) { + return; + } + String previewLocale = SettingsService.getInstance(project).getState().getPreviewLocale(); LocalizedNode node = DataStore.getInstance(project).getTranslations().getNode(key); diff --git a/src/main/java/de/marhali/easyi18n/editor/KeyCompletionProvider.java b/src/main/java/de/marhali/easyi18n/editor/KeyCompletionProvider.java index 6cb8766..27633aa 100644 --- a/src/main/java/de/marhali/easyi18n/editor/KeyCompletionProvider.java +++ b/src/main/java/de/marhali/easyi18n/editor/KeyCompletionProvider.java @@ -27,6 +27,12 @@ public class KeyCompletionProvider extends CompletionProvider