From 4a89df730eaa198aa391d8917cebf8a325911b03 Mon Sep 17 00:00:00 2001 From: Bas Leijdekkers Date: Sat, 25 Feb 2023 00:20:49 +0100 Subject: [PATCH] [search] restore the use of the editor selection in the Find in Files popup (IDEA-314095) GitOrigin-RevId: 6bdcb21888dd863ab8e5c2f6a638f3350df08aff --- .../NoPreviewReplacementWithEmptyString.gold | 2 +- .../NoPreviewSecondRegexReplaceShowsPopup.gold | 2 +- .../find/findInEditor/ReplacementWithEmptyString.gold | 2 +- .../find/findInEditor/SearchAdjacentOccurrences.gold | 2 +- .../findInEditor/SecondRegexReplaceShowsPopup.gold | 2 +- .../find/findInEditor/ZeroWidthRegexpAtEndOfFile.gold | 2 +- .../indexing-api/src/com/intellij/find/FindModel.java | 10 +++++++--- .../src/com/intellij/find/impl/FindPopupPanel.java | 6 ++++-- 8 files changed, 17 insertions(+), 11 deletions(-) diff --git a/java/java-tests/testData/find/findInEditor/NoPreviewReplacementWithEmptyString.gold b/java/java-tests/testData/find/findInEditor/NoPreviewReplacementWithEmptyString.gold index 88da8b3d1263..a680e18ffa26 100644 --- a/java/java-tests/testData/find/findInEditor/NoPreviewReplacementWithEmptyString.gold +++ b/java/java-tests/testData/find/findInEditor/NoPreviewReplacementWithEmptyString.gold @@ -1,5 +1,5 @@ --- FIND MODEL --- -myStringToFind = '' +myStringToFind = null myStringToReplace = '' isReplaceState = false isWholeWordsOnly = false diff --git a/java/java-tests/testData/find/findInEditor/NoPreviewSecondRegexReplaceShowsPopup.gold b/java/java-tests/testData/find/findInEditor/NoPreviewSecondRegexReplaceShowsPopup.gold index f9c1b894d9a7..685461552b0a 100644 --- a/java/java-tests/testData/find/findInEditor/NoPreviewSecondRegexReplaceShowsPopup.gold +++ b/java/java-tests/testData/find/findInEditor/NoPreviewSecondRegexReplaceShowsPopup.gold @@ -1,5 +1,5 @@ --- FIND MODEL --- -myStringToFind = '' +myStringToFind = null myStringToReplace = '' isReplaceState = false isWholeWordsOnly = false diff --git a/java/java-tests/testData/find/findInEditor/ReplacementWithEmptyString.gold b/java/java-tests/testData/find/findInEditor/ReplacementWithEmptyString.gold index d988866baa25..cab2f8df96fd 100644 --- a/java/java-tests/testData/find/findInEditor/ReplacementWithEmptyString.gold +++ b/java/java-tests/testData/find/findInEditor/ReplacementWithEmptyString.gold @@ -1,5 +1,5 @@ --- FIND MODEL --- -myStringToFind = '' +myStringToFind = null myStringToReplace = '' isReplaceState = false isWholeWordsOnly = false diff --git a/java/java-tests/testData/find/findInEditor/SearchAdjacentOccurrences.gold b/java/java-tests/testData/find/findInEditor/SearchAdjacentOccurrences.gold index 528a6ee0dd9e..a6da12ca061c 100644 --- a/java/java-tests/testData/find/findInEditor/SearchAdjacentOccurrences.gold +++ b/java/java-tests/testData/find/findInEditor/SearchAdjacentOccurrences.gold @@ -1,5 +1,5 @@ --- FIND MODEL --- -myStringToFind = '' +myStringToFind = null myStringToReplace = '' isReplaceState = false isWholeWordsOnly = false diff --git a/java/java-tests/testData/find/findInEditor/SecondRegexReplaceShowsPopup.gold b/java/java-tests/testData/find/findInEditor/SecondRegexReplaceShowsPopup.gold index d6c845b5792d..a01d86280916 100644 --- a/java/java-tests/testData/find/findInEditor/SecondRegexReplaceShowsPopup.gold +++ b/java/java-tests/testData/find/findInEditor/SecondRegexReplaceShowsPopup.gold @@ -1,5 +1,5 @@ --- FIND MODEL --- -myStringToFind = '' +myStringToFind = null myStringToReplace = '' isReplaceState = false isWholeWordsOnly = false diff --git a/java/java-tests/testData/find/findInEditor/ZeroWidthRegexpAtEndOfFile.gold b/java/java-tests/testData/find/findInEditor/ZeroWidthRegexpAtEndOfFile.gold index 03b98f7642ed..b27810c4ee1a 100644 --- a/java/java-tests/testData/find/findInEditor/ZeroWidthRegexpAtEndOfFile.gold +++ b/java/java-tests/testData/find/findInEditor/ZeroWidthRegexpAtEndOfFile.gold @@ -1,5 +1,5 @@ --- FIND MODEL --- -myStringToFind = '' +myStringToFind = null myStringToReplace = '' isReplaceState = false isWholeWordsOnly = false diff --git a/platform/indexing-api/src/com/intellij/find/FindModel.java b/platform/indexing-api/src/com/intellij/find/FindModel.java index 53cf709077df..eca7e9b6e2ec 100644 --- a/platform/indexing-api/src/com/intellij/find/FindModel.java +++ b/platform/indexing-api/src/com/intellij/find/FindModel.java @@ -54,7 +54,7 @@ public class FindModel extends UserDataHolderBase implements Cloneable { } } - private String myStringToFind = ""; + private String myStringToFind = null; private String myStringToReplace = ""; private boolean isSearchHighlighters; private boolean isReplaceState; @@ -236,7 +236,11 @@ public class FindModel extends UserDataHolderBase implements Cloneable { */ @NotNull public String getStringToFind() { - return myStringToFind; + return (myStringToFind == null) ? "" : myStringToFind; + } + + public boolean hasStringToFind() { + return myStringToFind != null; } /** @@ -617,7 +621,7 @@ public class FindModel extends UserDataHolderBase implements Cloneable { @Override public String toString() { return "--- FIND MODEL ---\n" + - "myStringToFind = '" + myStringToFind + "'\n" + + "myStringToFind = " + (myStringToFind == null ? "null\n" : "'" + myStringToFind + "'\n") + "myStringToReplace = '" + myStringToReplace + "'\n" + "isReplaceState = " + isReplaceState + "\n" + "isWholeWordsOnly = " + isWholeWordsOnly + "\n" + diff --git a/platform/lang-impl/src/com/intellij/find/impl/FindPopupPanel.java b/platform/lang-impl/src/com/intellij/find/impl/FindPopupPanel.java index 73339630915c..bd8e6aa150d4 100644 --- a/platform/lang-impl/src/com/intellij/find/impl/FindPopupPanel.java +++ b/platform/lang-impl/src/com/intellij/find/impl/FindPopupPanel.java @@ -1048,8 +1048,10 @@ public class FindPopupPanel extends JBPanel implements FindUI, D } header.fileMaskField.setEnabled(isThereFileFilter); FindInProjectSettings findInProjectSettings = FindInProjectSettings.getInstance(myProject); - mySearchComponent.setText(findInProjectSettings.getMostRecentFindString()); - myReplaceComponent.setText(findInProjectSettings.getMostRecentReplaceString()); + String search = myModel.hasStringToFind() ? myModel.getStringToFind() : findInProjectSettings.getMostRecentFindString(); + mySearchComponent.setText(search); + String replace = myModel.hasStringToFind() ? myModel.getStringToReplace() : findInProjectSettings.getMostRecentReplaceString(); + myReplaceComponent.setText(replace); updateControls(); updateScopeDetailsPanel();