mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
include underscore matches into matching fragments
This commit is contained in:
@@ -282,6 +282,11 @@ public class NameUtilTest extends UsefulTestCase {
|
||||
assertOrderedEquals(new NameUtil.MinusculeMatcher("doge*st", NameUtil.MatchingCaseSensitivity.NONE).matchingFragments(sample),
|
||||
TextRange.from(0, 4), TextRange.from(22, 2));
|
||||
|
||||
sample = "_test";
|
||||
assertOrderedEquals(new NameUtil.MinusculeMatcher("_", NameUtil.MatchingCaseSensitivity.NONE).matchingFragments(sample),
|
||||
TextRange.from(0, 1));
|
||||
assertOrderedEquals(new NameUtil.MinusculeMatcher("_t", NameUtil.MatchingCaseSensitivity.NONE).matchingFragments(sample),
|
||||
TextRange.from(0, 2));
|
||||
}
|
||||
|
||||
public void testMatchingDegree() {
|
||||
|
||||
@@ -486,17 +486,21 @@ public class NameUtil {
|
||||
while (i > 0) {
|
||||
FList<TextRange> ranges = matchName(name, patternIndex + i, nextStart);
|
||||
if (ranges != null) {
|
||||
TextRange head = ranges.getHead();
|
||||
if (head != null && head.getStartOffset() == nameIndex + i) {
|
||||
return ranges.getTail().prepend(new TextRange(nameIndex, head.getEndOffset()));
|
||||
}
|
||||
return ranges.prepend(TextRange.from(nameIndex, i));
|
||||
return prependRange(ranges, nameIndex, i);
|
||||
}
|
||||
i--;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
private static FList<TextRange> prependRange(FList<TextRange> ranges, int from, int to) {
|
||||
TextRange head = ranges.getHead();
|
||||
if (head != null && head.getStartOffset() == from + to) {
|
||||
return ranges.getTail().prepend(new TextRange(from, head.getEndOffset()));
|
||||
}
|
||||
return ranges.prepend(TextRange.from(from, to));
|
||||
}
|
||||
|
||||
private boolean isWordSeparator(char c) {
|
||||
return mySeparatorFunction.fun(c);
|
||||
}
|
||||
@@ -513,7 +517,12 @@ public class NameUtil {
|
||||
return null;
|
||||
}
|
||||
|
||||
return matchName(name, patternIndex + 1, nextStart);
|
||||
final FList<TextRange> ranges = matchName(name, patternIndex + 1, nextStart);
|
||||
if (ranges != null) {
|
||||
return prependRange(ranges, patternIndex, patternIndex + 1);
|
||||
}
|
||||
|
||||
return ranges;
|
||||
}
|
||||
|
||||
return matchName(name, patternIndex, nextStart);
|
||||
|
||||
Reference in New Issue
Block a user