aboutsummaryrefslogtreecommitdiff
path: root/runtime/src/main/java/me/shedaniel/rei/impl/OverlaySearchFieldSyntaxHighlighter.java
diff options
context:
space:
mode:
authorshedaniel <daniel@shedaniel.me>2021-01-05 12:47:39 +0800
committershedaniel <daniel@shedaniel.me>2021-01-05 12:47:39 +0800
commitf5b59076cece9e95e76158b17b64fec27616b68b (patch)
treeb0714ad0affed45ff2aa6250e48d6d8db8a1e294 /runtime/src/main/java/me/shedaniel/rei/impl/OverlaySearchFieldSyntaxHighlighter.java
parent5385aa5bda42b586f6da45f17f1b3309e0bc900a (diff)
downloadRoughlyEnoughItems-f5b59076cece9e95e76158b17b64fec27616b68b.tar.gz
RoughlyEnoughItems-f5b59076cece9e95e76158b17b64fec27616b68b.tar.bz2
RoughlyEnoughItems-f5b59076cece9e95e76158b17b64fec27616b68b.zip
Configs for syntax highlighting
Signed-off-by: shedaniel <daniel@shedaniel.me>
Diffstat (limited to 'runtime/src/main/java/me/shedaniel/rei/impl/OverlaySearchFieldSyntaxHighlighter.java')
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/OverlaySearchFieldSyntaxHighlighter.java27
1 files changed, 15 insertions, 12 deletions
diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/OverlaySearchFieldSyntaxHighlighter.java b/runtime/src/main/java/me/shedaniel/rei/impl/OverlaySearchFieldSyntaxHighlighter.java
index c63895f2c..3d8a8ba97 100644
--- a/runtime/src/main/java/me/shedaniel/rei/impl/OverlaySearchFieldSyntaxHighlighter.java
+++ b/runtime/src/main/java/me/shedaniel/rei/impl/OverlaySearchFieldSyntaxHighlighter.java
@@ -2,9 +2,10 @@ package me.shedaniel.rei.impl;
import me.shedaniel.rei.gui.OverlaySearchField;
import me.shedaniel.rei.impl.search.ArgumentsRegistry;
+import net.minecraft.util.IntRange;
import org.jetbrains.annotations.ApiStatus;
-import java.util.List;
+import java.util.Collection;
import java.util.function.Consumer;
@ApiStatus.Internal
@@ -20,27 +21,29 @@ public class OverlaySearchFieldSyntaxHighlighter implements Consumer<String> {
@Override
public void accept(String text) {
this.highlighted = new byte[text.length()];
- SearchArgument.ProcessedSink sink = new SearchArgument.ProcessedSink() {
+ SearchArgument.processSearchTerm(text, new SearchArgument.ProcessedSink() {
@Override
public void addQuote(int index) {
highlighted[index] = -2;
}
-
+
@Override
public void addSplitter(int index) {
highlighted[index] = -1;
}
- };
- List<SearchArgument.SearchArguments> arguments = SearchArgument.processSearchTerm(text, sink);
- for (SearchArgument.SearchArguments argument : arguments) {
- if (!argument.isAlways()) {
- for (SearchArgument<?, ?> searchArgument : argument.getArguments()) {
- int argIndex = ArgumentsRegistry.ARGUMENT_LIST.indexOf(searchArgument.getArgument()) + 1;
- for (int i = searchArgument.start(); i < searchArgument.end(); i++) {
- highlighted[i] = (byte) argIndex;
+
+ @Override
+ public void addPart(SearchArgument<?, ?> argument, Collection<IntRange> grammarRanges, int index) {
+ int argIndex = ArgumentsRegistry.ARGUMENT_LIST.indexOf(argument.getArgument()) * 2 + 1;
+ for (int i = argument.start(); i < argument.end(); i++) {
+ highlighted[i] = (byte) argIndex;
+ }
+ for (IntRange grammarRange : grammarRanges) {
+ for (int i = grammarRange.getMinInclusive(); i <= grammarRange.getMaxInclusive(); i++) {
+ highlighted[i + index] = (byte) (argIndex + 1);
}
}
}
- }
+ });
}
}