diff --git a/java/java-tests/testSrc/com/intellij/find/FindManagerTest.java b/java/java-tests/testSrc/com/intellij/find/FindManagerTest.java index 1fa5ce12b7f9..3f467403c061 100644 --- a/java/java-tests/testSrc/com/intellij/find/FindManagerTest.java +++ b/java/java-tests/testSrc/com/intellij/find/FindManagerTest.java @@ -461,6 +461,28 @@ public class FindManagerTest extends DaemonAnalyzerTestCase { assertEquals(text+"\n", getEditor().getDocument().getText()); } + public void testReplaceWithRegExp() { + FindModel findModel = new FindModel(); + findModel.setStringToFind("(? { diff --git a/platform/lang-impl/src/com/intellij/find/FindUtil.java b/platform/lang-impl/src/com/intellij/find/FindUtil.java index b60587f1d369..94ea1df621ca 100644 --- a/platform/lang-impl/src/com/intellij/find/FindUtil.java +++ b/platform/lang-impl/src/com/intellij/find/FindUtil.java @@ -531,8 +531,7 @@ public class FindUtil { String foundString = document.getCharsSequence().subSequence(startOffset, endOffset).toString(); String toReplace; try { - CharSequence textToMatch = document.getCharsSequence().subSequence(offset, document.getTextLength()); - toReplace = findManager.getStringToReplace(foundString, model, startOffset - offset, textToMatch); + toReplace = findManager.getStringToReplace(foundString, model, startOffset, document.getCharsSequence()); } catch (FindManager.MalformedReplacementStringException e) { if (!ApplicationManager.getApplication().isUnitTestMode()) {