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");
     }
 

Reply via email to