From f5b59076cece9e95e76158b17b64fec27616b68b Mon Sep 17 00:00:00 2001 From: shedaniel Date: Tue, 5 Jan 2021 12:47:39 +0800 Subject: Configs for syntax highlighting Signed-off-by: shedaniel --- .../impl/OverlaySearchFieldSyntaxHighlighter.java | 27 ++++++++++++---------- 1 file changed, 15 insertions(+), 12 deletions(-) (limited to 'runtime/src/main/java/me/shedaniel/rei/impl/OverlaySearchFieldSyntaxHighlighter.java') 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 { @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 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 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); } } } - } + }); } } -- cgit