From fca21784759cdbeaaf617523622db7f3023d9098 Mon Sep 17 00:00:00 2001 From: Bas Leijdekkers Date: Wed, 7 Nov 2018 17:50:37 +0100 Subject: [PATCH] SSR: fix saving filters in inspection settings (IDEA-201833) --- .../plugin/ui/SearchDialog.java | 4 ++-- .../plugin/ui/StructuralSearchDialog.java | 21 ++++++------------- 2 files changed, 8 insertions(+), 17 deletions(-) diff --git a/platform/structuralsearch/source/com/intellij/structuralsearch/plugin/ui/SearchDialog.java b/platform/structuralsearch/source/com/intellij/structuralsearch/plugin/ui/SearchDialog.java index 2bd5a27ef028..7f73ab316db0 100644 --- a/platform/structuralsearch/source/com/intellij/structuralsearch/plugin/ui/SearchDialog.java +++ b/platform/structuralsearch/source/com/intellij/structuralsearch/plugin/ui/SearchDialog.java @@ -7,7 +7,6 @@ import com.intellij.find.FindSettings; import com.intellij.ide.IdeBundle; import com.intellij.ide.util.scopeChooser.ScopeChooserCombo; import com.intellij.lang.Language; -import com.intellij.openapi.application.ApplicationManager; import com.intellij.openapi.command.WriteCommandAction; import com.intellij.openapi.diagnostic.Logger; import com.intellij.openapi.editor.Document; @@ -40,6 +39,7 @@ import com.intellij.structuralsearch.plugin.StructuralSearchPlugin; import com.intellij.ui.IdeBorderFactory; import com.intellij.ui.TitledSeparator; import com.intellij.util.Alarm; +import com.intellij.util.ui.EdtInvocationManager; import com.intellij.util.ui.JBUI; import org.jetbrains.annotations.NonNls; import org.jetbrains.annotations.NotNull; @@ -169,7 +169,7 @@ public class SearchDialog extends DialogWrapper { try { final boolean valid = isValid(); final boolean compiled = isCompiled(); - ApplicationManager.getApplication().invokeLater(() -> { + EdtInvocationManager.getInstance().invokeLater(() -> { myEditVariablesButton.setEnabled(compiled); getOKAction().setEnabled(valid); }); diff --git a/platform/structuralsearch/source/com/intellij/structuralsearch/plugin/ui/StructuralSearchDialog.java b/platform/structuralsearch/source/com/intellij/structuralsearch/plugin/ui/StructuralSearchDialog.java index 3f00a4c933e5..d71f4383eb62 100644 --- a/platform/structuralsearch/source/com/intellij/structuralsearch/plugin/ui/StructuralSearchDialog.java +++ b/platform/structuralsearch/source/com/intellij/structuralsearch/plugin/ui/StructuralSearchDialog.java @@ -3,6 +3,7 @@ package com.intellij.structuralsearch.plugin.ui; import com.intellij.codeInsight.daemon.DaemonCodeAnalyzer; import com.intellij.codeInsight.template.impl.TemplateEditorUtil; +import com.intellij.codeInsight.template.impl.TemplateImplUtil; import com.intellij.find.FindBundle; import com.intellij.find.FindInProjectSettings; import com.intellij.find.FindSettings; @@ -12,7 +13,6 @@ import com.intellij.ide.util.PropertiesComponent; import com.intellij.lang.Language; import com.intellij.openapi.actionSystem.*; import com.intellij.openapi.actionSystem.impl.ActionToolbarImpl; -import com.intellij.openapi.application.ApplicationManager; import com.intellij.openapi.application.ApplicationNamesInfo; import com.intellij.openapi.command.WriteCommandAction; import com.intellij.openapi.diagnostic.Logger; @@ -55,7 +55,6 @@ import com.intellij.ui.OnePixelSplitter; import com.intellij.ui.awt.RelativePoint; import com.intellij.util.Alarm; import com.intellij.util.ObjectUtils; -import com.intellij.util.SmartList; import com.intellij.util.textCompletion.TextCompletionUtil; import com.intellij.util.ui.EdtInvocationManager; import com.intellij.util.ui.LafIconLookup; @@ -210,7 +209,7 @@ public class StructuralSearchDialog extends DialogWrapper { try { final boolean valid = isValid(); final boolean compiled = isCompiled(); - ApplicationManager.getApplication().invokeLater(() -> { + EdtInvocationManager.getInstance().invokeLater(() -> { myFilterButtonEnabled = compiled; setSearchTargets(myConfiguration.getMatchOptions()); getOKAction().setEnabled(valid); @@ -602,10 +601,10 @@ public class StructuralSearchDialog extends DialogWrapper { return panel; } - private List getVariablesFromListeners() { - final List result = getVarsFrom(mySearchCriteriaEdit.getEditor()); + private List computeConfigurationVariableNames() { + final List result = new ArrayList<>(TemplateImplUtil.parseVariables(myConfiguration.getMatchOptions().getSearchPattern()).keySet()); if (myReplace) { - for (String var : getVarsFrom(myReplaceCriteriaEdit.getEditor())) { + for (String var : TemplateImplUtil.parseVariables(myConfiguration.getReplaceOptions().getReplacement()).keySet()) { if (!result.contains(var)) { result.add(var + ReplaceConfiguration.REPLACEMENT_VARIABLE_SUFFIX); } @@ -614,14 +613,6 @@ public class StructuralSearchDialog extends DialogWrapper { return result; } - private static List getVarsFrom(Editor editor) { - if (editor == null) { - return new SmartList<>(); - } - final SubstitutionShortInfoHandler handler = SubstitutionShortInfoHandler.retrieve(editor); - return (handler == null) ? new SmartList<>() : new ArrayList<>(handler.getVariables()); - } - Project getProject() { return mySearchContext.getProject(); } @@ -693,7 +684,7 @@ public class StructuralSearchDialog extends DialogWrapper { } private void removeUnusedVariableConstraints() { - final List variableNames = getVariablesFromListeners(); + final List variableNames = computeConfigurationVariableNames(); variableNames.add(Configuration.CONTEXT_VAR_NAME); myConfiguration.getMatchOptions().retainVariableConstraints(variableNames); }