SSR: fix saving filters in inspection settings (IDEA-201833)

This commit is contained in:
Bas Leijdekkers
2018-11-07 21:07:59 +01:00
parent 3ed3fd24cb
commit fca2178475
2 changed files with 8 additions and 17 deletions
@@ -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);
});
@@ -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<String> getVariablesFromListeners() {
final List<String> result = getVarsFrom(mySearchCriteriaEdit.getEditor());
private List<String> computeConfigurationVariableNames() {
final List<String> 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<String> 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<String> variableNames = getVariablesFromListeners();
final List<String> variableNames = computeConfigurationVariableNames();
variableNames.add(Configuration.CONTEXT_VAR_NAME);
myConfiguration.getMatchOptions().retainVariableConstraints(variableNames);
}