From e65eb8f6a4aadfacb9798867a23219e58d191c34 Mon Sep 17 00:00:00 2001 From: "s0wlz (Matthias Puchstein)" Date: Wed, 11 Mar 2026 00:43:52 +0100 Subject: [PATCH] feat: canonicalize syntax roles + theme zsh plugins Add authoritative `syntax:` block to both YAML specs mapping keyword, type, function, string, constant, operator, variable, comment, and punctuation to their semantic palette colors. Align nvim and Zed templates to this canonical mapping (keyword=purple, type=amber, number/bool/constant=cyan, operator=white). Fix nvim Special/SpecialChar/ Tag (were cyan; now purple/amber/blue respectively). Add plugin color variables to zsh template: ZSH_AUTOSUGGEST uses dim grey for ghost text; HISTORY_SUBSTRING_SEARCH uses cyan for found and bright-red for not-found, matching the semantic palette signal system. Co-Authored-By: Claude Sonnet 4.6 --- dist/nvim/colors/apex-aeon.lua | 8 ++++---- dist/nvim/colors/apex-neon.lua | 8 ++++---- dist/zed/apex.json | 32 +++++++++++++++---------------- dist/zsh/apex-aeon.zsh-theme | 10 ++++++++++ dist/zsh/apex-neon.zsh-theme | 10 ++++++++++ src/aeon.yaml | 12 ++++++++++++ src/neon.yaml | 12 ++++++++++++ templates/nvim/colors/apex.lua.j2 | 8 ++++---- templates/zed/apex.json.j2 | 16 ++++++++-------- templates/zsh/apex.zsh-theme.j2 | 10 ++++++++++ 10 files changed, 90 insertions(+), 36 deletions(-) diff --git a/dist/nvim/colors/apex-aeon.lua b/dist/nvim/colors/apex-aeon.lua index 85aa102..f45ecbc 100644 --- a/dist/nvim/colors/apex-aeon.lua +++ b/dist/nvim/colors/apex-aeon.lua @@ -115,7 +115,7 @@ function M.load() Conditional = { fg = p.sacred }, Repeat = { fg = p.sacred }, Label = { fg = p.sacred }, - Operator = { fg = p.tech }, -- Cyan (Tech) + Operator = { fg = p.text }, -- White (Neutral) Keyword = { fg = p.sacred }, Exception = { fg = p.razor }, -- Red (Errors) @@ -130,9 +130,9 @@ function M.load() Structure = { fg = p.amber }, Typedef = { fg = p.amber }, - Special = { fg = p.tech }, - SpecialChar = { fg = p.tech }, - Tag = { fg = p.tech }, + Special = { fg = p.sacred }, -- Purple (special grammar tokens) + SpecialChar = { fg = p.amber }, -- Amber (escalated string variant: escapes, regex) + Tag = { fg = p.azure }, -- Blue (structural: HTML/XML tags) Delimiter = { fg = p.dim }, -- Subtle delimiters Debug = { fg = p.razor }, diff --git a/dist/nvim/colors/apex-neon.lua b/dist/nvim/colors/apex-neon.lua index 0d4c606..f171fb5 100644 --- a/dist/nvim/colors/apex-neon.lua +++ b/dist/nvim/colors/apex-neon.lua @@ -115,7 +115,7 @@ function M.load() Conditional = { fg = p.sacred }, Repeat = { fg = p.sacred }, Label = { fg = p.sacred }, - Operator = { fg = p.tech }, -- Cyan (Tech) + Operator = { fg = p.text }, -- White (Neutral) Keyword = { fg = p.sacred }, Exception = { fg = p.razor }, -- Red (Errors) @@ -130,9 +130,9 @@ function M.load() Structure = { fg = p.amber }, Typedef = { fg = p.amber }, - Special = { fg = p.tech }, - SpecialChar = { fg = p.tech }, - Tag = { fg = p.tech }, + Special = { fg = p.sacred }, -- Purple (special grammar tokens) + SpecialChar = { fg = p.amber }, -- Amber (escalated string variant: escapes, regex) + Tag = { fg = p.azure }, -- Blue (structural: HTML/XML tags) Delimiter = { fg = p.dim }, -- Subtle delimiters Debug = { fg = p.razor }, diff --git a/dist/zed/apex.json b/dist/zed/apex.json index 32c0ac3..0e2cb57 100644 --- a/dist/zed/apex.json +++ b/dist/zed/apex.json @@ -197,13 +197,13 @@ "font_style": "italic" }, "keyword": { - "color": "#00eaff" + "color": "#9d00ff" }, "keyword.import": { - "color": "#00eaff" + "color": "#9d00ff" }, "keyword.storage": { - "color": "#00eaff" + "color": "#9d00ff" }, "function": { "color": "#0088cc" @@ -215,10 +215,10 @@ "color": "#0088cc" }, "type": { - "color": "#9d00ff" + "color": "#ffb700" }, "type.builtin": { - "color": "#9d00ff" + "color": "#ffb700" }, "string": { "color": "#00ff99" @@ -230,13 +230,13 @@ "color": "#ffb700" }, "number": { - "color": "#ffb700" + "color": "#00eaff" }, "boolean": { - "color": "#ffb700" + "color": "#00eaff" }, "constant": { - "color": "#ededed" + "color": "#00eaff" }, "constant.builtin": { "color": "#9d00ff" @@ -509,13 +509,13 @@ "font_style": "italic" }, "keyword": { - "color": "#007a88" + "color": "#7a3cff" }, "keyword.import": { - "color": "#007a88" + "color": "#7a3cff" }, "keyword.storage": { - "color": "#007a88" + "color": "#7a3cff" }, "function": { "color": "#005577" @@ -527,10 +527,10 @@ "color": "#005577" }, "type": { - "color": "#7a3cff" + "color": "#d18f00" }, "type.builtin": { - "color": "#7a3cff" + "color": "#d18f00" }, "string": { "color": "#00b377" @@ -542,13 +542,13 @@ "color": "#d18f00" }, "number": { - "color": "#d18f00" + "color": "#007a88" }, "boolean": { - "color": "#d18f00" + "color": "#007a88" }, "constant": { - "color": "#0a0a0a" + "color": "#007a88" }, "constant.builtin": { "color": "#7a3cff" diff --git a/dist/zsh/apex-aeon.zsh-theme b/dist/zsh/apex-aeon.zsh-theme index 5b91d1a..479c6a0 100644 --- a/dist/zsh/apex-aeon.zsh-theme +++ b/dist/zsh/apex-aeon.zsh-theme @@ -23,6 +23,16 @@ C[OK]="#00b377" C[PURPLE]="#7a3cff" C[ALERT]="#ff4d6d" +# ----------------------------------------------------------------------------- +# 1b) PLUGIN COLORS +# ----------------------------------------------------------------------------- +# zsh-autosuggestions: ghost text from history (subtle, intentionally dim) +ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE="fg=#737373" + +# zsh-history-substring-search +HISTORY_SUBSTRING_SEARCH_HIGHLIGHT_FOUND="fg=#007a88,bold" +HISTORY_SUBSTRING_SEARCH_HIGHLIGHT_NOT_FOUND="fg=#ff4d6d,bold" + # ----------------------------------------------------------------------------- # 2) ICONS / GLYPHS (Nerd Font optional) # ----------------------------------------------------------------------------- diff --git a/dist/zsh/apex-neon.zsh-theme b/dist/zsh/apex-neon.zsh-theme index b7c4234..a6ea3ac 100644 --- a/dist/zsh/apex-neon.zsh-theme +++ b/dist/zsh/apex-neon.zsh-theme @@ -23,6 +23,16 @@ C[OK]="#00ff99" C[PURPLE]="#9d00ff" C[ALERT]="#ff8899" +# ----------------------------------------------------------------------------- +# 1b) PLUGIN COLORS +# ----------------------------------------------------------------------------- +# zsh-autosuggestions: ghost text from history (subtle, intentionally dim) +ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE="fg=#737373" + +# zsh-history-substring-search +HISTORY_SUBSTRING_SEARCH_HIGHLIGHT_FOUND="fg=#00eaff,bold" +HISTORY_SUBSTRING_SEARCH_HIGHLIGHT_NOT_FOUND="fg=#ff8899,bold" + # ----------------------------------------------------------------------------- # 2) ICONS / GLYPHS (Nerd Font optional) # ----------------------------------------------------------------------------- diff --git a/src/aeon.yaml b/src/aeon.yaml index 7a405fb..f209bfb 100644 --- a/src/aeon.yaml +++ b/src/aeon.yaml @@ -26,6 +26,18 @@ ui: dim: "#737373" stealth: "#a0a0a0" +# Syntax Token Roles (canonical mapping for all editor targets) +syntax: + keyword: "#7a3cff" # palette.special — purple, sacred structural tokens + type: "#d18f00" # palette.warning — amber, type/class definitions + function: "#005577" # palette.azure — blue, callable structure + string: "#00b377" # palette.success — green, organic string data + constant: "#007a88" # palette.info — cyan, digital values (numbers, booleans) + operator: "#0a0a0a" # palette.foreground — near black, neutral + variable: "#0a0a0a" # palette.foreground — near black, neutral + comment: "#a0a0a0" # ui.stealth — fade out + punctuation: "#737373" # ui.dim — structural noise + # ANSI Table (Terminal) ansi: normal: diff --git a/src/neon.yaml b/src/neon.yaml index 88228f8..cefd055 100644 --- a/src/neon.yaml +++ b/src/neon.yaml @@ -25,6 +25,18 @@ ui: dim: "#737373" # Muted Text stealth: "#404040" # Comments/Ignored +# Syntax Token Roles (canonical mapping for all editor targets) +syntax: + keyword: "#9d00ff" # palette.special — purple, sacred structural tokens + type: "#ffb700" # palette.warning — amber, type/class definitions + function: "#0088cc" # palette.azure — blue, callable structure + string: "#00ff99" # palette.success — green, organic string data + constant: "#00eaff" # palette.info — cyan, digital values (numbers, booleans) + operator: "#ededed" # palette.foreground — white, neutral + variable: "#ededed" # palette.foreground — white, neutral + comment: "#404040" # ui.stealth — fade out + punctuation: "#737373" # ui.dim — structural noise + # ANSI Table (Terminal) ansi: normal: diff --git a/templates/nvim/colors/apex.lua.j2 b/templates/nvim/colors/apex.lua.j2 index b2f39ab..5a52ea6 100644 --- a/templates/nvim/colors/apex.lua.j2 +++ b/templates/nvim/colors/apex.lua.j2 @@ -115,7 +115,7 @@ function M.load() Conditional = { fg = p.sacred }, Repeat = { fg = p.sacred }, Label = { fg = p.sacred }, - Operator = { fg = p.tech }, -- Cyan (Tech) + Operator = { fg = p.text }, -- White (Neutral) Keyword = { fg = p.sacred }, Exception = { fg = p.razor }, -- Red (Errors) @@ -130,9 +130,9 @@ function M.load() Structure = { fg = p.amber }, Typedef = { fg = p.amber }, - Special = { fg = p.tech }, - SpecialChar = { fg = p.tech }, - Tag = { fg = p.tech }, + Special = { fg = p.sacred }, -- Purple (special grammar tokens) + SpecialChar = { fg = p.amber }, -- Amber (escalated string variant: escapes, regex) + Tag = { fg = p.azure }, -- Blue (structural: HTML/XML tags) Delimiter = { fg = p.dim }, -- Subtle delimiters Debug = { fg = p.razor }, diff --git a/templates/zed/apex.json.j2 b/templates/zed/apex.json.j2 index 64644dc..faa93bf 100644 --- a/templates/zed/apex.json.j2 +++ b/templates/zed/apex.json.j2 @@ -197,13 +197,13 @@ "font_style": "italic" }, "keyword": { - "color": "{{ s.palette.info }}" + "color": "{{ s.palette.special }}" }, "keyword.import": { - "color": "{{ s.palette.info }}" + "color": "{{ s.palette.special }}" }, "keyword.storage": { - "color": "{{ s.palette.info }}" + "color": "{{ s.palette.special }}" }, "function": { "color": "{{ s.palette.azure }}" @@ -215,10 +215,10 @@ "color": "{{ s.palette.azure }}" }, "type": { - "color": "{{ s.palette.special }}" + "color": "{{ s.palette.warning }}" }, "type.builtin": { - "color": "{{ s.palette.special }}" + "color": "{{ s.palette.warning }}" }, "string": { "color": "{{ s.palette.success }}" @@ -230,13 +230,13 @@ "color": "{{ s.palette.warning }}" }, "number": { - "color": "{{ s.palette.warning }}" + "color": "{{ s.palette.info }}" }, "boolean": { - "color": "{{ s.palette.warning }}" + "color": "{{ s.palette.info }}" }, "constant": { - "color": "{{ s.palette.foreground }}" + "color": "{{ s.palette.info }}" }, "constant.builtin": { "color": "{{ s.palette.special }}" diff --git a/templates/zsh/apex.zsh-theme.j2 b/templates/zsh/apex.zsh-theme.j2 index 4c24b95..72436c1 100644 --- a/templates/zsh/apex.zsh-theme.j2 +++ b/templates/zsh/apex.zsh-theme.j2 @@ -23,6 +23,16 @@ C[OK]="{{ palette.success }}" C[PURPLE]="{{ palette.special }}" C[ALERT]="{{ ansi.bright.red }}" +# ----------------------------------------------------------------------------- +# 1b) PLUGIN COLORS +# ----------------------------------------------------------------------------- +# zsh-autosuggestions: ghost text from history (subtle, intentionally dim) +ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE="fg={{ ui.dim }}" + +# zsh-history-substring-search +HISTORY_SUBSTRING_SEARCH_HIGHLIGHT_FOUND="fg={{ palette.info }},bold" +HISTORY_SUBSTRING_SEARCH_HIGHLIGHT_NOT_FOUND="fg={{ ansi.bright.red }},bold" + # ----------------------------------------------------------------------------- # 2) ICONS / GLYPHS (Nerd Font optional) # -----------------------------------------------------------------------------