summaryrefslogtreecommitdiff
path: root/platform/lang-impl/src/com/intellij/find
diff options
context:
space:
mode:
Diffstat (limited to 'platform/lang-impl/src/com/intellij/find')
-rw-r--r--platform/lang-impl/src/com/intellij/find/EditorSearchComponent.java8
-rw-r--r--platform/lang-impl/src/com/intellij/find/editorHeaderActions/SwitchToFind.java6
-rw-r--r--platform/lang-impl/src/com/intellij/find/editorHeaderActions/SwitchToReplace.java4
-rw-r--r--platform/lang-impl/src/com/intellij/find/editorHeaderActions/ToggleRegex.java6
-rw-r--r--platform/lang-impl/src/com/intellij/find/impl/FindInProjectTask.java15
-rw-r--r--platform/lang-impl/src/com/intellij/find/impl/FindManagerImpl.java12
-rw-r--r--platform/lang-impl/src/com/intellij/find/impl/livePreview/LivePreview.java34
-rw-r--r--platform/lang-impl/src/com/intellij/find/impl/livePreview/LivePreviewController.java7
8 files changed, 55 insertions, 37 deletions
diff --git a/platform/lang-impl/src/com/intellij/find/EditorSearchComponent.java b/platform/lang-impl/src/com/intellij/find/EditorSearchComponent.java
index 9613ac0dd33f..4d7eee35a462 100644
--- a/platform/lang-impl/src/com/intellij/find/EditorSearchComponent.java
+++ b/platform/lang-impl/src/com/intellij/find/EditorSearchComponent.java
@@ -425,6 +425,10 @@ public class EditorSearchComponent extends EditorHeaderComponent implements Data
myToolbarComponent.setOpaque(false);
}
+ public void selectAllText() {
+ mySearchField.selectAll();
+ }
+
private boolean secondaryActionsAvailable() {
return FindManagerImpl.ourHasSearchInCommentsAndLiterals;
}
@@ -483,10 +487,11 @@ public class EditorSearchComponent extends EditorHeaderComponent implements Data
}
private void updateUIWithFindModel() {
-
+ boolean needToResetFocus = false;
myActionsToolbar.updateActionsImmediately();
if ((myFindModel.isMultiline() && mySearchField instanceof JTextField) || (!myFindModel.isMultiline() && mySearchField instanceof JTextArea)) {
+ needToResetFocus = mySearchField.hasFocus();
myLeftComponent.removeAll();
myRightComponent.removeAll();
myReplaceRootComponent = null;
@@ -529,6 +534,7 @@ public class EditorSearchComponent extends EditorHeaderComponent implements Data
updateReplaceButton();
Utils.setSmallerFontForChildren(myToolbarComponent);
revalidate();
+ if (needToResetFocus) mySearchField.requestFocusInWindow();
}
private static boolean wholeWordsApplicable(String stringToFind) {
diff --git a/platform/lang-impl/src/com/intellij/find/editorHeaderActions/SwitchToFind.java b/platform/lang-impl/src/com/intellij/find/editorHeaderActions/SwitchToFind.java
index 440a76c87608..7e4b555d264c 100644
--- a/platform/lang-impl/src/com/intellij/find/editorHeaderActions/SwitchToFind.java
+++ b/platform/lang-impl/src/com/intellij/find/editorHeaderActions/SwitchToFind.java
@@ -36,8 +36,10 @@ public class SwitchToFind extends EditorHeaderAction implements DumbAware {
action.actionPerformed(e);
return;
}
-
- final FindModel findModel = getEditorSearchComponent().getFindModel();
+
+ EditorSearchComponent component = getEditorSearchComponent();
+ final FindModel findModel = component.getFindModel();
FindUtil.configureFindModel(false, null, findModel, false);
+ component.selectAllText();
}
}
diff --git a/platform/lang-impl/src/com/intellij/find/editorHeaderActions/SwitchToReplace.java b/platform/lang-impl/src/com/intellij/find/editorHeaderActions/SwitchToReplace.java
index f667f019db17..2d8b48aad855 100644
--- a/platform/lang-impl/src/com/intellij/find/editorHeaderActions/SwitchToReplace.java
+++ b/platform/lang-impl/src/com/intellij/find/editorHeaderActions/SwitchToReplace.java
@@ -33,7 +33,9 @@ public class SwitchToReplace extends EditorHeaderAction {
@Override
public void actionPerformed(AnActionEvent e) {
- final FindModel findModel = getEditorSearchComponent().getFindModel();
+ EditorSearchComponent component = getEditorSearchComponent();
+ final FindModel findModel = component.getFindModel();
FindUtil.configureFindModel(true, null, findModel, false);
+ component.selectAllText();
}
}
diff --git a/platform/lang-impl/src/com/intellij/find/editorHeaderActions/ToggleRegex.java b/platform/lang-impl/src/com/intellij/find/editorHeaderActions/ToggleRegex.java
index 1a4ea149df7d..472517ab336d 100644
--- a/platform/lang-impl/src/com/intellij/find/editorHeaderActions/ToggleRegex.java
+++ b/platform/lang-impl/src/com/intellij/find/editorHeaderActions/ToggleRegex.java
@@ -30,12 +30,6 @@ public class ToggleRegex extends EditorHeaderToggleAction {
}
@Override
- public void update(AnActionEvent e) {
- super.update(e);
- e.getPresentation().setVisible(!getEditorSearchComponent().getFindModel().isMultiline());
- }
-
- @Override
public void setSelected(AnActionEvent e, boolean state) {
final FindModel findModel = getEditorSearchComponent().getFindModel();
findModel.setRegularExpressions(state);
diff --git a/platform/lang-impl/src/com/intellij/find/impl/FindInProjectTask.java b/platform/lang-impl/src/com/intellij/find/impl/FindInProjectTask.java
index 7dfdbbce16d7..822ffbb64037 100644
--- a/platform/lang-impl/src/com/intellij/find/impl/FindInProjectTask.java
+++ b/platform/lang-impl/src/com/intellij/find/impl/FindInProjectTask.java
@@ -38,6 +38,7 @@ import com.intellij.openapi.project.ProjectCoreUtil;
import com.intellij.openapi.roots.*;
import com.intellij.openapi.util.Computable;
import com.intellij.openapi.util.Condition;
+import com.intellij.openapi.util.Conditions;
import com.intellij.openapi.util.registry.Registry;
import com.intellij.openapi.util.text.StringUtil;
import com.intellij.openapi.util.text.TrigramBuilder;
@@ -105,7 +106,7 @@ class FindInProjectTask {
final Pattern pattern = FindInProjectUtil.createFileMaskRegExp(filter);
//noinspection unchecked
- myFileMask = pattern == null ? Condition.TRUE : new Condition<VirtualFile>() {
+ myFileMask = pattern == null ? Conditions.<VirtualFile>alwaysTrue() : new Condition<VirtualFile>() {
@Override
public boolean value(VirtualFile file) {
return file != null && pattern.matcher(file.getName()).matches();
@@ -127,6 +128,9 @@ class FindInProjectTask {
}
});
myProgress.setIndeterminate(false);
+ if (LOG.isDebugEnabled()) {
+ LOG.debug("Searching for " + myFindModel.getStringToFind() + " in " + filesForFastWordSearch.size() + " indexed files");
+ }
searchInFiles(filesForFastWordSearch, processPresentation, consumer);
@@ -136,6 +140,10 @@ class FindInProjectTask {
final Collection<PsiFile> otherFiles = collectFilesInScope(filesForFastWordSearch, skipIndexed);
myProgress.setIndeterminate(false);
+ if (LOG.isDebugEnabled()) {
+ LOG.debug("Searching for " + myFindModel.getStringToFind() + " in " + otherFiles.size() + " non-indexed files");
+ }
+
long start = System.currentTimeMillis();
searchInFiles(otherFiles, processPresentation, consumer);
if (skipIndexed && otherFiles.size() > 1000) {
@@ -143,7 +151,10 @@ class FindInProjectTask {
}
}
catch (ProcessCanceledException e) {
- // fine
+ processPresentation.setCanceled(true);
+ if (LOG.isDebugEnabled()) {
+ LOG.debug("Usage search canceled", e);
+ }
}
if (!myLargeFiles.isEmpty()) {
diff --git a/platform/lang-impl/src/com/intellij/find/impl/FindManagerImpl.java b/platform/lang-impl/src/com/intellij/find/impl/FindManagerImpl.java
index b7d58e926e30..f077008068ad 100644
--- a/platform/lang-impl/src/com/intellij/find/impl/FindManagerImpl.java
+++ b/platform/lang-impl/src/com/intellij/find/impl/FindManagerImpl.java
@@ -446,8 +446,16 @@ public class FindManagerImpl extends FindManager implements PersistentStateCompo
final FindModel model = new FindModel();
model.copyFrom(findmodel);
final String s = model.getStringToFind();
- model.setStringToFind(StringUtil.escapeToRegexp(s));
- model.setRegularExpressions(true);
+ String newStringToFind;
+
+ if (findmodel.isRegularExpressions()) {
+ newStringToFind = StringUtil.replace(s, "\n", "\\n\\s*"); // add \\s* for convenience
+ } else {
+ newStringToFind = StringUtil.escapeToRegexp(s);
+ model.setRegularExpressions(true);
+ }
+ model.setStringToFind(newStringToFind);
+
return model;
}
return findmodel;
diff --git a/platform/lang-impl/src/com/intellij/find/impl/livePreview/LivePreview.java b/platform/lang-impl/src/com/intellij/find/impl/livePreview/LivePreview.java
index 995a67ecafa1..e104c1664857 100644
--- a/platform/lang-impl/src/com/intellij/find/impl/livePreview/LivePreview.java
+++ b/platform/lang-impl/src/com/intellij/find/impl/livePreview/LivePreview.java
@@ -24,7 +24,6 @@ import com.intellij.openapi.application.ApplicationManager;
import com.intellij.openapi.editor.Document;
import com.intellij.openapi.editor.Editor;
import com.intellij.openapi.editor.SelectionModel;
-import com.intellij.openapi.editor.colors.CodeInsightColors;
import com.intellij.openapi.editor.colors.EditorColors;
import com.intellij.openapi.editor.colors.EditorColorsManager;
import com.intellij.openapi.editor.event.*;
@@ -53,9 +52,7 @@ import java.io.PrintStream;
import java.util.*;
import java.util.List;
-public class LivePreview extends DocumentAdapter implements SearchResults.SearchResultsListener,
- SelectionListener {
-
+public class LivePreview extends DocumentAdapter implements SearchResults.SearchResultsListener, SelectionListener {
private static final Key<Object> IN_SELECTION_KEY = Key.create("LivePreview.IN_SELECTION_KEY");
private static final Object IN_SELECTION1 = new Object();
private static final Object IN_SELECTION2 = new Object();
@@ -73,6 +70,13 @@ public class LivePreview extends DocumentAdapter implements SearchResults.Search
private String myReplacementPreviewText;
private static boolean NotFound;
+ private final Set<RangeHighlighter> myHighlighters = new HashSet<RangeHighlighter>();
+ private RangeHighlighter myCursorHighlighter;
+ private final List<VisibleAreaListener> myVisibleAreaListenersToRemove = new ArrayList<VisibleAreaListener>();
+ private Delegate myDelegate;
+ private final SearchResults mySearchResults;
+ private Balloon myReplacementBalloon;
+
@Override
public void selectionChanged(SelectionEvent e) {
updateInSelectionHighlighters();
@@ -87,27 +91,15 @@ public class LivePreview extends DocumentAdapter implements SearchResults.Search
}
public interface Delegate {
-
@Nullable
- String getStringToReplace(Editor editor, FindResult findResult);
-
+ String getStringToReplace(@NotNull Editor editor, @Nullable FindResult findResult);
}
- private final Set<RangeHighlighter> myHighlighters = new HashSet<RangeHighlighter>();
-
- private RangeHighlighter myCursorHighlighter;
- private final List<VisibleAreaListener> myVisibleAreaListenersToRemove = new ArrayList<VisibleAreaListener>();
-
- private static TextAttributes strikout() {
- return EditorColorsManager.getInstance().getGlobalScheme().getAttributes(CodeInsightColors.DEPRECATED_ATTRIBUTES).clone();
+ private static TextAttributes strikeout() {
+ Color color = EditorColorsManager.getInstance().getGlobalScheme().getDefaultForeground();
+ return new TextAttributes(null, null, color, EffectType.STRIKEOUT, 0);
}
- private Delegate myDelegate;
-
- private final SearchResults mySearchResults;
-
- private Balloon myReplacementBalloon;
-
@Override
public void searchResultsUpdated(SearchResults sr) {
final Project project = mySearchResults.getProject();
@@ -323,7 +315,7 @@ public class LivePreview extends DocumentAdapter implements SearchResults.Search
attributes.setEffectColor(attributes.getBackgroundColor());
}
if (mySearchResults.isExcluded(range)) {
- highlightRange(range, strikout(), myHighlighters);
+ highlightRange(range, strikeout(), myHighlighters);
} else {
highlightRange(range, attributes, myHighlighters);
}
diff --git a/platform/lang-impl/src/com/intellij/find/impl/livePreview/LivePreviewController.java b/platform/lang-impl/src/com/intellij/find/impl/livePreview/LivePreviewController.java
index 94a6c3f9c1bc..a894781d5cb1 100644
--- a/platform/lang-impl/src/com/intellij/find/impl/livePreview/LivePreviewController.java
+++ b/platform/lang-impl/src/com/intellij/find/impl/livePreview/LivePreviewController.java
@@ -19,7 +19,9 @@ import com.intellij.find.*;
import com.intellij.find.impl.FindResultImpl;
import com.intellij.openapi.application.ApplicationManager;
import com.intellij.openapi.diagnostic.Logger;
-import com.intellij.openapi.editor.*;
+import com.intellij.openapi.editor.Editor;
+import com.intellij.openapi.editor.RangeMarker;
+import com.intellij.openapi.editor.SelectionModel;
import com.intellij.openapi.editor.event.DocumentAdapter;
import com.intellij.openapi.editor.event.DocumentEvent;
import com.intellij.openapi.editor.event.SelectionEvent;
@@ -29,6 +31,7 @@ import com.intellij.openapi.util.Pair;
import com.intellij.openapi.util.TextRange;
import com.intellij.openapi.vfs.ReadonlyStatusHandler;
import com.intellij.util.Alarm;
+import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import java.util.ArrayList;
@@ -147,7 +150,7 @@ public class LivePreviewController implements LivePreview.Delegate, FindUtil.Rep
}
@Override
- public String getStringToReplace(Editor editor, FindResult findResult) {
+ public String getStringToReplace(@NotNull Editor editor, @Nullable FindResult findResult) {
if (findResult == null) {
return null;
}