mirror of
https://github.com/GTNewHorizons/NotEnoughItems.git
synced 2026-10-25 20:32:20 +00:00
Fix -@mod and !@mod search syntax in Extended mode (#1071)
This commit is contained in:
1 parent
1673079cbb
commit
550e85c456
2 files changed
+36
-1
No files matched your search
@@ -445,7 +445,7 @@ public class SearchTokenParser {
|
|||||||
final char ch = input.charAt(index);
|
final char ch = input.charAt(index);
|
||||||
|
|
||||||
if (!insideQuotes && delimiters.indexOf(ch) >= 0
|
if (!insideQuotes && delimiters.indexOf(ch) >= 0
|
||||||
&& (!space || index == 0 || input.charAt(index - 1) == ' ')) {
|
&& (!space || index == 0 || input.charAt(index - 1) == ' ' || lastEnd == index)) {
|
||||||
|
|
||||||
if (lastEnd == index) {
|
if (lastEnd == index) {
|
||||||
token += String.valueOf(ch);
|
token += String.valueOf(ch);
|
||||||
|
|||||||
@@ -64,6 +64,7 @@ public class SearchTokenParserTest {
|
|||||||
new ModeValue(1, "Extended mode"), new ModeValue(2, "Regex mode"), new ModeValue(3, "Extended+ mode") };
|
new ModeValue(1, "Extended mode"), new ModeValue(2, "Regex mode"), new ModeValue(3, "Extended+ mode") };
|
||||||
private static final ModeValue[] extendedPlusPatternMode = { patternModes[3] };
|
private static final ModeValue[] extendedPlusPatternMode = { patternModes[3] };
|
||||||
private static final ModeValue[] extendedPatternModes = { patternModes[1], patternModes[3] };
|
private static final ModeValue[] extendedPatternModes = { patternModes[1], patternModes[3] };
|
||||||
|
private static final ModeValue[] nonGrammarPatternModes = { patternModes[0], patternModes[1], patternModes[2] };
|
||||||
|
|
||||||
private static final SearchParserProvider defaultParserProvider = parserProvider(
|
private static final SearchParserProvider defaultParserProvider = parserProvider(
|
||||||
'\0',
|
'\0',
|
||||||
@@ -119,6 +120,10 @@ public class SearchTokenParserTest {
|
|||||||
|
|
||||||
private static final List<Arguments> allModesTestProvider = combinationsProvider(spaceModes, patternModes);
|
private static final List<Arguments> allModesTestProvider = combinationsProvider(spaceModes, patternModes);
|
||||||
|
|
||||||
|
private static final List<Arguments> nonGrammarAllSpaceModesTestProvider = combinationsProvider(
|
||||||
|
spaceModes,
|
||||||
|
nonGrammarPatternModes);
|
||||||
|
|
||||||
private static final List<Arguments> extendedPlusAllSpaceModesTestProvider = combinationsProvider(
|
private static final List<Arguments> extendedPlusAllSpaceModesTestProvider = combinationsProvider(
|
||||||
spaceModes,
|
spaceModes,
|
||||||
extendedPlusPatternMode);
|
extendedPlusPatternMode);
|
||||||
@@ -236,6 +241,36 @@ public class SearchTokenParserTest {
|
|||||||
assertTrue(matchedItems.contains(itemA));
|
assertTrue(matchedItems.contains(itemA));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@DisplayName("Negated prefix (dash)")
|
||||||
|
@ParameterizedTest(name = "{argumentsWithNames}")
|
||||||
|
@FieldSource("allModesTestProvider")
|
||||||
|
public void testNegatedPrefixDash(int spaceMode, int patternMode) {
|
||||||
|
SearchTokenParser searchParser = new SearchTokenParser();
|
||||||
|
searchParser.addProvider(defaultParserProvider);
|
||||||
|
searchParser
|
||||||
|
.addProvider(parserProvider('?', "custom", SearchTokenParser.SearchMode.PREFIX, customCreateFilter));
|
||||||
|
|
||||||
|
Set<ItemStack> matchedItems = testFilterAgainstAllItems(spaceMode, patternMode, searchParser, "-?A");
|
||||||
|
|
||||||
|
assertEquals(5, matchedItems.size());
|
||||||
|
assertFalse(matchedItems.contains(itemA));
|
||||||
|
}
|
||||||
|
|
||||||
|
@DisplayName("Negated prefix (bang)")
|
||||||
|
@ParameterizedTest(name = "{argumentsWithNames}")
|
||||||
|
@FieldSource("nonGrammarAllSpaceModesTestProvider")
|
||||||
|
public void testNegatedPrefixBang(int spaceMode, int patternMode) {
|
||||||
|
SearchTokenParser searchParser = new SearchTokenParser();
|
||||||
|
searchParser.addProvider(defaultParserProvider);
|
||||||
|
searchParser
|
||||||
|
.addProvider(parserProvider('?', "custom", SearchTokenParser.SearchMode.PREFIX, customCreateFilter));
|
||||||
|
|
||||||
|
Set<ItemStack> matchedItems = testFilterAgainstAllItems(spaceMode, patternMode, searchParser, "!?A");
|
||||||
|
|
||||||
|
assertEquals(5, matchedItems.size());
|
||||||
|
assertFalse(matchedItems.contains(itemA));
|
||||||
|
}
|
||||||
|
|
||||||
@DisplayName("Space mode")
|
@DisplayName("Space mode")
|
||||||
@ParameterizedTest(name = "{argumentsWithNames}")
|
@ParameterizedTest(name = "{argumentsWithNames}")
|
||||||
@FieldSource("spaceIsSpaceAllModesTestProvider")
|
@FieldSource("spaceIsSpaceAllModesTestProvider")
|
||||||
|
|||||||
Reference in new issue
Block a user