mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
one dot cannot match several
This commit is contained in:
@@ -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<TextRange> handleAsterisk(String name, int patternIndex, int nameIndex) {
|
||||
private FList<TextRange> 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;
|
||||
|
||||
Reference in New Issue
Block a user