This is an automated email from the ASF dual-hosted git repository. davsclaus pushed a commit to branch worktree-mellow-weaving-quokka in repository https://gitbox.apache.org/repos/asf/camel.git
commit 612352d7811e8232778765b266b5322ea7f2748f Author: Claus Ibsen <[email protected]> AuthorDate: Tue Jun 16 19:49:46 2026 +0200 chore: use Monokai color palette for TUI syntax highlighting Replace ANSI colors with Monokai RGB true colors for better readability on dark terminal backgrounds. The previous dark blue was unreadable on black screens. Co-Authored-By: Claude <[email protected]> Signed-off-by: Claus Ibsen <[email protected]> --- .../jbang/core/commands/tui/SyntaxHighlighter.java | 53 +++++++++++++--------- .../core/commands/tui/SyntaxHighlighterTest.java | 20 ++++---- 2 files changed, 41 insertions(+), 32 deletions(-) diff --git a/dsl/camel-jbang/camel-jbang-plugin-tui/src/main/java/org/apache/camel/dsl/jbang/core/commands/tui/SyntaxHighlighter.java b/dsl/camel-jbang/camel-jbang-plugin-tui/src/main/java/org/apache/camel/dsl/jbang/core/commands/tui/SyntaxHighlighter.java index 8859a18ba387..9ec9fc64923e 100644 --- a/dsl/camel-jbang/camel-jbang-plugin-tui/src/main/java/org/apache/camel/dsl/jbang/core/commands/tui/SyntaxHighlighter.java +++ b/dsl/camel-jbang/camel-jbang-plugin-tui/src/main/java/org/apache/camel/dsl/jbang/core/commands/tui/SyntaxHighlighter.java @@ -65,35 +65,44 @@ class SyntaxHighlighter { private static final Pattern XML_ATTR_NAME = Pattern.compile("\\s([\\w:.-]+)="); private static final Pattern XML_ENTITY = Pattern.compile("&[^;]+;"); + // Monokai color palette + static final Color MONOKAI_COMMENT = Color.rgb(117, 113, 94); + static final Color MONOKAI_STRING = Color.rgb(230, 219, 116); + static final Color MONOKAI_KEYWORD = Color.rgb(249, 38, 114); + static final Color MONOKAI_FUNCTION = Color.rgb(166, 226, 46); + static final Color MONOKAI_TYPE = Color.rgb(102, 217, 239); + static final Color MONOKAI_CONSTANT = Color.rgb(174, 129, 255); + static final Color MONOKAI_TEXT = Color.rgb(248, 248, 242); + // Java styles - private static final Style JAVA_COMMENT_STYLE = Style.EMPTY.fg(Color.LIGHT_BLUE); - private static final Style JAVA_STRING_STYLE = Style.EMPTY.fg(Color.RED); - private static final Style JAVA_ANNOTATION_STYLE = Style.EMPTY.fg(Color.MAGENTA); - private static final Style JAVA_MODIFIER_STYLE = Style.EMPTY.fg(Color.CYAN); - private static final Style JAVA_KEYWORD_STYLE = Style.EMPTY.fg(Color.RED); - private static final Style JAVA_TYPE_STYLE = Style.EMPTY.fg(Color.GREEN); - private static final Style JAVA_BOOLEAN_STYLE = Style.EMPTY.fg(Color.YELLOW); - private static final Style JAVA_NUMBER_STYLE = Style.EMPTY.fg(Color.YELLOW); + private static final Style JAVA_COMMENT_STYLE = Style.EMPTY.fg(MONOKAI_COMMENT); + private static final Style JAVA_STRING_STYLE = Style.EMPTY.fg(MONOKAI_STRING); + private static final Style JAVA_ANNOTATION_STYLE = Style.EMPTY.fg(MONOKAI_FUNCTION); + private static final Style JAVA_MODIFIER_STYLE = Style.EMPTY.fg(MONOKAI_KEYWORD); + private static final Style JAVA_KEYWORD_STYLE = Style.EMPTY.fg(MONOKAI_KEYWORD); + private static final Style JAVA_TYPE_STYLE = Style.EMPTY.fg(MONOKAI_TYPE); + private static final Style JAVA_BOOLEAN_STYLE = Style.EMPTY.fg(MONOKAI_CONSTANT); + private static final Style JAVA_NUMBER_STYLE = Style.EMPTY.fg(MONOKAI_CONSTANT); // YAML styles - private static final Style YAML_COMMENT_STYLE = Style.EMPTY.fg(Color.LIGHT_BLUE); - private static final Style YAML_KEY_STYLE = Style.EMPTY.fg(Color.RED); - private static final Style YAML_VALUE_STYLE = Style.EMPTY.fg(Color.GREEN); - private static final Style YAML_SPECIAL_STYLE = Style.EMPTY.fg(Color.YELLOW); - private static final Style YAML_SEPARATOR_STYLE = Style.EMPTY.fg(Color.WHITE).bold(); + private static final Style YAML_COMMENT_STYLE = Style.EMPTY.fg(MONOKAI_COMMENT); + private static final Style YAML_KEY_STYLE = Style.EMPTY.fg(MONOKAI_KEYWORD); + private static final Style YAML_VALUE_STYLE = Style.EMPTY.fg(MONOKAI_STRING); + private static final Style YAML_SPECIAL_STYLE = Style.EMPTY.fg(MONOKAI_CONSTANT); + private static final Style YAML_SEPARATOR_STYLE = Style.EMPTY.fg(MONOKAI_TEXT).bold(); // XML styles - private static final Style XML_COMMENT_STYLE = Style.EMPTY.fg(Color.YELLOW); - private static final Style XML_TAG_STYLE = Style.EMPTY.fg(Color.CYAN); - private static final Style XML_ATTR_NAME_STYLE = Style.EMPTY.fg(Color.MAGENTA); - private static final Style XML_ATTR_VALUE_STYLE = Style.EMPTY.fg(Color.GREEN); - private static final Style XML_ENTITY_STYLE = Style.EMPTY.fg(Color.RED); + private static final Style XML_COMMENT_STYLE = Style.EMPTY.fg(MONOKAI_COMMENT); + private static final Style XML_TAG_STYLE = Style.EMPTY.fg(MONOKAI_KEYWORD); + private static final Style XML_ATTR_NAME_STYLE = Style.EMPTY.fg(MONOKAI_FUNCTION); + private static final Style XML_ATTR_VALUE_STYLE = Style.EMPTY.fg(MONOKAI_STRING); + private static final Style XML_ENTITY_STYLE = Style.EMPTY.fg(MONOKAI_CONSTANT); // Properties styles - private static final Style PROPERTIES_COMMENT_STYLE = Style.EMPTY.fg(Color.LIGHT_BLUE); - private static final Style PROPERTIES_KEY_STYLE = Style.EMPTY.fg(Color.YELLOW); - private static final Style PROPERTIES_SEPARATOR_STYLE = Style.EMPTY.fg(Color.WHITE).bold(); - private static final Style PROPERTIES_VALUE_STYLE = Style.EMPTY.fg(Color.BLUE); + private static final Style PROPERTIES_COMMENT_STYLE = Style.EMPTY.fg(MONOKAI_COMMENT); + private static final Style PROPERTIES_KEY_STYLE = Style.EMPTY.fg(MONOKAI_KEYWORD); + private static final Style PROPERTIES_SEPARATOR_STYLE = Style.EMPTY.fg(MONOKAI_TEXT).bold(); + private static final Style PROPERTIES_VALUE_STYLE = Style.EMPTY.fg(MONOKAI_STRING); private SyntaxHighlighter() { } diff --git a/dsl/camel-jbang/camel-jbang-plugin-tui/src/test/java/org/apache/camel/dsl/jbang/core/commands/tui/SyntaxHighlighterTest.java b/dsl/camel-jbang/camel-jbang-plugin-tui/src/test/java/org/apache/camel/dsl/jbang/core/commands/tui/SyntaxHighlighterTest.java index addc69069c17..d060b58fdf27 100644 --- a/dsl/camel-jbang/camel-jbang-plugin-tui/src/test/java/org/apache/camel/dsl/jbang/core/commands/tui/SyntaxHighlighterTest.java +++ b/dsl/camel-jbang/camel-jbang-plugin-tui/src/test/java/org/apache/camel/dsl/jbang/core/commands/tui/SyntaxHighlighterTest.java @@ -41,9 +41,9 @@ class SyntaxHighlighterTest { void colorsKeySeparatorAndValue() { Line line = SyntaxHighlighter.highlightLine("camel.main.name=demo", SyntaxHighlighter.Language.PROPERTIES); - assertEquals(Color.YELLOW, fg(line, "camel.main.name")); - assertEquals(Color.WHITE, fg(line, "=")); - assertEquals(Color.BLUE, fg(line, "demo")); + assertEquals(SyntaxHighlighter.MONOKAI_KEYWORD, fg(line, "camel.main.name")); + assertEquals(SyntaxHighlighter.MONOKAI_TEXT, fg(line, "=")); + assertEquals(SyntaxHighlighter.MONOKAI_STRING, fg(line, "demo")); assertRoundTrip(line, "camel.main.name=demo"); } @@ -51,9 +51,9 @@ class SyntaxHighlighterTest { void colorsColonSeparatorWithSpaces() { Line line = SyntaxHighlighter.highlightLine("server.port : 8080", SyntaxHighlighter.Language.PROPERTIES); - assertEquals(Color.YELLOW, fg(line, "server.port")); - assertEquals(Color.WHITE, fg(line, ":")); - assertEquals(Color.BLUE, fg(line, "8080")); + assertEquals(SyntaxHighlighter.MONOKAI_KEYWORD, fg(line, "server.port")); + assertEquals(SyntaxHighlighter.MONOKAI_TEXT, fg(line, ":")); + assertEquals(SyntaxHighlighter.MONOKAI_STRING, fg(line, "8080")); assertRoundTrip(line, "server.port : 8080"); } @@ -61,7 +61,7 @@ class SyntaxHighlighterTest { void colorsComments() { for (String comment : new String[] { "# a hash comment", "! a bang comment" }) { Line line = SyntaxHighlighter.highlightLine(comment, SyntaxHighlighter.Language.PROPERTIES); - assertEquals(Color.LIGHT_BLUE, fg(line, comment)); + assertEquals(SyntaxHighlighter.MONOKAI_COMMENT, fg(line, comment)); assertRoundTrip(line, comment); } } @@ -69,7 +69,7 @@ class SyntaxHighlighterTest { @Test void colorsKeyWithoutValue() { Line line = SyntaxHighlighter.highlightLine("enabled", SyntaxHighlighter.Language.PROPERTIES); - assertEquals(Color.YELLOW, fg(line, "enabled")); + assertEquals(SyntaxHighlighter.MONOKAI_KEYWORD, fg(line, "enabled")); assertRoundTrip(line, "enabled"); } @@ -78,8 +78,8 @@ class SyntaxHighlighterTest { Line line = SyntaxHighlighter.highlightLine(" camel.x=1", SyntaxHighlighter.Language.PROPERTIES); // the indentation is emitted as a raw (unstyled) span assertEquals(null, fg(line, " ")); - assertEquals(Color.YELLOW, fg(line, "camel.x")); - assertEquals(Color.BLUE, fg(line, "1")); + assertEquals(SyntaxHighlighter.MONOKAI_KEYWORD, fg(line, "camel.x")); + assertEquals(SyntaxHighlighter.MONOKAI_STRING, fg(line, "1")); assertRoundTrip(line, " camel.x=1"); }
