From ddd7530d075fb966cb4e858ea687cb6c1a546966 Mon Sep 17 00:00:00 2001 From: peter Date: Thu, 6 Mar 2014 13:46:45 +0100 Subject: [PATCH] IDEA-121609 Cannot find '+' + using Find in Path --- .../com/intellij/find/FindManagerTest.java | 15 +++++++++++++++ .../com/intellij/find/impl/FindInProjectTask.java | 2 +- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/java/java-tests/testSrc/com/intellij/find/FindManagerTest.java b/java/java-tests/testSrc/com/intellij/find/FindManagerTest.java index bfd1de796f90..b0bc587fd406 100644 --- a/java/java-tests/testSrc/com/intellij/find/FindManagerTest.java +++ b/java/java-tests/testSrc/com/intellij/find/FindManagerTest.java @@ -600,4 +600,19 @@ public class FindManagerTest extends DaemonAnalyzerTestCase { findModel.setInCommentsOnly(true); FindManagerTestUtils.runFindForwardAndBackward(myFindManager, findModel, text, "java"); } + + public void testPlusWholeWordsOnly() throws Exception { + createFile(myModule, "A.java", "3 + '+' + 2"); + + FindModel findModel = FindManagerTestUtils.configureFindModel("'+' +"); + findModel.setMultipleFiles(true); + + assertSize(1, findUsages(findModel)); + + findModel.setCaseSensitive(true); + assertSize(1, findUsages(findModel)); + + findModel.setWholeWordsOnly(true); + assertSize(1, findUsages(findModel)); + } } 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 3650e188a65e..d3d5d808f871 100644 --- a/platform/lang-impl/src/com/intellij/find/impl/FindInProjectTask.java +++ b/platform/lang-impl/src/com/intellij/find/impl/FindInProjectTask.java @@ -313,7 +313,7 @@ class FindInProjectTask { // $ is used to separate words when indexing plain-text files but not when indexing // Java identifiers, so we can't consistently break a string containing $ characters into words - return myFindModel.isWholeWordsOnly() && text.indexOf('$') < 0; + return myFindModel.isWholeWordsOnly() && text.indexOf('$') < 0 && !StringUtil.getWordsInStringLongestFirst(text).isEmpty(); }