diff options
| author | shedaniel <daniel@shedaniel.me> | 2021-01-05 12:47:39 +0800 |
|---|---|---|
| committer | shedaniel <daniel@shedaniel.me> | 2021-01-05 12:47:39 +0800 |
| commit | f5b59076cece9e95e76158b17b64fec27616b68b (patch) | |
| tree | b0714ad0affed45ff2aa6250e48d6d8db8a1e294 /runtime/src/main/java/me/shedaniel/rei/impl/OverlaySearchFieldSyntaxHighlighter.java | |
| parent | 5385aa5bda42b586f6da45f17f1b3309e0bc900a (diff) | |
| download | RoughlyEnoughItems-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.java | 27 |
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); } } } - } + }); } } |
