mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
Seach and replace inconsistency started from Seach (IDEA-160192)
This commit is contained in:
@@ -22,10 +22,7 @@ import com.intellij.codeInsight.hint.HintUtil;
|
||||
import com.intellij.find.findUsages.PsiElement2UsageTargetAdapter;
|
||||
import com.intellij.find.impl.FindInProjectUtil;
|
||||
import com.intellij.find.replaceInProject.ReplaceInProjectManager;
|
||||
import com.intellij.openapi.actionSystem.ActionManager;
|
||||
import com.intellij.openapi.actionSystem.AnAction;
|
||||
import com.intellij.openapi.actionSystem.DataContext;
|
||||
import com.intellij.openapi.actionSystem.IdeActions;
|
||||
import com.intellij.openapi.actionSystem.*;
|
||||
import com.intellij.openapi.application.ApplicationManager;
|
||||
import com.intellij.openapi.command.CommandProcessor;
|
||||
import com.intellij.openapi.editor.*;
|
||||
@@ -157,6 +154,17 @@ public class FindUtil {
|
||||
}
|
||||
}
|
||||
|
||||
public static void useFindStringFromFindInFileModel(FindModel findModel, Editor editor) {
|
||||
if (editor != null) {
|
||||
EditorSearchSession editorSearchSession = EditorSearchSession.get(editor);
|
||||
if (editorSearchSession != null) {
|
||||
FindModel currentFindModel = editorSearchSession.getFindModel();
|
||||
findModel.setStringToFind(currentFindModel.getStringToFind());
|
||||
if (findModel.isReplaceState()) findModel.setStringToReplace(currentFindModel.getStringToReplace());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private enum Direction {
|
||||
UP, DOWN
|
||||
}
|
||||
|
||||
@@ -16,20 +16,14 @@
|
||||
|
||||
package com.intellij.find.findInProject;
|
||||
|
||||
import com.intellij.find.FindManager;
|
||||
import com.intellij.find.FindModel;
|
||||
import com.intellij.find.FindSettings;
|
||||
import com.intellij.find.FindUtil;
|
||||
import com.intellij.find.*;
|
||||
import com.intellij.find.impl.FindInProjectUtil;
|
||||
import com.intellij.find.impl.FindManagerImpl;
|
||||
import com.intellij.find.replaceInProject.ReplaceInProjectManager;
|
||||
import com.intellij.openapi.actionSystem.CommonDataKeys;
|
||||
import com.intellij.openapi.actionSystem.DataContext;
|
||||
import com.intellij.openapi.actionSystem.PlatformDataKeys;
|
||||
import com.intellij.openapi.components.ServiceManager;
|
||||
import com.intellij.openapi.editor.Editor;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.util.Factory;
|
||||
import com.intellij.openapi.util.registry.Registry;
|
||||
import com.intellij.ui.content.Content;
|
||||
import com.intellij.usageView.UsageInfo;
|
||||
@@ -76,9 +70,9 @@ public class FindInProjectManager {
|
||||
FindModel.initStringToFindNoMultiline(findModel, text);
|
||||
}
|
||||
else {
|
||||
Editor editor = CommonDataKeys.EDITOR.getData(dataContext);
|
||||
FindUtil.initStringToFindWithSelection(findModel, editor);
|
||||
FindInProjectUtil.initStringToFindFromDataContext(findModel, dataContext);
|
||||
}
|
||||
|
||||
if (Registry.is("ide.find.as.popup")) {
|
||||
findManager.showFindPopup(findModel, dataContext);
|
||||
return;
|
||||
|
||||
@@ -425,6 +425,14 @@ public class FindInProjectUtil {
|
||||
});
|
||||
}
|
||||
|
||||
public static void initStringToFindFromDataContext(FindModel findModel, @NotNull DataContext dataContext) {
|
||||
Editor editor = CommonDataKeys.EDITOR.getData(dataContext);
|
||||
FindUtil.initStringToFindWithSelection(findModel, editor);
|
||||
if (editor == null) {
|
||||
FindUtil.useFindStringFromFindInFileModel(findModel, CommonDataKeys.EDITOR_EVEN_IF_INACTIVE.getData(dataContext));
|
||||
}
|
||||
}
|
||||
|
||||
public static class StringUsageTarget implements ConfigurableUsageTarget, ItemPresentation, TypeSafeDataProvider {
|
||||
@NotNull protected final Project myProject;
|
||||
@NotNull protected final FindModel myFindModel;
|
||||
|
||||
+1
-6
@@ -24,7 +24,6 @@ import com.intellij.find.impl.FindManagerImpl;
|
||||
import com.intellij.ide.DataManager;
|
||||
import com.intellij.notification.NotificationGroup;
|
||||
import com.intellij.openapi.actionSystem.ActionManager;
|
||||
import com.intellij.openapi.actionSystem.CommonDataKeys;
|
||||
import com.intellij.openapi.actionSystem.DataContext;
|
||||
import com.intellij.openapi.actionSystem.KeyboardShortcut;
|
||||
import com.intellij.openapi.application.ApplicationManager;
|
||||
@@ -32,14 +31,12 @@ import com.intellij.openapi.application.TransactionGuard;
|
||||
import com.intellij.openapi.command.CommandProcessor;
|
||||
import com.intellij.openapi.components.ServiceManager;
|
||||
import com.intellij.openapi.editor.Document;
|
||||
import com.intellij.openapi.editor.Editor;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.ui.MessageType;
|
||||
import com.intellij.openapi.ui.Messages;
|
||||
import com.intellij.openapi.util.Computable;
|
||||
import com.intellij.openapi.util.Factory;
|
||||
import com.intellij.openapi.util.Ref;
|
||||
import com.intellij.openapi.util.Segment;
|
||||
import com.intellij.openapi.util.text.StringUtil;
|
||||
import com.intellij.openapi.vfs.ReadonlyStatusHandler;
|
||||
import com.intellij.openapi.vfs.VfsUtilCore;
|
||||
@@ -134,9 +131,7 @@ public class ReplaceInProjectManager {
|
||||
findModel.setOpenInNewTabEnabled(isOpenInNewTabEnabled);
|
||||
findModel.setOpenInNewTab(toOpenInNewTab);
|
||||
FindInProjectUtil.setDirectoryName(findModel, dataContext);
|
||||
|
||||
Editor editor = CommonDataKeys.EDITOR.getData(dataContext);
|
||||
FindUtil.initStringToFindWithSelection(findModel, editor);
|
||||
FindInProjectUtil.initStringToFindFromDataContext(findModel, dataContext);
|
||||
|
||||
findManager.showFindDialog(findModel, () -> {
|
||||
if (!findModel.isProjectScope() &&
|
||||
|
||||
Reference in New Issue
Block a user