collapse theme-file vs. theme-preset, plug all theme selection paths into picking that single string, plug theme lister in

This commit is contained in:
Ryan Fleury
2025-05-02 16:13:39 -07:00
parent 6c2cf98ea6
commit f7ae0a1b47
3 changed files with 291 additions and 303 deletions
File diff suppressed because one or more lines are too long
+248 -254
View File
@@ -237,10 +237,7 @@ RD_VocabTable:
'code_font': string, 'code_font': string,
//- rjf: theme //- rjf: theme
@no_expand @display_name('User Theme Preset') @description("The selected built-in theme preset.") @no_expand 'theme': string,
'theme_preset': string,
@no_expand @no_expand @display_name('User Theme File') @description("The path from which theme data is loaded, overriding the preset.")
'theme_file': path,
@display_name('User Theme') @description("The user's theme, which describes all colors used throughout the UI.") @display_name('User Theme') @description("The user's theme, which describes all colors used throughout the UI.")
'theme_colors': query, 'theme_colors': query,
@@ -291,10 +288,7 @@ RD_VocabTable:
@default(2) @display_name('Project Tab Width') 'tab_width': @range[1, 32] u64, @default(2) @display_name('Project Tab Width') 'tab_width': @range[1, 32] u64,
//- rjf: theme //- rjf: theme
@no_expand @display_name('Project Theme Preset') @description("The selected built-in project theme preset.") @no_expand 'theme': string,
'theme_preset': string,
@no_expand @display_name('Project Theme File') @description("The path from which project's theme data is loaded, overriding the preset.")
'theme_file': path,
@display_name('Project Theme') @description("The project's theme, which describes all colors used throughout the UI, and can override the user's theme.") @display_name('Project Theme') @description("The project's theme, which describes all colors used throughout the UI, and can override the user's theme.")
'theme_colors': query, 'theme_colors': query,
@@ -982,7 +976,7 @@ RD_CmdTable: // | | | |
{AddFilePathMap 0 0 0 0 "" Null null Nil Null 0 0 0 0 0 0 0 FileOutline "add_file_path_map" "Add File Path Map" "Adds a new file path map." "" "" } {AddFilePathMap 0 0 0 0 "" Null null Nil Null 0 0 0 0 0 0 0 FileOutline "add_file_path_map" "Add File Path Map" "Adds a new file path map." "" "" }
//- rjf: themes //- rjf: themes
{OpenTheme 0 0 0 0 `folder:\\"$input\\"` FilePath null Nil Null 1 0 0 0 0 1 1 Palette "open_theme" "Open Theme" "Opens a theme file." "color" "" } {OpenTheme 0 0 0 0 "query:themes" String null Nil Null 1 0 0 0 0 1 1 Palette "open_theme" "Open Theme" "Opens a theme." "color" "" }
{AddThemeColor 0 0 0 0 "" Null null Nil Null 0 0 0 0 0 0 0 Palette "add_theme_color" "Add Theme Color" "Adds a new theme color." "" "" } {AddThemeColor 0 0 0 0 "" Null null Nil Null 0 0 0 0 0 0 0 Palette "add_theme_color" "Add Theme Color" "Adds a new theme color." "" "" }
{ForkLoadedTheme 0 0 0 0 "" Null null Nil Null 0 0 0 0 0 0 0 Palette "fork_loaded_theme" "Fork Loaded Theme" "Imports all colors from the loaded color theme file or color theme preset, so they can be individually edited." "" "" } {ForkLoadedTheme 0 0 0 0 "" Null null Nil Null 0 0 0 0 0 0 0 Palette "fork_loaded_theme" "Fork Loaded Theme" "Imports all colors from the loaded color theme file or color theme preset, so they can be individually edited." "" "" }
{SaveTheme 0 0 0 0 "" String null Nil Null 1 0 0 0 0 1 1 Save "save_theme" "Save Theme" "Saves all theme colors to a new theme file." "" "" } {SaveTheme 0 0 0 0 "" String null Nil Null 1 0 0 0 0 1 1 Save "save_theme" "Save Theme" "Saves all theme colors to a new theme file." "" "" }
@@ -1456,95 +1450,95 @@ RD_ThemePresetTable:
{ DefaultLight default_light "Default (Light)", { DefaultLight default_light "Default (Light)",
```theme: ```theme:
{ {
theme_color:{ tags: background value: 0xffffffff } theme_color:{ tags: background , value: 0xffffffff }
theme_color:{ tags: "alt background" value: 0xf8f8f8ff } theme_color:{ tags: "alt background" , value: 0xf8f8f8ff }
theme_color:{ tags: "pop background" value: 0xcbe4f2ff } theme_color:{ tags: "pop background" , value: 0xcbe4f2ff }
theme_color:{ tags: "menu_bar pop background" value: 0x5aabd9ff } theme_color:{ tags: "menu_bar pop background" , value: 0x5aabd9ff }
theme_color:{ tags: "fresh background" value: 0xeaddceff } theme_color:{ tags: "fresh background" , value: 0xeaddceff }
theme_color:{ tags: "match background" value: 0xc1e9c4ff } theme_color:{ tags: "match background" , value: 0xc1e9c4ff }
theme_color:{ tags: border value: 0xcbcbcbff } theme_color:{ tags: border , value: 0xcbcbcbff }
theme_color:{ tags: text value: 0xff } theme_color:{ tags: text , value: 0xff }
theme_color:{ tags: "weak text" value: 0x727272ff } theme_color:{ tags: "weak text" , value: 0x727272ff }
theme_color:{ tags: "good text" value: 0x217538ff } theme_color:{ tags: "good text" , value: 0x217538ff }
theme_color:{ tags: "neutral text" value: 0x1a5b7cff } theme_color:{ tags: "neutral text" , value: 0x1a5b7cff }
theme_color:{ tags: "bad text" value: 0x972717ff } theme_color:{ tags: "bad text" , value: 0x972717ff }
theme_color:{ tags: hover value: 0xff } theme_color:{ tags: hover , value: 0xff }
theme_color:{ tags: "focus overlay" value: 0x67ff4b } theme_color:{ tags: "focus overlay" , value: 0x67ff4b }
theme_color:{ tags: "focus border" value: 0x67ffff } theme_color:{ tags: "focus border" , value: 0x67ffff }
theme_color:{ tags: cursor value: 0xff } theme_color:{ tags: cursor , value: 0xff }
theme_color:{ tags: selection value: 0x283d5166 } theme_color:{ tags: selection , value: 0x283d5166 }
theme_color:{ tags: "inactive background" value: 0x8 } theme_color:{ tags: "inactive background" , value: 0x8 }
theme_color:{ tags: drop_shadow value: 0xb } theme_color:{ tags: drop_shadow , value: 0xb }
theme_color:{ tags: "good_pop background" value: 0x90c09aff } theme_color:{ tags: "good_pop background" , value: 0x90c09aff }
theme_color:{ tags: "good_pop border" value: 0x1e7231ff } theme_color:{ tags: "good_pop border" , value: 0x1e7231ff }
theme_color:{ tags: "good_pop hover" value: 0xe3f5d3ff } theme_color:{ tags: "good_pop hover" , value: 0xe3f5d3ff }
theme_color:{ tags: "good_pop weak text" value: 0xe3f5d3ff } theme_color:{ tags: "good_pop weak text" , value: 0xe3f5d3ff }
theme_color:{ tags: "good_pop text" value: 0xe3f5d3ff } theme_color:{ tags: "good_pop text" , value: 0xe3f5d3ff }
theme_color:{ tags: "bad_pop background" value: 0xa93620ff } theme_color:{ tags: "bad_pop background" , value: 0xa93620ff }
theme_color:{ tags: "bad_pop text" value: 0xffffffff } theme_color:{ tags: "bad_pop text" , value: 0xffffffff }
theme_color:{ tags: "bad_pop text weak" value: 0xffffffff } theme_color:{ tags: "bad_pop text weak" , value: 0xffffffff }
theme_color:{ tags: "menu_bar bad_pop background" value: 0xff2a00ff } theme_color:{ tags: "menu_bar bad_pop background" , value: 0xff2a00ff }
theme_color:{ tags: "menu_bar bad_pop text" value: 0xffffffff } theme_color:{ tags: "menu_bar bad_pop text" , value: 0xffffffff }
theme_color:{ tags: "bad_pop hover" value: 0xff825cff } theme_color:{ tags: "bad_pop hover" , value: 0xff825cff }
theme_color:{ tags: code_default value: 0x80808ff } theme_color:{ tags: code_default , value: 0x80808ff }
theme_color:{ tags: code_symbol value: 0x4ac3ff } theme_color:{ tags: code_symbol , value: 0x4ac3ff }
theme_color:{ tags: code_type value: 0xf46200ff } theme_color:{ tags: code_type , value: 0xf46200ff }
theme_color:{ tags: code_local value: 0x317c00ff } theme_color:{ tags: code_local , value: 0x317c00ff }
theme_color:{ tags: code_register value: 0x9a00ffff } theme_color:{ tags: code_register , value: 0x9a00ffff }
theme_color:{ tags: code_keyword value: 0xff0600ff } theme_color:{ tags: code_keyword , value: 0xff0600ff }
theme_color:{ tags: code_delimiter_or_operator value: 0x8a8a8aff } theme_color:{ tags: code_delimiter_or_operator , value: 0x8a8a8aff }
theme_color:{ tags: code_numeric value: 0x7d49ff } theme_color:{ tags: code_numeric , value: 0x7d49ff }
theme_color:{ tags: code_numeric_alt_digit_group value: 0xb56aff } theme_color:{ tags: code_numeric_alt_digit_group , value: 0xb56aff }
theme_color:{ tags: code_string value: 0x63549fff } theme_color:{ tags: code_string , value: 0x63549fff }
theme_color:{ tags: code_meta value: 0xd96759ff } theme_color:{ tags: code_meta , value: 0xd96759ff }
theme_color:{ tags: code_comment value: 0x717171ff } theme_color:{ tags: code_comment , value: 0x717171ff }
theme_color:{ tags: line_info_0 value: 0xe6d5cdff } theme_color:{ tags: line_info_0 , value: 0xe6d5cdff }
theme_color:{ tags: line_info_1 value: 0xdbcfb2ff } theme_color:{ tags: line_info_1 , value: 0xdbcfb2ff }
theme_color:{ tags: line_info_2 value: 0xddeac1ff } theme_color:{ tags: line_info_2 , value: 0xddeac1ff }
theme_color:{ tags: line_info_3 value: 0xddc4bdff } theme_color:{ tags: line_info_3 , value: 0xddc4bdff }
theme_color:{ tags: line_info_4 value: 0xba917eff } theme_color:{ tags: line_info_4 , value: 0xba917eff }
theme_color:{ tags: thread_0 value: 0xffa700ff } theme_color:{ tags: thread_0 , value: 0xffa700ff }
theme_color:{ tags: thread_1 value: 0xb41fff } theme_color:{ tags: thread_1 , value: 0xb41fff }
theme_color:{ tags: thread_2 value: 0xff99e5ff } theme_color:{ tags: thread_2 , value: 0xff99e5ff }
theme_color:{ tags: thread_3 value: 0x6598ffff } theme_color:{ tags: thread_3 , value: 0x6598ffff }
theme_color:{ tags: thread_4 value: 0x65ffcbff } theme_color:{ tags: thread_4 , value: 0x65ffcbff }
theme_color:{ tags: thread_5 value: 0xff9819ff } theme_color:{ tags: thread_5 , value: 0xff9819ff }
theme_color:{ tags: thread_6 value: 0x9932ffff } theme_color:{ tags: thread_6 , value: 0x9932ffff }
theme_color:{ tags: thread_7 value: 0x65ff4cff } theme_color:{ tags: thread_7 , value: 0x65ff4cff }
theme_color:{ tags: thread_unwound value: 0xb2ccd8ff } theme_color:{ tags: thread_unwound , value: 0xb2ccd8ff }
theme_color:{ tags: thread_error value: 0xb23219ff } theme_color:{ tags: thread_error , value: 0xb23219ff }
theme_color:{ tags: breakpoint value: 0xff2800ff } theme_color:{ tags: breakpoint , value: 0xff2800ff }
theme_color:{ tags: "floating background" value: 0xffffffc7 } theme_color:{ tags: "floating background" , value: 0xffffffc7 }
theme_color:{ tags: "floating background alt" value: 0x23 } theme_color:{ tags: "floating background alt" , value: 0x23 }
theme_color:{ tags: "floating background fresh" value: 0xeaddceff } theme_color:{ tags: "floating background fresh" , value: 0xeaddceff }
theme_color:{ tags: "floating border" value: 0x88888884 } theme_color:{ tags: "floating border" , value: 0x88888884 }
theme_color:{ tags: "scroll_bar background" value: 0xe9e9e9ff } theme_color:{ tags: "scroll_bar background" , value: 0xe9e9e9ff }
theme_color:{ tags: "scroll_bar border" value: 0x5f5f5f5f } theme_color:{ tags: "scroll_bar border" , value: 0x5f5f5f5f }
theme_color:{ tags: "floating scroll_bar background" value: 0xe9e9e9ff } theme_color:{ tags: "floating scroll_bar background" , value: 0xe9e9e9ff }
theme_color:{ tags: "floating scroll_bar border" value: 0x5f5f5f5f } theme_color:{ tags: "floating scroll_bar border" , value: 0x5f5f5f5f }
theme_color:{ tags: "menu_bar background" value: 0x2b6b9aff } theme_color:{ tags: "menu_bar background" , value: 0x2b6b9aff }
theme_color:{ tags: "menu_bar border" value: 0x4d } theme_color:{ tags: "menu_bar border" , value: 0x4d }
theme_color:{ tags: "menu_bar text" value: 0xffffffff } theme_color:{ tags: "menu_bar text" , value: 0xffffffff }
theme_color:{ tags: "menu_bar text weak" value: 0xffffffff } theme_color:{ tags: "menu_bar text weak" , value: 0xffffffff }
theme_color:{ tags: "good menu_bar text" value: 0x70db8dff } theme_color:{ tags: "good menu_bar text" , value: 0x70db8dff }
theme_color:{ tags: "bad menu_bar text" value: 0xffa79bff } theme_color:{ tags: "bad menu_bar text" , value: 0xffa79bff }
theme_color:{ tags: "neutral menu_bar text" value: 0xc4dbe7ff } theme_color:{ tags: "neutral menu_bar text" , value: 0xc4dbe7ff }
theme_color:{ tags: "implicit background" value: 0x00000000 } theme_color:{ tags: "implicit background" , value: 0x00000000 }
theme_color:{ tags: "implicit border" value: 0x00000000 } theme_color:{ tags: "implicit border" , value: 0x00000000 }
theme_color:{ tags: "hollow background" value: 0x00000000 } theme_color:{ tags: "hollow background" , value: 0x00000000 }
theme_color:{ tags: "hollow border" value: 0xffffff1f } theme_color:{ tags: "hollow border" , value: 0xffffff1f }
theme_color:{ tags: "tab text" value: 0xffffffff } theme_color:{ tags: "tab text" , value: 0xffffffff }
theme_color:{ tags: "tab text weak" value: 0xffffffff } theme_color:{ tags: "tab text weak" , value: 0xffffffff }
theme_color:{ tags: "tab background" value: 0xb67e48ff } theme_color:{ tags: "tab background" , value: 0xb67e48ff }
theme_color:{ tags: "tab border" value: 0x875b31ff } theme_color:{ tags: "tab border" , value: 0x875b31ff }
theme_color:{ tags: "tab inactive background" value: 0xcacacaff } theme_color:{ tags: "tab inactive background" , value: 0xcacacaff }
theme_color:{ tags: "tab inactive border" value: 0xb5b5b5ff } theme_color:{ tags: "tab inactive border" , value: 0xb5b5b5ff }
theme_color:{ tags: "tab auto background" value: 0xc41c69ff } theme_color:{ tags: "tab auto background" , value: 0xc41c69ff }
theme_color:{ tags: "tab auto border" value: 0x981039ff } theme_color:{ tags: "tab auto border" , value: 0x981039ff }
theme_color:{ tags: "tab auto inactive background" value: 0x9b88a3ff } theme_color:{ tags: "tab auto inactive background" , value: 0x9b88a3ff }
theme_color:{ tags: "tab auto inactive border" value: 0x373737ff } theme_color:{ tags: "tab auto inactive border" , value: 0x373737ff }
theme_color:{ tags: "drop_site background" value: 0xffffff05 } theme_color:{ tags: "drop_site background" , value: 0xffffff05 }
theme_color:{ tags: "drop_site border" value: 0xffffff0f } theme_color:{ tags: "drop_site border" , value: 0xffffff0f }
} }
``` ```
} }
@@ -1554,83 +1548,83 @@ RD_ThemePresetTable:
VSDark vs_dark "VS (Dark)", VSDark vs_dark "VS (Dark)",
```theme: ```theme:
{ {
theme_color:{ tags: background value: 0x1f1f1fff } theme_color:{ tags: background , value: 0x1f1f1fff }
theme_color:{ tags: "alt background" value: 0x222222ff } theme_color:{ tags: "alt background" , value: 0x222222ff }
theme_color:{ tags: "pop background" value: 0x383167ff } theme_color:{ tags: "pop background" , value: 0x383167ff }
theme_color:{ tags: "fresh background" value: 0x31393dff } theme_color:{ tags: "fresh background" , value: 0x31393dff }
theme_color:{ tags: "match background" value: 0x31393dff } theme_color:{ tags: "match background" , value: 0x31393dff }
theme_color:{ tags: border value: 0x404040ff } theme_color:{ tags: border , value: 0x404040ff }
theme_color:{ tags: text value: 0xe5e5e5ff } theme_color:{ tags: text , value: 0xe5e5e5ff }
theme_color:{ tags: "weak text" value: 0xa4a4a4ff } theme_color:{ tags: "weak text" , value: 0xa4a4a4ff }
theme_color:{ tags: "good text" value: 0x32a852ff } theme_color:{ tags: "good text" , value: 0x32a852ff }
theme_color:{ tags: "neutral text" value: 0x3a90bbff } theme_color:{ tags: "neutral text" , value: 0x3a90bbff }
theme_color:{ tags: "bad text" value: 0xcf5242ff } theme_color:{ tags: "bad text" , value: 0xcf5242ff }
theme_color:{ tags: hover value: 0xffffffff } theme_color:{ tags: hover , value: 0xffffffff }
theme_color:{ tags: "focus overlay" value: 0x7160e81e } theme_color:{ tags: "focus overlay" , value: 0x7160e81e }
theme_color:{ tags: "focus border" value: 0x7160e8ff } theme_color:{ tags: "focus border" , value: 0x7160e8ff }
theme_color:{ tags: cursor value: 0x8aff00ff } theme_color:{ tags: cursor , value: 0x8aff00ff }
theme_color:{ tags: selection value: 0x99ccff0f } theme_color:{ tags: selection , value: 0x99ccff0f }
theme_color:{ tags: "inactive background" value: 0x0000002f } theme_color:{ tags: "inactive background" , value: 0x0000002f }
theme_color:{ tags: drop_shadow value: 0x0000007f } theme_color:{ tags: drop_shadow , value: 0x0000007f }
theme_color:{ tags: "good_pop background" value: 0x2c5b36ff } theme_color:{ tags: "good_pop background" , value: 0x2c5b36ff }
theme_color:{ tags: "good_pop border" value: 0x568761ff } theme_color:{ tags: "good_pop border" , value: 0x568761ff }
theme_color:{ tags: "good_pop hover" value: 0xe3f5d3ff } theme_color:{ tags: "good_pop hover" , value: 0xe3f5d3ff }
theme_color:{ tags: "good_pop weak text" value: 0xe3f5d3ff } theme_color:{ tags: "good_pop weak text" , value: 0xe3f5d3ff }
theme_color:{ tags: "bad_pop background" value: 0x803425ff } theme_color:{ tags: "bad_pop background" , value: 0x803425ff }
theme_color:{ tags: "bad_pop hover" value: 0xff825cff } theme_color:{ tags: "bad_pop hover" , value: 0xff825cff }
theme_color:{ tags: code_default value: 0xe0e0e0ff } theme_color:{ tags: code_default , value: 0xe0e0e0ff }
theme_color:{ tags: code_symbol value: 0xdcdcaaff } theme_color:{ tags: code_symbol , value: 0xdcdcaaff }
theme_color:{ tags: code_type value: 0x4ec9b0ff } theme_color:{ tags: code_type , value: 0x4ec9b0ff }
theme_color:{ tags: code_local value: 0x9cdcfeff } theme_color:{ tags: code_local , value: 0x9cdcfeff }
theme_color:{ tags: code_register value: 0xb7afd5ff } theme_color:{ tags: code_register , value: 0xb7afd5ff }
theme_color:{ tags: code_keyword value: 0x569cd6ff } theme_color:{ tags: code_keyword , value: 0x569cd6ff }
theme_color:{ tags: code_delimiter_or_operator value: 0x767676ff } theme_color:{ tags: code_delimiter_or_operator , value: 0x767676ff }
theme_color:{ tags: code_numeric value: 0xb5cea8ff } theme_color:{ tags: code_numeric , value: 0xb5cea8ff }
theme_color:{ tags: code_numeric_alt_digit_group value: 0x7c986dff } theme_color:{ tags: code_numeric_alt_digit_group , value: 0x7c986dff }
theme_color:{ tags: code_string value: 0xd69d85ff } theme_color:{ tags: code_string , value: 0xd69d85ff }
theme_color:{ tags: code_meta value: 0x9b9b9bff } theme_color:{ tags: code_meta , value: 0x9b9b9bff }
theme_color:{ tags: code_comment value: 0x51a644ff } theme_color:{ tags: code_comment , value: 0x51a644ff }
theme_color:{ tags: line_info_0 value: 0x4f3022ff } theme_color:{ tags: line_info_0 , value: 0x4f3022ff }
theme_color:{ tags: line_info_1 value: 0x4f3e15ff } theme_color:{ tags: line_info_1 , value: 0x4f3e15ff }
theme_color:{ tags: line_info_2 value: 0x434e2aff } theme_color:{ tags: line_info_2 , value: 0x434e2aff }
theme_color:{ tags: line_info_3 value: 0x36241fff } theme_color:{ tags: line_info_3 , value: 0x36241fff }
theme_color:{ tags: line_info_4 value: 0x4f3022ff } theme_color:{ tags: line_info_4 , value: 0x4f3022ff }
theme_color:{ tags: line_info_5 value: 0x4f3e15ff } theme_color:{ tags: line_info_5 , value: 0x4f3e15ff }
theme_color:{ tags: line_info_6 value: 0x434e2aff } theme_color:{ tags: line_info_6 , value: 0x434e2aff }
theme_color:{ tags: line_info_7 value: 0x36241fff } theme_color:{ tags: line_info_7 , value: 0x36241fff }
theme_color:{ tags: thread_0 value: 0xffdc48ff } theme_color:{ tags: thread_0 , value: 0xffdc48ff }
theme_color:{ tags: thread_1 value: 0xb2ff65ff } theme_color:{ tags: thread_1 , value: 0xb2ff65ff }
theme_color:{ tags: thread_2 value: 0xff99e5ff } theme_color:{ tags: thread_2 , value: 0xff99e5ff }
theme_color:{ tags: thread_3 value: 0x6598ffff } theme_color:{ tags: thread_3 , value: 0x6598ffff }
theme_color:{ tags: thread_4 value: 0x65ffcbff } theme_color:{ tags: thread_4 , value: 0x65ffcbff }
theme_color:{ tags: thread_5 value: 0xff9819ff } theme_color:{ tags: thread_5 , value: 0xff9819ff }
theme_color:{ tags: thread_6 value: 0x9932ffff } theme_color:{ tags: thread_6 , value: 0x9932ffff }
theme_color:{ tags: thread_7 value: 0x65ff4cff } theme_color:{ tags: thread_7 , value: 0x65ff4cff }
theme_color:{ tags: thread_unwound value: 0xb2ccd8ff } theme_color:{ tags: thread_unwound , value: 0xb2ccd8ff }
theme_color:{ tags: thread_error value: 0xb23219ff } theme_color:{ tags: thread_error , value: 0xb23219ff }
theme_color:{ tags: breakpoint value: 0xa72911ff } theme_color:{ tags: breakpoint , value: 0xa72911ff }
theme_color:{ tags: "floating background" value: 0x1b1b1baf } theme_color:{ tags: "floating background" , value: 0x1b1b1baf }
theme_color:{ tags: "floating background alt" value: 0x0000005f } theme_color:{ tags: "floating background alt" , value: 0x0000005f }
theme_color:{ tags: "floating background fresh" value: 0x31393d5f } theme_color:{ tags: "floating background fresh" , value: 0x31393d5f }
theme_color:{ tags: "floating border" value: 0xbfbfbf1f } theme_color:{ tags: "floating border" , value: 0xbfbfbf1f }
theme_color:{ tags: "floating scroll_bar background" value: 0x3b3b3b5f } theme_color:{ tags: "floating scroll_bar background" , value: 0x3b3b3b5f }
theme_color:{ tags: "floating scroll_bar border" value: 0x5f5f5f5f } theme_color:{ tags: "floating scroll_bar border" , value: 0x5f5f5f5f }
theme_color:{ tags: "scroll_bar background" value: 0x2b2b2bff } theme_color:{ tags: "scroll_bar background" , value: 0x2b2b2bff }
theme_color:{ tags: "scroll_bar border" value: 0x3f3f3fff } theme_color:{ tags: "scroll_bar border" , value: 0x3f3f3fff }
theme_color:{ tags: "implicit background" value: 0x00000000 } theme_color:{ tags: "implicit background" , value: 0x00000000 }
theme_color:{ tags: "implicit border" value: 0x00000000 } theme_color:{ tags: "implicit border" , value: 0x00000000 }
theme_color:{ tags: "hollow background" value: 0x00000000 } theme_color:{ tags: "hollow background" , value: 0x00000000 }
theme_color:{ tags: "hollow border" value: 0xffffff1f } theme_color:{ tags: "hollow border" , value: 0xffffff1f }
theme_color:{ tags: "tab background" value: 0x333333ff } theme_color:{ tags: "tab background" , value: 0x333333ff }
theme_color:{ tags: "tab border" value: 0x7160e8ff } theme_color:{ tags: "tab border" , value: 0x7160e8ff }
theme_color:{ tags: "tab inactive background" value: 0x171717ff } theme_color:{ tags: "tab inactive background" , value: 0x171717ff }
theme_color:{ tags: "tab inactive border" value: 0x3e4c57ff } theme_color:{ tags: "tab inactive border" , value: 0x3e4c57ff }
theme_color:{ tags: "tab auto background" value: 0x3f386dff } theme_color:{ tags: "tab auto background" , value: 0x3f386dff }
theme_color:{ tags: "tab auto border" value: 0x7160e8ff } theme_color:{ tags: "tab auto border" , value: 0x7160e8ff }
theme_color:{ tags: "tab auto inactive background" value: 0x2f2633ff } theme_color:{ tags: "tab auto inactive background" , value: 0x2f2633ff }
theme_color:{ tags: "tab auto inactive border" value: 0x685073ff } theme_color:{ tags: "tab auto inactive border" , value: 0x685073ff }
theme_color:{ tags: "drop_site background" value: 0xffffff05 } theme_color:{ tags: "drop_site background" , value: 0xffffff05 }
theme_color:{ tags: "drop_site border" value: 0xffffff0f } theme_color:{ tags: "drop_site border" , value: 0xffffff0f }
} }
``` ```
} }
@@ -1646,85 +1640,85 @@ RD_ThemePresetTable:
{ Grove grove "Grove", { Grove grove "Grove",
```theme: ```theme:
{ {
theme_color:{ tags: background value: 0x1b1f22ff } theme_color:{ tags: background , value: 0x1b1f22ff }
theme_color:{ tags: "alt background" value: 0x232929ff } theme_color:{ tags: "alt background" , value: 0x232929ff }
theme_color:{ tags: "pop background" value: 0x2f4838ff } theme_color:{ tags: "pop background" , value: 0x2f4838ff }
theme_color:{ tags: "fresh background" value: 0x31393dff } theme_color:{ tags: "fresh background" , value: 0x31393dff }
theme_color:{ tags: "match background" value: 0x31393dff } theme_color:{ tags: "match background" , value: 0x31393dff }
theme_color:{ tags: border value: 0x485347ff } theme_color:{ tags: border , value: 0x485347ff }
theme_color:{ tags: text value: 0xffffffff } theme_color:{ tags: text , value: 0xffffffff }
theme_color:{ tags: "weak text" value: 0xa2a2a2ff } theme_color:{ tags: "weak text" , value: 0xa2a2a2ff }
theme_color:{ tags: "good text" value: 0x32a852ff } theme_color:{ tags: "good text" , value: 0x32a852ff }
theme_color:{ tags: "neutral text" value: 0x3a90bbff } theme_color:{ tags: "neutral text" , value: 0x3a90bbff }
theme_color:{ tags: "bad text" value: 0xcf5242ff } theme_color:{ tags: "bad text" , value: 0xcf5242ff }
theme_color:{ tags: hover value: 0xffffffff } theme_color:{ tags: hover , value: 0xffffffff }
theme_color:{ tags: "focus overlay" value: 0xfda20012 } theme_color:{ tags: "focus overlay" , value: 0xfda20012 }
theme_color:{ tags: "focus border" value: 0xfda200ff } theme_color:{ tags: "focus border" , value: 0xfda200ff }
theme_color:{ tags: cursor value: 0x8aff00ff } theme_color:{ tags: cursor , value: 0x8aff00ff }
theme_color:{ tags: selection value: 0x99ccff0f } theme_color:{ tags: selection , value: 0x99ccff0f }
theme_color:{ tags: "inactive background" value: 0x0 } theme_color:{ tags: "inactive background" , value: 0x0 }
theme_color:{ tags: drop_shadow value: 0x0000007f } theme_color:{ tags: drop_shadow , value: 0x0000007f }
theme_color:{ tags: "good_pop background" value: 0x2c5b36ff } theme_color:{ tags: "good_pop background" , value: 0x2c5b36ff }
theme_color:{ tags: "good_pop border" value: 0x568761ff } theme_color:{ tags: "good_pop border" , value: 0x568761ff }
theme_color:{ tags: "good_pop hover" value: 0xe3f5d3ff } theme_color:{ tags: "good_pop hover" , value: 0xe3f5d3ff }
theme_color:{ tags: "good_pop weak text" value: 0xe3f5d3ff } theme_color:{ tags: "good_pop weak text" , value: 0xe3f5d3ff }
theme_color:{ tags: "bad_pop background" value: 0x803425ff } theme_color:{ tags: "bad_pop background" , value: 0x803425ff }
theme_color:{ tags: "bad_pop hover" value: 0xff825cff } theme_color:{ tags: "bad_pop hover" , value: 0xff825cff }
theme_color:{ tags: code_default value: 0xad8b69ff } theme_color:{ tags: code_default , value: 0xad8b69ff }
theme_color:{ tags: code_symbol value: 0x87ad6aff } theme_color:{ tags: code_symbol , value: 0x87ad6aff }
theme_color:{ tags: code_type value: 0xb67474ff } theme_color:{ tags: code_type , value: 0xb67474ff }
theme_color:{ tags: code_local value: 0xe9bf95ff } theme_color:{ tags: code_local , value: 0xe9bf95ff }
theme_color:{ tags: code_register value: 0xa688b2ff } theme_color:{ tags: code_register , value: 0xa688b2ff }
theme_color:{ tags: code_keyword value: 0xe49e17ff } theme_color:{ tags: code_keyword , value: 0xe49e17ff }
theme_color:{ tags: code_delimiter_or_operator value: 0x795e43ff } theme_color:{ tags: code_delimiter_or_operator , value: 0x795e43ff }
theme_color:{ tags: code_numeric value: 0x98b19eff } theme_color:{ tags: code_numeric , value: 0x98b19eff }
theme_color:{ tags: code_numeric_alt_digit_group value: 0x688b71ff } theme_color:{ tags: code_numeric_alt_digit_group , value: 0x688b71ff }
theme_color:{ tags: code_string value: 0x98b19eff } theme_color:{ tags: code_string , value: 0x98b19eff }
theme_color:{ tags: code_meta value: 0xad5979ff } theme_color:{ tags: code_meta , value: 0xad5979ff }
theme_color:{ tags: code_comment value: 0x52675dff } theme_color:{ tags: code_comment , value: 0x52675dff }
theme_color:{ tags: line_info_0 value: 0x4f3022ff } theme_color:{ tags: line_info_0 , value: 0x4f3022ff }
theme_color:{ tags: line_info_1 value: 0x4f3e15ff } theme_color:{ tags: line_info_1 , value: 0x4f3e15ff }
theme_color:{ tags: line_info_2 value: 0x434e2aff } theme_color:{ tags: line_info_2 , value: 0x434e2aff }
theme_color:{ tags: line_info_3 value: 0x36241fff } theme_color:{ tags: line_info_3 , value: 0x36241fff }
theme_color:{ tags: line_info_4 value: 0x4f3022ff } theme_color:{ tags: line_info_4 , value: 0x4f3022ff }
theme_color:{ tags: line_info_5 value: 0x4f3e15ff } theme_color:{ tags: line_info_5 , value: 0x4f3e15ff }
theme_color:{ tags: line_info_6 value: 0x434e2aff } theme_color:{ tags: line_info_6 , value: 0x434e2aff }
theme_color:{ tags: line_info_7 value: 0x36241fff } theme_color:{ tags: line_info_7 , value: 0x36241fff }
theme_color:{ tags: thread_0 value: 0xffc258ff } theme_color:{ tags: thread_0 , value: 0xffc258ff }
theme_color:{ tags: thread_1 value: 0x82d331ff } theme_color:{ tags: thread_1 , value: 0x82d331ff }
theme_color:{ tags: thread_2 value: 0xff99e5ff } theme_color:{ tags: thread_2 , value: 0xff99e5ff }
theme_color:{ tags: thread_3 value: 0x6598ffff } theme_color:{ tags: thread_3 , value: 0x6598ffff }
theme_color:{ tags: thread_4 value: 0x65ffcbff } theme_color:{ tags: thread_4 , value: 0x65ffcbff }
theme_color:{ tags: thread_5 value: 0xff9819ff } theme_color:{ tags: thread_5 , value: 0xff9819ff }
theme_color:{ tags: thread_6 value: 0x9932ffff } theme_color:{ tags: thread_6 , value: 0x9932ffff }
theme_color:{ tags: thread_7 value: 0x65ff4cff } theme_color:{ tags: thread_7 , value: 0x65ff4cff }
theme_color:{ tags: thread_unwound value: 0xb2ccd8ff } theme_color:{ tags: thread_unwound , value: 0xb2ccd8ff }
theme_color:{ tags: thread_error value: 0xb23219ff } theme_color:{ tags: thread_error , value: 0xb23219ff }
theme_color:{ tags: breakpoint value: 0xa72911ff } theme_color:{ tags: breakpoint , value: 0xa72911ff }
theme_color:{ tags: "floating background" value: 0x1b1f2276 } theme_color:{ tags: "floating background" , value: 0x1b1f2276 }
theme_color:{ tags: "floating background alt" value: 0x0000005f } theme_color:{ tags: "floating background alt" , value: 0x0000005f }
theme_color:{ tags: "floating background fresh" value: 0x31393d5f } theme_color:{ tags: "floating background fresh" , value: 0x31393d5f }
theme_color:{ tags: "floating border" value: 0xbfbfbf1f } theme_color:{ tags: "floating border" , value: 0xbfbfbf1f }
theme_color:{ tags: "floating scroll_bar background" value: 0x3b3b3b5f } theme_color:{ tags: "floating scroll_bar background" , value: 0x3b3b3b5f }
theme_color:{ tags: "floating scroll_bar border" value: 0x5f5f5f5f } theme_color:{ tags: "floating scroll_bar border" , value: 0x5f5f5f5f }
theme_color:{ tags: "menu_bar background" value: 0x243d32ff } theme_color:{ tags: "menu_bar background" , value: 0x243d32ff }
theme_color:{ tags: "menu_bar border" value: 0x597b63ff } theme_color:{ tags: "menu_bar border" , value: 0x597b63ff }
theme_color:{ tags: "scroll_bar background" value: 0x232929ff } theme_color:{ tags: "scroll_bar background" , value: 0x232929ff }
theme_color:{ tags: "scroll_bar border" value: 0x3c4a3fff } theme_color:{ tags: "scroll_bar border" , value: 0x3c4a3fff }
theme_color:{ tags: "implicit background" value: 0x00000000 } theme_color:{ tags: "implicit background" , value: 0x00000000 }
theme_color:{ tags: "implicit border" value: 0x00000000 } theme_color:{ tags: "implicit border" , value: 0x00000000 }
theme_color:{ tags: "hollow background" value: 0x00000000 } theme_color:{ tags: "hollow background" , value: 0x00000000 }
theme_color:{ tags: "hollow border" value: 0xffffff1f } theme_color:{ tags: "hollow border" , value: 0xffffff1f }
theme_color:{ tags: "tab background" value: 0x243d32ff } theme_color:{ tags: "tab background" , value: 0x243d32ff }
theme_color:{ tags: "tab border" value: 0x597b63ff } theme_color:{ tags: "tab border" , value: 0x597b63ff }
theme_color:{ tags: "tab inactive background" value: 0x30383eff } theme_color:{ tags: "tab inactive background" , value: 0x30383eff }
theme_color:{ tags: "tab inactive border" value: 0x6b7680ff } theme_color:{ tags: "tab inactive border" , value: 0x6b7680ff }
theme_color:{ tags: "tab auto background" value: 0x30636dff } theme_color:{ tags: "tab auto background" , value: 0x30636dff }
theme_color:{ tags: "tab auto border" value: 0x768f94ff } theme_color:{ tags: "tab auto border" , value: 0x768f94ff }
theme_color:{ tags: "tab auto inactive background" value: 0x2f2633ff } theme_color:{ tags: "tab auto inactive background" , value: 0x2f2633ff }
theme_color:{ tags: "tab auto inactive border" value: 0x685073ff } theme_color:{ tags: "tab auto inactive border" , value: 0x685073ff }
theme_color:{ tags: "drop_site background" value: 0xffffff05 } theme_color:{ tags: "drop_site background" , value: 0xffffff05 }
theme_color:{ tags: "drop_site border" value: 0xffffff0f } theme_color:{ tags: "drop_site border" , value: 0xffffff0f }
} }
``` ```
} }
+27 -33
View File
@@ -3307,6 +3307,11 @@ rd_view_ui(Rng2F32 rect)
String8 cmd_name = rd_cmd_name_from_eval(eval); String8 cmd_name = rd_cmd_name_from_eval(eval);
rd_cmd(RD_CmdKind_CompleteQuery, .cmd_name = cmd_name); rd_cmd(RD_CmdKind_CompleteQuery, .cmd_name = cmd_name);
}break; }break;
case RD_EvalSpaceKind_MetaTheme:
{
String8 name = e_string_from_id(eval.value.u64);
rd_cmd(RD_CmdKind_CompleteQuery, .string = name);
}break;
} }
// rjf: if we do not have a specific command, then we can just // rjf: if we do not have a specific command, then we can just
@@ -5754,11 +5759,8 @@ rd_window_frame(void)
{ {
HS_Scope *hs_scope = hs_scope_open(); HS_Scope *hs_scope = hs_scope_open();
//- rjf: for this window, scan upwards, and then try the project, then the user, until we //- rjf: try to find theme settings from the project, then the user.
// find explicit preset / colors trees in the config. we will prefer the tightest ones, so RD_Cfg *theme_cfg = &rd_nil_cfg;
// that windows can have their own colors, and have those override higher-up settings.
RD_Cfg *preset_cfg = &rd_nil_cfg;
RD_Cfg *file_cfg = &rd_nil_cfg;
RD_CfgList colors_cfgs = {0}; RD_CfgList colors_cfgs = {0};
RD_Cfg *theme_parents[] = RD_Cfg *theme_parents[] =
{ {
@@ -5774,20 +5776,12 @@ rd_window_frame(void)
for EachIndex(idx, theme_parents_count) for EachIndex(idx, theme_parents_count)
{ {
RD_Cfg *parent_cfg = theme_parents[idx]; RD_Cfg *parent_cfg = theme_parents[idx];
if(preset_cfg == &rd_nil_cfg) if(theme_cfg == &rd_nil_cfg)
{ {
RD_Cfg *possible_preset_cfg = rd_cfg_child_from_string(parent_cfg, str8_lit("theme_preset")); RD_Cfg *possible_theme_cfg = rd_cfg_child_from_string(parent_cfg, str8_lit("theme"));
if(possible_preset_cfg != &rd_nil_cfg) if(possible_theme_cfg != &rd_nil_cfg)
{ {
preset_cfg = possible_preset_cfg; theme_cfg = possible_theme_cfg;
}
}
if(file_cfg == &rd_nil_cfg)
{
RD_Cfg *possible_file_cfg = rd_cfg_child_from_string(parent_cfg, str8_lit("theme_file"));
if(possible_file_cfg != &rd_nil_cfg)
{
file_cfg = possible_file_cfg;
} }
} }
for(RD_Cfg *child = parent_cfg->first; child != &rd_nil_cfg; child = child->next) for(RD_Cfg *child = parent_cfg->first; child != &rd_nil_cfg; child = child->next)
@@ -5799,26 +5793,24 @@ rd_window_frame(void)
} }
} }
//- rjf: map the preset config to the associated preset tree //- rjf: map the theme config to the associated tree (either from a preset, or from a file)
MD_Node *preset_tree = rd_state->theme_preset_trees[RD_ThemePreset_DefaultDark]; MD_Node *theme_tree = rd_state->theme_preset_trees[RD_ThemePreset_DefaultDark];
if(preset_cfg != &rd_nil_cfg) if(theme_cfg != &rd_nil_cfg)
{
String8 theme_name = theme_cfg->first->string;
if(theme_name.size != 0)
{ {
String8 preset_name = preset_cfg->first->string;
for EachEnumVal(RD_ThemePreset, p) for EachEnumVal(RD_ThemePreset, p)
{ {
if(str8_match(preset_name, rd_theme_preset_code_string_table[p], 0)) if(str8_match(theme_name, rd_theme_preset_display_string_table[p], 0))
{ {
preset_tree = rd_state->theme_preset_trees[p]; theme_tree = rd_state->theme_preset_trees[p];
break; break;
} }
} }
} if(theme_tree == &md_nil_node)
//- rjf: map the file config to the associated theme file parse
MD_Node *file_tree = &md_nil_node;
if(file_cfg != &rd_nil_cfg)
{ {
String8 path = file_cfg->first->string; String8 path = push_str8f(scratch.arena, "%S/raddbg/themes/%S", os_get_process_info()->user_program_data_path, theme_name);
U64 endt_us = os_now_microseconds()+100; U64 endt_us = os_now_microseconds()+100;
if(ws->frames_alive == 0) if(ws->frames_alive == 0)
{ {
@@ -5826,7 +5818,9 @@ rd_window_frame(void)
} }
U128 hash = fs_hash_from_path_range(path, r1u64(0, max_U64), endt_us); U128 hash = fs_hash_from_path_range(path, r1u64(0, max_U64), endt_us);
String8 data = hs_data_from_hash(hs_scope, hash); String8 data = hs_data_from_hash(hs_scope, hash);
file_tree = md_tree_from_string(scratch.arena, data); theme_tree = md_tree_from_string(scratch.arena, data);
}
}
} }
//- rjf: build tasks for color applications - each task comprises of a metadesk //- rjf: build tasks for color applications - each task comprises of a metadesk
@@ -5837,7 +5831,7 @@ rd_window_frame(void)
ThemeTask *next; ThemeTask *next;
MD_Node *tree; MD_Node *tree;
}; };
ThemeTask start_task = {0, !md_node_is_nil(file_tree) ? file_tree : preset_tree}; ThemeTask start_task = {0, theme_tree};
ThemeTask *first_task = &start_task; ThemeTask *first_task = &start_task;
ThemeTask *last_task = first_task; ThemeTask *last_task = first_task;
{ {
@@ -14666,8 +14660,8 @@ rd_frame(void)
case RD_CmdKind_OpenTheme: case RD_CmdKind_OpenTheme:
{ {
RD_Cfg *user = rd_cfg_child_from_string(rd_state->root_cfg, str8_lit("user")); RD_Cfg *user = rd_cfg_child_from_string(rd_state->root_cfg, str8_lit("user"));
RD_Cfg *theme_file = rd_cfg_child_from_string_or_alloc(user, str8_lit("theme_file")); RD_Cfg *theme = rd_cfg_child_from_string_or_alloc(user, str8_lit("theme"));
rd_cfg_new_replace(theme_file, rd_regs()->file_path); rd_cfg_new_replace(theme, rd_regs()->string);
}break; }break;
case RD_CmdKind_AddThemeColor: case RD_CmdKind_AddThemeColor:
{ {