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 --- .../me/shedaniel/rei/gui/OverlaySearchField.java | 25 ++++++++++++++-------- 1 file changed, 16 insertions(+), 9 deletions(-) (limited to 'runtime/src/main/java/me/shedaniel/rei/gui/OverlaySearchField.java') diff --git a/runtime/src/main/java/me/shedaniel/rei/gui/OverlaySearchField.java b/runtime/src/main/java/me/shedaniel/rei/gui/OverlaySearchField.java index 9edb9880f..cd7477859 100644 --- a/runtime/src/main/java/me/shedaniel/rei/gui/OverlaySearchField.java +++ b/runtime/src/main/java/me/shedaniel/rei/gui/OverlaySearchField.java @@ -31,6 +31,7 @@ import me.shedaniel.math.Color; import me.shedaniel.math.Point; import me.shedaniel.math.impl.PointHelper; import me.shedaniel.rei.api.ConfigObject; +import me.shedaniel.rei.gui.config.SyntaxHighlightingMode; import me.shedaniel.rei.gui.widget.TextFieldWidget; import me.shedaniel.rei.impl.OverlaySearchFieldSyntaxHighlighter; import me.shedaniel.rei.impl.ScreenHelper; @@ -74,23 +75,29 @@ public class OverlaySearchField extends TextFieldWidget implements TextFieldWidg @Override public FormattedCharSequence format(TextFieldWidget widget, String text, int index) { + boolean isPlain = ConfigObject.getInstance().getSyntaxHighlightingMode() == SyntaxHighlightingMode.PLAIN || ConfigObject.getInstance().getSyntaxHighlightingMode() == SyntaxHighlightingMode.PLAIN_UNDERSCORED; + boolean hasUnderscore = ConfigObject.getInstance().getSyntaxHighlightingMode() == SyntaxHighlightingMode.PLAIN_UNDERSCORED || ConfigObject.getInstance().getSyntaxHighlightingMode() == SyntaxHighlightingMode.COLORFUL_UNDERSCORED; return TextTransformations.forwardWithTransformation(text, (s, charIndex, c) -> { byte arg = highlighter.highlighted[charIndex + index]; - Style style; + Style style = Style.EMPTY; if (arg > 0) { - Argument argument = ArgumentsRegistry.ARGUMENT_LIST.get(arg - 1); - style = argument.getHighlightedStyle(); + Argument argument = ArgumentsRegistry.ARGUMENT_LIST.get((arg - 1) / 2); + if (!isPlain) { + style = argument.getHighlightedStyle(); + } if (argument instanceof TextArgument) { if (isMain && ContainerScreenOverlay.getEntryListWidget().getAllStacks().isEmpty() && !getText().isEmpty()) { style = ERROR_STYLE; } + } else if (hasUnderscore && arg % 2 == 1) { + style = style.withUnderlined(true); + } + } else if (!isPlain) { + if (arg == -1) { + style = SPLITTER_STYLE; + } else if (arg == -2) { + style = QUOTES_STYLE; } - } else if (arg == -1) { - style = SPLITTER_STYLE; - } else if (arg == -2) { - style = QUOTES_STYLE; - } else { - style = Style.EMPTY; } -- cgit