From dd946ffbe9250c74be5e1ad9b219275b30ac785a Mon Sep 17 00:00:00 2001 From: "Maxim.Mossienko" Date: Wed, 14 Sep 2016 12:24:26 +0200 Subject: [PATCH] Regex Find always case-sensitive with non-english characters (IDEA-104681) --- .../testSrc/com/intellij/find/FindManagerTest.java | 7 +++++++ platform/indexing-api/src/com/intellij/find/FindModel.java | 2 +- 2 files changed, 8 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 7cd154a97381..0419033fdc23 100644 --- a/java/java-tests/testSrc/com/intellij/find/FindManagerTest.java +++ b/java/java-tests/testSrc/com/intellij/find/FindManagerTest.java @@ -920,6 +920,13 @@ public class FindManagerTest extends DaemonAnalyzerTestCase { runAsyncTest("/*" + text + "*/", findModel); } + public void testProperInsensitiveSearchForRegExp() throws Exception { + createFile("a.java", "Цитрус цитрус"); + FindModel findModel = FindManagerTestUtils.configureFindModel("цитрус"); + findModel.setRegularExpressions(true); + assertSize(2, findUsages(findModel)); + } + private void runAsyncTest(String text, FindModel findModel) throws InterruptedException { final Ref result = new Ref<>(); final CountDownLatch progressStarted = new CountDownLatch(1); diff --git a/platform/indexing-api/src/com/intellij/find/FindModel.java b/platform/indexing-api/src/com/intellij/find/FindModel.java index a073dd244a64..85120a860887 100644 --- a/platform/indexing-api/src/com/intellij/find/FindModel.java +++ b/platform/indexing-api/src/com/intellij/find/FindModel.java @@ -937,7 +937,7 @@ public class FindModel extends UserDataHolderBase implements Cloneable { Pattern pattern = myPattern; if (pattern == PatternUtil.NOTHING) { try { - myPattern = pattern = Pattern.compile(toFind, isCaseSensitive() ? Pattern.MULTILINE : Pattern.MULTILINE | Pattern.CASE_INSENSITIVE); + myPattern = pattern = Pattern.compile(toFind, isCaseSensitive() ? Pattern.MULTILINE : Pattern.MULTILINE | Pattern.CASE_INSENSITIVE | Pattern.UNICODE_CASE); } catch (PatternSyntaxException e) { myPattern = pattern = null;