From 3cddf0efb145e292ef24cd09eb65745704a2bc7d Mon Sep 17 00:00:00 2001 From: peter Date: Fri, 1 Apr 2011 19:09:52 +0200 Subject: [PATCH] one dot cannot match several --- .../src/com/intellij/psi/codeStyle/NameUtil.java | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/platform/util/src/com/intellij/psi/codeStyle/NameUtil.java b/platform/util/src/com/intellij/psi/codeStyle/NameUtil.java index 2bd1019e3cc3..1a128e1c9a5d 100644 --- a/platform/util/src/com/intellij/psi/codeStyle/NameUtil.java +++ b/platform/util/src/com/intellij/psi/codeStyle/NameUtil.java @@ -464,7 +464,7 @@ public class NameUtil { public MinusculeMatcher(String pattern, MatchingCaseSensitivity options) { myOptions = options; - myPattern = StringUtil.trimEnd(pattern, "* ").replaceAll(":", "\\*:").replaceAll("\\.", "\\*\\.").toCharArray(); + myPattern = StringUtil.trimEnd(pattern, "* ").replaceAll(":", "\\*:").toCharArray(); } @Nullable @@ -476,8 +476,11 @@ public class NameUtil { return null; } + if ('.' == myPattern[patternIndex] && name.charAt(nameIndex) != '.') { + return skipChars(name, patternIndex, nameIndex, false); + } if ('*' == myPattern[patternIndex]) { - return handleAsterisk(name, patternIndex, nameIndex); + return skipChars(name, patternIndex, nameIndex, true); } if (patternIndex == 0 && myOptions != MatchingCaseSensitivity.NONE && name.charAt(nameIndex) != myPattern[0]) { @@ -555,7 +558,7 @@ public class NameUtil { } @Nullable - private FList handleAsterisk(String name, int patternIndex, int nameIndex) { + private FList skipChars(String name, int patternIndex, int nameIndex, boolean maySkipNextChar) { while ('*' == myPattern[patternIndex]) { patternIndex++; if (patternIndex == myPattern.length) { @@ -575,6 +578,9 @@ public class NameUtil { if (ranges != null) { return ranges; } + if (!maySkipNextChar) { + return null; + } fromIndex = next + 1; } return null;