From 95b66115c4d83ea83bab96bf2f2074ea6910e005 Mon Sep 17 00:00:00 2001 From: Leroy Hopson Date: Tue, 23 Aug 2022 23:58:24 +1200 Subject: [PATCH] Update/deprecate theme item names Updates theme names to be compatible with Godot 3.5 (no spaces), consistent with other Godot theme item names (snake_case), and match the color names listed on the [ANSI escape code wikipedia page](https://en.wikipedia.org/wiki/ANSI_escape_code#3-bit_and_4-bit). Deprecates the old names and warns users to change them. --- .../terminal/editor_terminal.gd | 36 +++--- .../editor_plugins/terminal/terminal_panel.gd | 2 +- .../import_plugins/xrdb_import_plugin.gd | 48 ++++---- addons/godot_xterm/native/src/terminal.cpp | 71 +++++------ addons/godot_xterm/terminal.gd | 34 +++++- addons/godot_xterm/themes/default.tres | 44 +++---- addons/godot_xterm/themes/default_light.tres | 44 +++---- addons/godot_xterm/themes/font_only.tres | 8 +- addons/gut/gut_cmdln.gd | 2 +- docs/CHANGELOG.md | 30 +++++ test/files/deprecated_theme.tres | 28 +++++ .../xrdb/xrdb_import_plugin.test.gd | 114 +++++++++--------- test/integration/terminal.test.gd | 60 ++++----- themes/default.tres | 44 +++---- themes/retro_green.tres | 44 +++---- 15 files changed, 349 insertions(+), 260 deletions(-) create mode 100644 test/files/deprecated_theme.tres diff --git a/addons/godot_xterm/editor_plugins/terminal/editor_terminal.gd b/addons/godot_xterm/editor_plugins/terminal/editor_terminal.gd index 558a1f3..ec82d90 100644 --- a/addons/godot_xterm/editor_plugins/terminal/editor_terminal.gd +++ b/addons/godot_xterm/editor_plugins/terminal/editor_terminal.gd @@ -28,24 +28,24 @@ func _ready(): # better to use a dedicated terminal theme, rather than relying on this. _set_terminal_colors( { - "Black": "caret_background_color", - "Red": "keyword_color", - "Green": "gdscript/node_path_color", - "Yellow": "string_color", - "Blue": "function_color", - "Magenta": "symbol_color", - "Cyan": "gdscript/function_definition_color", - "Dark Grey": "comment_color", - "Light Grey": "text_color", - "Light Red": "breakpoint_color", - "Light Green": "base_type_color", - "Light Yellow": "search_result_color", - "Light Blue": "member_variable_color", - "Light Magenta": "code_folding_color", - "Light Cyan": "user_type_color", - "White": "text_selected_color", - "Background": "background_color", - "Foreground": "caret_color", + "black": "caret_background_color", + "red": "keyword_color", + "green": "gdscript/node_path_color", + "yellow": "string_color", + "blue": "function_color", + "magenta": "symbol_color", + "cyan": "gdscript/function_definition_color", + "white": "text_color", + "bright_black": "comment_color", + "bright_red": "breakpoint_color", + "bright_green": "base_type_color", + "bright_yellow": "search_result_color", + "bright_blue": "member_variable_color", + "bright_magenta": "code_folding_color", + "bright_cyan": "user_type_color", + "bright_white": "text_selected_color", + "background": "background_color", + "foreground": "caret_color", } ) _native_terminal._update_theme() diff --git a/addons/godot_xterm/editor_plugins/terminal/terminal_panel.gd b/addons/godot_xterm/editor_plugins/terminal/terminal_panel.gd index 37966d7..1f872ed 100644 --- a/addons/godot_xterm/editor_plugins/terminal/terminal_panel.gd +++ b/addons/godot_xterm/editor_plugins/terminal/terminal_panel.gd @@ -47,7 +47,7 @@ var _tab_container_min_size func _ready(): - tab_container.add_stylebox_override("panel", get_stylebox("Background", "EditorStyles")) + tab_container.add_stylebox_override("panel", get_stylebox("background", "EditorStyles")) _update_settings() diff --git a/addons/godot_xterm/import_plugins/xrdb_import_plugin.gd b/addons/godot_xterm/import_plugins/xrdb_import_plugin.gd index 28401f0..96e5726 100644 --- a/addons/godot_xterm/import_plugins/xrdb_import_plugin.gd +++ b/addons/godot_xterm/import_plugins/xrdb_import_plugin.gd @@ -39,8 +39,8 @@ func import(source_file, save_path, options, r_platform_variant, r_gen_files): return err var theme: Theme = XrdbTheme.new() - theme.set_font("Regular", "Terminal", preload("../themes/fonts/regular.tres")) - for font in ["Bold", "Italic", "Bold Italic"]: + theme.set_font("regular", "Terminal", preload("../themes/fonts/regular.tres")) + for font in ["bold", "italic", "bold_italic"]: theme.set_font(font, "Terminal", null) var word_regex = RegEx.new() @@ -77,48 +77,48 @@ func import(source_file, save_path, options, r_platform_variant, r_gen_files): match name: "color0", "ansi_0_color": - theme.set_color("Black", "Terminal", color) + theme.set_color("black", "Terminal", color) "color1", "ansi_1_color": - theme.set_color("Red", "Terminal", color) + theme.set_color("red", "Terminal", color) "color2", "ansi_2_color": - theme.set_color("Green", "Terminal", color) + theme.set_color("green", "Terminal", color) "color3", "ansi_3_color": - theme.set_color("Yellow", "Terminal", color) + theme.set_color("yellow", "Terminal", color) "color4", "ansi_4_color": - theme.set_color("Blue", "Terminal", color) + theme.set_color("blue", "Terminal", color) "color5", "ansi_5_color": - theme.set_color("Magenta", "Terminal", color) + theme.set_color("magenta", "Terminal", color) "color6", "ansi_6_color": - theme.set_color("Cyan", "Terminal", color) + theme.set_color("cyan", "Terminal", color) "color7", "ansi_7_color": - theme.set_color("Light Grey", "Terminal", color) + theme.set_color("white", "Terminal", color) "color8", "ansi_8_color": - theme.set_color("Dark Grey", "Terminal", color) + theme.set_color("bright_black", "Terminal", color) "color9", "ansi_9_color": - theme.set_color("Light Red", "Terminal", color) + theme.set_color("bright_red", "Terminal", color) "color10", "ansi_10_color": - theme.set_color("Light Green", "Terminal", color) + theme.set_color("bright_green", "Terminal", color) "color11", "ansi_11_color": - theme.set_color("Light Yellow", "Terminal", color) + theme.set_color("bright_yellow", "Terminal", color) "color12", "ansi_12_color": - theme.set_color("Light Blue", "Terminal", color) + theme.set_color("bright_blue", "Terminal", color) "color13", "ansi_13_color": - theme.set_color("Light Magenta", "Terminal", color) + theme.set_color("bright_magenta", "Terminal", color) "color14", "ansi_14_color": - theme.set_color("Light Cyan", "Terminal", color) + theme.set_color("bright_cyan", "Terminal", color) "color15", "ansi_15_color": - theme.set_color("White", "Terminal", color) + theme.set_color("bright_white", "Terminal", color) "foreground", "foreground_color": - theme.set_color("Foreground", "Terminal", color) + theme.set_color("foreground", "Terminal", color) "background", "background_color": - theme.set_color("Background", "Terminal", color) + theme.set_color("background", "Terminal", color) "selection_color": - theme.set_color("Selection", "Terminal", color) + theme.set_color("selection", "Terminal", color) "selected_text_color": - theme.set_color("Selected Text", "Terminal", color) + theme.set_color("selected_text", "Terminal", color) "cursorcolor", "cursor_color": - theme.set_color("Cursor", "Terminal", color) + theme.set_color("cursor", "Terminal", color) "cursor_text_color": - theme.set_color("Cursor Text", "Terminal", color) + theme.set_color("cursor_text", "Terminal", color) return ResourceSaver.save("%s.%s" % [save_path, get_save_extension()], theme) diff --git a/addons/godot_xterm/native/src/terminal.cpp b/addons/godot_xterm/native/src/terminal.cpp index 7084e8d..16d060e 100644 --- a/addons/godot_xterm/native/src/terminal.cpp +++ b/addons/godot_xterm/native/src/terminal.cpp @@ -435,43 +435,46 @@ void Terminal::update_theme() { /* Default to Xterm colors */ /* ANSI 0 */ - set_pallete_color(TSM_COLOR_BLACK, "Black", Color::html("#000000")); + set_pallete_color(TSM_COLOR_BLACK, "black", Color::html("#000000")); /* ANSI 1 */ - set_pallete_color(TSM_COLOR_RED, "Red", Color::html("#CD0000")); + set_pallete_color(TSM_COLOR_RED, "red", Color::html("#CD0000")); /* ANSI 2 */ - set_pallete_color(TSM_COLOR_GREEN, "Green", Color::html("#00CD00")); + set_pallete_color(TSM_COLOR_GREEN, "green", Color::html("#00CD00")); /* ANSI 3 */ - set_pallete_color(TSM_COLOR_YELLOW, "Yellow", Color::html("#CDCD00")); + set_pallete_color(TSM_COLOR_YELLOW, "yellow", Color::html("#CDCD00")); /* ANSI 4 */ - set_pallete_color(TSM_COLOR_BLUE, "Blue", Color::html("#0000EE")); + set_pallete_color(TSM_COLOR_BLUE, "blue", Color::html("#0000EE")); /* ANSI 5 */ - set_pallete_color(TSM_COLOR_MAGENTA, "Magenta", Color::html("#CD00CD")); + set_pallete_color(TSM_COLOR_MAGENTA, "magenta", Color::html("#CD00CD")); /* ANSI 6 */ - set_pallete_color(TSM_COLOR_CYAN, "Cyan", Color::html("#00CDCD")); + set_pallete_color(TSM_COLOR_CYAN, "cyan", Color::html("#00CDCD")); /* ANSI 7 (White) */ - set_pallete_color(TSM_COLOR_LIGHT_GREY, "Light Grey", Color::html("#E5E5E5")); + set_pallete_color(TSM_COLOR_LIGHT_GREY, "white", Color::html("#E5E5E5")); /* ANSI 8 (Bright Black) */ - set_pallete_color(TSM_COLOR_DARK_GREY, "Dark Grey", Color::html("#7F7F7F")); + set_pallete_color(TSM_COLOR_DARK_GREY, "bright_black", + Color::html("#7F7F7F")); /* ANSI 9 */ - set_pallete_color(TSM_COLOR_LIGHT_RED, "Light Red", Color::html("#FF0000")); + set_pallete_color(TSM_COLOR_LIGHT_RED, "bright_red", Color::html("#FF0000")); /* ANSI 10 */ - set_pallete_color(TSM_COLOR_LIGHT_GREEN, "Light Green", + set_pallete_color(TSM_COLOR_LIGHT_GREEN, "bright_green", Color::html("#00FF00")); /* ANSI 11 */ - set_pallete_color(TSM_COLOR_LIGHT_YELLOW, "Light Yellow", + set_pallete_color(TSM_COLOR_LIGHT_YELLOW, "bright_yellow", Color::html("#FFFF00")); /* ANSI 12 */ - set_pallete_color(TSM_COLOR_LIGHT_BLUE, "Light Blue", Color::html("#0000FC")); + set_pallete_color(TSM_COLOR_LIGHT_BLUE, "bright_blue", + Color::html("#0000FC")); /* ANSI 13 */ - set_pallete_color(TSM_COLOR_LIGHT_MAGENTA, "Light Magenta", + set_pallete_color(TSM_COLOR_LIGHT_MAGENTA, "bright_magenta", Color::html("#FF00FF")); /* ANSI 14 */ - set_pallete_color(TSM_COLOR_LIGHT_CYAN, "Light Cyan", Color::html("#00FFFF")); + set_pallete_color(TSM_COLOR_LIGHT_CYAN, "bright_cyan", + Color::html("#00FFFF")); /* ANSI 15 (Bright White) */ - set_pallete_color(TSM_COLOR_WHITE, "White", Color::html("#FFFFFF")); + set_pallete_color(TSM_COLOR_WHITE, "bright_white", Color::html("#FFFFFF")); - set_pallete_color(TSM_COLOR_FOREGROUND, "Foreground", Color::html("#000000")); - set_pallete_color(TSM_COLOR_BACKGROUND, "Background", Color::html("#FFFFFF")); + set_pallete_color(TSM_COLOR_FOREGROUND, "foreground", Color::html("#000000")); + set_pallete_color(TSM_COLOR_BACKGROUND, "background", Color::html("#FFFFFF")); if (tsm_vte_set_custom_palette(vte, color_palette)) { ERR_PRINT("Error setting custom palette"); @@ -489,11 +492,11 @@ void Terminal::update_theme() { fontref = get_font(font_style, "Terminal"); } else if (has_font_override(font_style)) { fontref = get_font(font_style, ""); - } else if (has_font("Regular", "Terminal")) { - fontref = get_font("Regular", "Terminal"); + } else if (has_font("regular", "Terminal")) { + fontref = get_font("regular", "Terminal"); } else if (default_theme != nullptr && - default_theme->has_font("Regular", "Terminal")) { - fontref = default_theme->get_font("Regular", "Terminal"); + default_theme->has_font("regular", "Terminal")) { + fontref = default_theme->get_font("regular", "Terminal"); } else { fontref = get_font(""); } @@ -501,10 +504,10 @@ void Terminal::update_theme() { fontmap.insert(std::pair>(font_style, fontref)); }; - load_font("Bold Italic"); - load_font("Bold"); - load_font("Italic"); - load_font("Regular"); + load_font("bold_italic"); + load_font("bold"); + load_font("italic"); + load_font("regular"); // update_size(); } @@ -523,13 +526,13 @@ void Terminal::draw_foreground(int row, int col, char *ch, Ref fontref = get_font(""); if (attr->bold && attr->italic) { - fontref = fontmap["Bold Italic"]; + fontref = fontmap["bold_italic"]; } else if (attr->bold) { - fontref = fontmap["Bold"]; + fontref = fontmap["bold"]; } else if (attr->italic) { - fontref = fontmap["Italic"]; + fontref = fontmap["italic"]; } else { - fontref = fontmap["Regular"]; + fontref = fontmap["regular"]; } /* Draw the foreground */ @@ -591,10 +594,10 @@ void Terminal::update_size() { // the Control's rect_size. Ref fontref; - if (fontmap.count("Regular")) - fontref = fontmap["Regular"]; - else if (has_font("Regular", "Terminal")) - fontref = get_font("Regular", "Terminal"); + if (fontmap.count("regular")) + fontref = fontmap["regular"]; + else if (has_font("regular", "Terminal")) + fontref = get_font("regular", "Terminal"); else fontref = get_font(""); diff --git a/addons/godot_xterm/terminal.gd b/addons/godot_xterm/terminal.gd index 5340bf4..cd5e34c 100644 --- a/addons/godot_xterm/terminal.gd +++ b/addons/godot_xterm/terminal.gd @@ -175,22 +175,50 @@ func _update_theme(): # inheritance to work we can pass through the theme variables manually. for color in _default_theme.get_color_list("Terminal"): var c: Color + + var deprecated_color: String = color.replace("bright", "light").replace("_", " ").capitalize() + match deprecated_color: + "White": + deprecated_color = "Light Grey" + "Light Black": + deprecated_color = "Dark Grey" + "Light White": + deprecated_color = "Wahite" + if has_color(color, "Terminal"): c = get_color(color, "Terminal") + elif has_color(deprecated_color, "Terminal"): + push_warning( + ( + "Color name '%s' is deprecated and will be removed it a future version. Use the name '%s' instead." + % [deprecated_color, color] + ) + ) + c = get_color(deprecated_color, "Terminal") else: c = _default_theme.get_color(color, "Terminal") _native_terminal.add_color_override(color, c) for font in _default_theme.get_font_list("Terminal"): var f: Font + var deprecated_font: String = font.replace("_", " ").capitalize() + if has_font(font, "Terminal"): f = get_font(font, "Terminal") - elif has_font("Regular", "Terminal"): - f = get_font("Regular", "Terminal") + elif has_font(deprecated_font, "Terminal"): + push_warning( + ( + "Font name '%s' is deprecated and will be removed in a future version. Use the name '%s' instead." + % [deprecated_font, font] + ) + ) + f = get_font(deprecated_font, "Terminal") + elif has_font("regular", "Terminal"): + f = get_font("regular", "Terminal") else: if _default_theme.has_font(font, "Terminal"): f = _default_theme.get_font(font, "Terminal") else: - f = _default_theme.get_font(font, "Regular") + f = _default_theme.get_font(font, "regular") _native_terminal.add_font_override(font, f) _native_terminal._update_theme() _native_terminal._update_size() diff --git a/addons/godot_xterm/themes/default.tres b/addons/godot_xterm/themes/default.tres index f585705..00d6aaf 100644 --- a/addons/godot_xterm/themes/default.tres +++ b/addons/godot_xterm/themes/default.tres @@ -4,25 +4,25 @@ [resource] default_font = ExtResource( 1 ) -Terminal/colors/Background = Color( 0.12549, 0.145098, 0.192157, 1 ) -Terminal/colors/Black = Color( 0, 0, 0, 1 ) -Terminal/colors/Blue = Color( 0.341176, 0.698039, 1, 1 ) -Terminal/colors/Cyan = Color( 0.4, 0.901961, 1, 1 ) -"Terminal/colors/Dark Grey" = Color( 0.462745, 0.47451, 0.509804, 1 ) -Terminal/colors/Foreground = Color( 0.8, 0.807843, 0.827451, 1 ) -Terminal/colors/Green = Color( 0.388235, 0.760784, 0.34902, 1 ) -"Terminal/colors/Light Blue" = Color( 0.737255, 0.878431, 1, 1 ) -"Terminal/colors/Light Cyan" = Color( 0.776471, 1, 0.929412, 1 ) -"Terminal/colors/Light Green" = Color( 0.258824, 1, 0.760784, 1 ) -"Terminal/colors/Light Grey" = Color( 0.8, 0.807843, 0.827451, 1 ) -"Terminal/colors/Light Magenta" = Color( 0.807843, 0.643137, 0.945098, 1 ) -"Terminal/colors/Light Red" = Color( 1, 0.439216, 0.521569, 1 ) -"Terminal/colors/Light Yellow" = Color( 1, 0.92549, 0.627451, 1 ) -Terminal/colors/Magenta = Color( 0.623529, 0.439216, 1, 1 ) -Terminal/colors/Red = Color( 1, 0.47, 0.42, 1 ) -Terminal/colors/White = Color( 1, 1, 1, 1 ) -Terminal/colors/Yellow = Color( 1, 0.866667, 0.396078, 1 ) -Terminal/fonts/Bold = null -"Terminal/fonts/Bold Italic" = null -Terminal/fonts/Italic = null -Terminal/fonts/Regular = ExtResource( 1 ) +Terminal/colors/background = Color( 0.12549, 0.145098, 0.192157, 1 ) +Terminal/colors/black = Color( 0, 0, 0, 1 ) +Terminal/colors/blue = Color( 0.341176, 0.698039, 1, 1 ) +Terminal/colors/bright_black = Color( 0.462745, 0.47451, 0.509804, 1 ) +Terminal/colors/bright_blue = Color( 0.737255, 0.878431, 1, 1 ) +Terminal/colors/bright_cyan = Color( 0.776471, 1, 0.929412, 1 ) +Terminal/colors/bright_green = Color( 0.258824, 1, 0.760784, 1 ) +Terminal/colors/bright_magenta = Color( 0.807843, 0.643137, 0.945098, 1 ) +Terminal/colors/bright_red = Color( 1, 0.439216, 0.521569, 1 ) +Terminal/colors/bright_white = Color( 1, 1, 1, 1 ) +Terminal/colors/bright_yellow = Color( 1, 0.92549, 0.627451, 1 ) +Terminal/colors/cyan = Color( 0.4, 0.901961, 1, 1 ) +Terminal/colors/foreground = Color( 0.8, 0.807843, 0.827451, 1 ) +Terminal/colors/green = Color( 0.388235, 0.760784, 0.34902, 1 ) +Terminal/colors/magenta = Color( 0.623529, 0.439216, 1, 1 ) +Terminal/colors/red = Color( 1, 0.47, 0.42, 1 ) +Terminal/colors/white = Color( 0.8, 0.807843, 0.827451, 1 ) +Terminal/colors/yellow = Color( 1, 0.866667, 0.396078, 1 ) +Terminal/fonts/bold = null +Terminal/fonts/bold_italic = null +Terminal/fonts/italic = null +Terminal/fonts/regular = ExtResource( 1 ) diff --git a/addons/godot_xterm/themes/default_light.tres b/addons/godot_xterm/themes/default_light.tres index 9dfab56..a592a9c 100644 --- a/addons/godot_xterm/themes/default_light.tres +++ b/addons/godot_xterm/themes/default_light.tres @@ -4,25 +4,25 @@ [resource] default_font = ExtResource( 4 ) -Terminal/colors/Background = Color( 0.921569, 0.921569, 0.921569, 1 ) -Terminal/colors/Black = Color( 0, 0, 0, 1 ) -Terminal/colors/Blue = Color( 0.239216, 0.392157, 0.866667, 1 ) -Terminal/colors/Cyan = Color( 0, 0.65098, 0.729412, 1 ) -"Terminal/colors/Dark Grey" = Color( 0.25098, 0.25098, 0.25098, 1 ) -Terminal/colors/Foreground = Color( 0.25098, 0.25098, 0.25098, 1 ) -Terminal/colors/Green = Color( 0, 0.380392, 0.188235, 1 ) -"Terminal/colors/Light Blue" = Color( 0.160784, 0.545098, 1, 1 ) -"Terminal/colors/Light Cyan" = Color( 0.133333, 0.8, 1, 1 ) -"Terminal/colors/Light Green" = Color( 0, 0.760784, 0.380392, 1 ) -"Terminal/colors/Light Grey" = Color( 0.898039, 0.898039, 0.898039, 1 ) -"Terminal/colors/Light Magenta" = Color( 0.658824, 0.364706, 0.913725, 1 ) -"Terminal/colors/Light Red" = Color( 1, 0.439216, 0.521569, 1 ) -"Terminal/colors/Light Yellow" = Color( 1, 0.866667, 0.396078, 1 ) -Terminal/colors/Magenta = Color( 0.439216, 0.164706, 1, 1 ) -Terminal/colors/Red = Color( 0.74902, 0.352941, 0.313726, 1 ) -Terminal/colors/White = Color( 1, 1, 1, 1 ) -Terminal/colors/Yellow = Color( 0.698039, 0.572549, 0.0627451, 1 ) -Terminal/fonts/Bold = null -"Terminal/fonts/Bold Italic" = null -Terminal/fonts/Italic = null -Terminal/fonts/Regular = ExtResource( 4 ) +Terminal/colors/background = Color( 0.921569, 0.921569, 0.921569, 1 ) +Terminal/colors/black = Color( 0, 0, 0, 1 ) +Terminal/colors/blue = Color( 0.239216, 0.392157, 0.866667, 1 ) +Terminal/colors/bright_black = Color( 0.25098, 0.25098, 0.25098, 1 ) +Terminal/colors/bright_blue = Color( 0.160784, 0.545098, 1, 1 ) +Terminal/colors/bright_cyan = Color( 0.133333, 0.8, 1, 1 ) +Terminal/colors/bright_green = Color( 0, 0.760784, 0.380392, 1 ) +Terminal/colors/bright_magenta = Color( 0.658824, 0.364706, 0.913725, 1 ) +Terminal/colors/bright_red = Color( 1, 0.439216, 0.521569, 1 ) +Terminal/colors/bright_white = Color( 1, 1, 1, 1 ) +Terminal/colors/bright_yellow = Color( 1, 0.866667, 0.396078, 1 ) +Terminal/colors/cyan = Color( 0, 0.65098, 0.729412, 1 ) +Terminal/colors/foreground = Color( 0.25098, 0.25098, 0.25098, 1 ) +Terminal/colors/green = Color( 0, 0.380392, 0.188235, 1 ) +Terminal/colors/magenta = Color( 0.439216, 0.164706, 1, 1 ) +Terminal/colors/red = Color( 0.74902, 0.352941, 0.313726, 1 ) +Terminal/colors/white = Color( 0.898039, 0.898039, 0.898039, 1 ) +Terminal/colors/yellow = Color( 0.698039, 0.572549, 0.0627451, 1 ) +Terminal/fonts/bold = null +Terminal/fonts/bold_italic = null +Terminal/fonts/italic = null +Terminal/fonts/regular = ExtResource( 4 ) diff --git a/addons/godot_xterm/themes/font_only.tres b/addons/godot_xterm/themes/font_only.tres index 6213756..7d0a8ef 100644 --- a/addons/godot_xterm/themes/font_only.tres +++ b/addons/godot_xterm/themes/font_only.tres @@ -5,7 +5,7 @@ size = 14 extra_spacing_bottom = 1 [resource] -Terminal/fonts/Bold = null -"Terminal/fonts/Bold Italic" = null -Terminal/fonts/Italic = null -Terminal/fonts/Regular = SubResource( 1 ) +Terminal/fonts/bold = null +Terminal/fonts/bold_italic = null +Terminal/fonts/italic = null +Terminal/fonts/regular = SubResource( 1 ) diff --git a/addons/gut/gut_cmdln.gd b/addons/gut/gut_cmdln.gd index b9e84c7..f62ff20 100644 --- a/addons/gut/gut_cmdln.gd +++ b/addons/gut/gut_cmdln.gd @@ -229,7 +229,7 @@ func setup_options(options, font_names): opts.add( "-gbackground_color", options.background_color, - 'Background color as an html color, default "[default]"' + 'background color as an html color, default "[default]"' ) opts.add("-gfont_color", options.font_color, 'Font color as an html color, default "[default]"') diff --git a/docs/CHANGELOG.md b/docs/CHANGELOG.md index 3e6a41b..81f8e78 100644 --- a/docs/CHANGELOG.md +++ b/docs/CHANGELOG.md @@ -13,6 +13,36 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Deprecated the undocumented `get_master()` method of PTY that returned its Pipe. This method will be removed in a future version. The Pipe class is for internal use only and may be changed at any time. +- Changed theme item names to be compatible with Godot version 3.5 (no spaces), + consistent with other theme item names (snake_case), and to match the ANSI + color names listed on the [ANSI escape code Wikipedia page](https://en.wikipedia.org/wiki/ANSI_escape_code#3-bit_and_4-bit). + Old names are deprecated and will be removed in a future version. + Please update theme item names as follows (paying particular attention to `Light Grey`, `Dark Grey`, `White`, `Bold Italic`, and the `Light *` variants): + - Colors: + - `Black` -> `black` + - `Red` -> `red` + - `Green` -> `green` + - `Yellow` -> `yellow` + - `Blue` -> `blue` + - `Magenta` -> `magenta` + - `Cyan` -> `cyan` + - `Light Grey` -> `white` + - `Dark Grey` -> `bright_black` + - `Light Red` -> `bright_red` + - `Light Green` -> `bright_green` + - `Light Yellow` -> `bright_yellow` + - `Light Blue` -> `bright_blue` + - `Light Magenta` -> `bright_magenta` + - `Light Cyan` -> `bright_cyan` + - `White` -> `bright_white` + - `Foreground` -> `foreground` + - `Background` -> `background` + - `Cursor` -> `cursor` + - Fonts: + - `Regular` -> `regular` + - `Italic` -> `italic` + - `Bold` -> `bold` + - `Bold Italic` -> `bold_italic` ### Removed - Removed support for Godot version 3.3.x. GodotXterm *might* still work with this diff --git a/test/files/deprecated_theme.tres b/test/files/deprecated_theme.tres new file mode 100644 index 0000000..9dfab56 --- /dev/null +++ b/test/files/deprecated_theme.tres @@ -0,0 +1,28 @@ +[gd_resource type="Theme" load_steps=2 format=2] + +[ext_resource path="res://addons/godot_xterm/themes/fonts/regular.tres" type="DynamicFont" id=4] + +[resource] +default_font = ExtResource( 4 ) +Terminal/colors/Background = Color( 0.921569, 0.921569, 0.921569, 1 ) +Terminal/colors/Black = Color( 0, 0, 0, 1 ) +Terminal/colors/Blue = Color( 0.239216, 0.392157, 0.866667, 1 ) +Terminal/colors/Cyan = Color( 0, 0.65098, 0.729412, 1 ) +"Terminal/colors/Dark Grey" = Color( 0.25098, 0.25098, 0.25098, 1 ) +Terminal/colors/Foreground = Color( 0.25098, 0.25098, 0.25098, 1 ) +Terminal/colors/Green = Color( 0, 0.380392, 0.188235, 1 ) +"Terminal/colors/Light Blue" = Color( 0.160784, 0.545098, 1, 1 ) +"Terminal/colors/Light Cyan" = Color( 0.133333, 0.8, 1, 1 ) +"Terminal/colors/Light Green" = Color( 0, 0.760784, 0.380392, 1 ) +"Terminal/colors/Light Grey" = Color( 0.898039, 0.898039, 0.898039, 1 ) +"Terminal/colors/Light Magenta" = Color( 0.658824, 0.364706, 0.913725, 1 ) +"Terminal/colors/Light Red" = Color( 1, 0.439216, 0.521569, 1 ) +"Terminal/colors/Light Yellow" = Color( 1, 0.866667, 0.396078, 1 ) +Terminal/colors/Magenta = Color( 0.439216, 0.164706, 1, 1 ) +Terminal/colors/Red = Color( 0.74902, 0.352941, 0.313726, 1 ) +Terminal/colors/White = Color( 1, 1, 1, 1 ) +Terminal/colors/Yellow = Color( 0.698039, 0.572549, 0.0627451, 1 ) +Terminal/fonts/Bold = null +"Terminal/fonts/Bold Italic" = null +Terminal/fonts/Italic = null +Terminal/fonts/Regular = ExtResource( 4 ) diff --git a/test/import_plugins/xrdb/xrdb_import_plugin.test.gd b/test/import_plugins/xrdb/xrdb_import_plugin.test.gd index d38e33c..d8f037d 100644 --- a/test/import_plugins/xrdb/xrdb_import_plugin.test.gd +++ b/test/import_plugins/xrdb/xrdb_import_plugin.test.gd @@ -10,25 +10,25 @@ func test_xrdb(): assert_true(theme is Theme) var map := { - "Black": "#000000", - "Red": "#000001", - "Green": "#000002", - "Yellow": "#000003", - "Blue": "#000004", - "Magenta": "#000005", - "Cyan": "#000006", - "Light Grey": "#000007", - "Dark Grey": "#000008", - "Light Red": "#000009", - "Light Green": "#000010", - "Light Yellow": "#000011", - "Light Blue": "#000012", - "Light Magenta": "#000013", - "Light Cyan": "#000014", - "White": "#000015", - "Background": "#100000", - "Foreground": "#200000", - "Cursor": "#300000", + "black": "#000000", + "red": "#000001", + "green": "#000002", + "yellow": "#000003", + "blue": "#000004", + "magenta": "#000005", + "cyan": "#000006", + "white": "#000007", + "bright_black": "#000008", + "bright_red": "#000009", + "bright_green": "#000010", + "bright_yellow": "#000011", + "bright_blue": "#000012", + "bright_magenta": "#000013", + "bright_cyan": "#000014", + "bright_white": "#000015", + "background": "#100000", + "foreground": "#200000", + "cursor": "#300000", } for key in map.keys(): @@ -40,25 +40,25 @@ func test_Xresources(): assert_true(theme is Theme) var map := { - "Black": "#282A2E", - "Red": "#A54242", - "Green": "#8C9440", - "Yellow": "#DE935F", - "Blue": "#5F819D", - "Magenta": "#85678F", - "Cyan": "#5E8D87", - "Light Grey": "#707880", - "Dark Grey": "#373B41", - "Light Red": "#CC6666", - "Light Green": "#B5BD68", - "Light Yellow": "#F0C674", - "Light Blue": "#81A2BE", - "Light Magenta": "#B294BB", - "Light Cyan": "#8ABEB7", - "White": "#C5C8C6", - "Background": "#1D1F21", - "Foreground": "#C5C8C6", - "Cursor": "#C5C8C6", + "black": "#282A2E", + "red": "#A54242", + "green": "#8C9440", + "yellow": "#DE935F", + "blue": "#5F819D", + "magenta": "#85678F", + "cyan": "#5E8D87", + "white": "#707880", + "bright_black": "#373B41", + "bright_red": "#CC6666", + "bright_green": "#B5BD68", + "bright_yellow": "#F0C674", + "bright_blue": "#81A2BE", + "bright_magenta": "#B294BB", + "bright_cyan": "#8ABEB7", + "bright_white": "#C5C8C6", + "background": "#1D1F21", + "foreground": "#C5C8C6", + "cursor": "#C5C8C6", } for key in map.keys(): @@ -70,25 +70,25 @@ func test_xresources(): assert_true(theme is Theme) var map := { - "Black": "#000000", - "Red": "#1B0C13", - "Green": "#351B27", - "Yellow": "#563042", - "Blue": "#814B64", - "Magenta": "#B56B8D", - "Cyan": "#D0A2B6", - "Light Grey": "#EDDFE4", - "Dark Grey": "#6DA3B8", - "Light Red": "#CA956C", - "Light Green": "#7CA7B9", - "Light Yellow": "#A2C9BC", - "Light Blue": "#9AAD72", - "Light Magenta": "#82D0B7", - "Light Cyan": "#AE96D0", - "White": "#E6BFCF", - "Background": "#000000", - "Foreground": "#EDDFE4", - "Cursor": "#EDDFE4", + "black": "#000000", + "red": "#1B0C13", + "green": "#351B27", + "yellow": "#563042", + "blue": "#814B64", + "magenta": "#B56B8D", + "cyan": "#D0A2B6", + "white": "#EDDFE4", + "bright_black": "#6DA3B8", + "bright_red": "#CA956C", + "bright_green": "#7CA7B9", + "bright_yellow": "#A2C9BC", + "bright_blue": "#9AAD72", + "bright_magenta": "#82D0B7", + "bright_cyan": "#AE96D0", + "bright_white": "#E6BFCF", + "background": "#000000", + "foreground": "#EDDFE4", + "cursor": "#EDDFE4", } for key in map.keys(): diff --git a/test/integration/terminal.test.gd b/test/integration/terminal.test.gd index 0217350..4a744b7 100644 --- a/test/integration/terminal.test.gd +++ b/test/integration/terminal.test.gd @@ -49,22 +49,22 @@ class TestTheme: const alt_theme := preload("res://addons/godot_xterm/themes/default_light.tres") const COLORS := [ - "Black", - "Red", - "Green", - "Yellow", - "Blue", - "Magenta", - "Cyan", - "Light Grey", - "Dark Grey", - "Light Red", - "Light Green", - "Light Yellow", - "Light Blue", - "Light Magenta", - "Light Cyan", - "White", + "black", + "red", + "green", + "yellow", + "blue", + "magenta", + "cyan", + "white", + "bright_black", + "bright_red", + "bright_green", + "bright_yellow", + "bright_blue", + "bright_magenta", + "bright_cyan", + "bright_white", ] var terminal: Terminal @@ -105,24 +105,18 @@ class TestTheme: yield(yield_frames(1), YIELD) func test_terminal_display_colors_from_default_theme(): - if _version_gt_3_4(): - return terminal.theme = null add_child(terminal) yield(yield_to(terminal, "theme_changed", 5), YIELD) _check_colors(default_theme) func test_terminal_displays_colors_from_theme(): - if _version_gt_3_4(): - return terminal.theme = alt_theme add_child(terminal) yield(yield_to(terminal, "theme_changed", 5), YIELD) _check_colors(alt_theme) func test_visible_characters_still_displayed_after_resize_with_default_theme(): - if _version_gt_3_4(): - return terminal.theme = null add_child(terminal) yield(yield_frames(1), YIELD) @@ -131,8 +125,6 @@ class TestTheme: _check_colors(default_theme) func test_visible_characters_still_displayed_after_resize_with_custom_theme(): - if _version_gt_3_4(): - return # Issue 57: https://github.com/lihop/godot-xterm/issues/57 terminal.theme = alt_theme add_child(terminal) @@ -142,8 +134,6 @@ class TestTheme: _check_colors(alt_theme) func test_updates_colors_after_theme_set(): - if _version_gt_3_4(): - return # Issue 58: https://github.com/lihop/godot-xterm/issues/58 terminal.theme = null add_child(terminal) @@ -153,8 +143,6 @@ class TestTheme: _check_colors(alt_theme) func test_updates_colors_after_theme_unset(): - if _version_gt_3_4(): - return # Issue 58: https://github.com/lihop/godot-xterm/issues/58 terminal.theme = alt_theme add_child(terminal) @@ -164,8 +152,6 @@ class TestTheme: _check_colors(default_theme) func test_updates_colors_after_theme_changed(): - if _version_gt_3_4(): - return # Issue 58: https://github.com/lihop/godot-xterm/issues/58 terminal.theme = alt_theme add_child(terminal) @@ -173,3 +159,17 @@ class TestTheme: terminal.theme = default_theme yield(yield_to(terminal, "theme_changed", 5), YIELD) _check_colors(default_theme) + + func test_deprecated_theme_item_names_continue_to_work_until_removed(): + # This test can be removed after support for deperacted theme item names is removed. + # Not applicable to version 3.5 as deprecated theme can't be imported in that version. + var version := Engine.get_version_info() + if version.major > 3 or (version.major == 3 and version.minor >= 5): + return + + var deprecated_theme := preload("../files/deprecated_theme.tres") + terminal.theme = deprecated_theme + yield(yield_to(terminal, "theme_changed", 5), YIELD) + add_child(terminal) + yield(yield_to(terminal, "theme_changed", 5), YIELD) + _check_colors(alt_theme) diff --git a/themes/default.tres b/themes/default.tres index 0b7d303..5e50b1a 100644 --- a/themes/default.tres +++ b/themes/default.tres @@ -6,25 +6,25 @@ [ext_resource path="res://themes/fonts/regular.tres" type="DynamicFont" id=5] [resource] -Terminal/colors/Background = Color( 0.12549, 0.145098, 0.192157, 1 ) -Terminal/colors/Black = Color( 0, 0, 0, 1 ) -Terminal/colors/Blue = Color( 0.341176, 0.698039, 1, 1 ) -Terminal/colors/Cyan = Color( 0.4, 0.901961, 1, 1 ) -"Terminal/colors/Dark Grey" = Color( 0.462745, 0.47451, 0.509804, 1 ) -Terminal/colors/Foreground = Color( 0.8, 0.807843, 0.827451, 1 ) -Terminal/colors/Green = Color( 0.388235, 0.760784, 0.34902, 1 ) -"Terminal/colors/Light Blue" = Color( 0.737255, 0.878431, 1, 1 ) -"Terminal/colors/Light Cyan" = Color( 0.776471, 1, 0.929412, 1 ) -"Terminal/colors/Light Green" = Color( 0.258824, 1, 0.760784, 1 ) -"Terminal/colors/Light Grey" = Color( 0.8, 0.807843, 0.827451, 1 ) -"Terminal/colors/Light Magenta" = Color( 0.807843, 0.643137, 0.945098, 1 ) -"Terminal/colors/Light Red" = Color( 1, 0.439216, 0.521569, 1 ) -"Terminal/colors/Light Yellow" = Color( 1, 0.92549, 0.627451, 1 ) -Terminal/colors/Magenta = Color( 0.623529, 0.439216, 1, 1 ) -Terminal/colors/Red = Color( 1, 0.47, 0.42, 1 ) -Terminal/colors/White = Color( 1, 1, 1, 1 ) -Terminal/colors/Yellow = Color( 1, 0.866667, 0.396078, 1 ) -Terminal/fonts/Bold = ExtResource( 4 ) -"Terminal/fonts/Bold Italic" = ExtResource( 2 ) -Terminal/fonts/Italic = ExtResource( 3 ) -Terminal/fonts/Regular = ExtResource( 5 ) +Terminal/colors/background = Color( 0.12549, 0.145098, 0.192157, 1 ) +Terminal/colors/black = Color( 0, 0, 0, 1 ) +Terminal/colors/blue = Color( 0.341176, 0.698039, 1, 1 ) +Terminal/colors/cyan = Color( 0.4, 0.901961, 1, 1 ) +"Terminal/colors/bright_black" = Color( 0.462745, 0.47451, 0.509804, 1 ) +Terminal/colors/foreground = Color( 0.8, 0.807843, 0.827451, 1 ) +Terminal/colors/green = Color( 0.388235, 0.760784, 0.34902, 1 ) +"Terminal/colors/bright_blue" = Color( 0.737255, 0.878431, 1, 1 ) +"Terminal/colors/bright_cyan" = Color( 0.776471, 1, 0.929412, 1 ) +"Terminal/colors/bright_green" = Color( 0.258824, 1, 0.760784, 1 ) +"Terminal/colors/white" = Color( 0.8, 0.807843, 0.827451, 1 ) +"Terminal/colors/bright_magenta" = Color( 0.807843, 0.643137, 0.945098, 1 ) +"Terminal/colors/bright_red" = Color( 1, 0.439216, 0.521569, 1 ) +"Terminal/colors/bright_yellow" = Color( 1, 0.92549, 0.627451, 1 ) +Terminal/colors/magenta = Color( 0.623529, 0.439216, 1, 1 ) +Terminal/colors/red = Color( 1, 0.47, 0.42, 1 ) +Terminal/colors/bright_white = Color( 1, 1, 1, 1 ) +Terminal/colors/yellow = Color( 1, 0.866667, 0.396078, 1 ) +Terminal/fonts/bold = ExtResource( 4 ) +"Terminal/fonts/bold_italic" = ExtResource( 2 ) +Terminal/fonts/italic = ExtResource( 3 ) +Terminal/fonts/regular = ExtResource( 5 ) diff --git a/themes/retro_green.tres b/themes/retro_green.tres index f786a5d..8c713b5 100644 --- a/themes/retro_green.tres +++ b/themes/retro_green.tres @@ -9,27 +9,27 @@ extra_spacing_bottom = 1 font_data = ExtResource( 2 ) [resource] -Terminal/colors/Background = Color( 0.156863, 0.156863, 0.156863, 1 ) -Terminal/colors/Black = Color( 0, 1, 0.4, 1 ) -Terminal/colors/Blue = Color( 0, 1, 0.4, 1 ) +Terminal/colors/background = Color( 0.156863, 0.156863, 0.156863, 1 ) +Terminal/colors/black = Color( 0, 1, 0.4, 1 ) +Terminal/colors/blue = Color( 0, 1, 0.4, 1 ) Terminal/colors/Cursor = Color( 0, 1, 0.4, 1 ) -Terminal/colors/Cyan = Color( 0, 1, 0.4, 1 ) -"Terminal/colors/Dark Grey" = Color( 0, 1, 0.4, 1 ) -Terminal/colors/Foreground = Color( 0, 1, 0.4, 1 ) -Terminal/colors/Green = Color( 0, 1, 0.4, 1 ) -"Terminal/colors/Light Blue" = Color( 0, 1, 0.4, 1 ) -"Terminal/colors/Light Cyan" = Color( 0, 1, 0.4, 1 ) -"Terminal/colors/Light Green" = Color( 0, 1, 0.4, 1 ) -"Terminal/colors/Light Grey" = Color( 0, 1, 0.4, 1 ) -"Terminal/colors/Light Magenta" = Color( 0, 1, 0.4, 1 ) -"Terminal/colors/Light Red" = Color( 0, 1, 0.4, 1 ) -"Terminal/colors/Light Yellow" = Color( 0, 1, 0.4, 1 ) -Terminal/colors/Magenta = Color( 0, 1, 0.4, 1 ) -Terminal/colors/Red = Color( 0, 1, 0.4, 1 ) -Terminal/colors/White = Color( 0, 1, 0.4, 1 ) -Terminal/colors/Yellow = Color( 0, 1, 0.4, 1 ) -Terminal/fonts/Bold = null -"Terminal/fonts/Bold Italic" = null -Terminal/fonts/Italic = null -Terminal/fonts/Regular = SubResource( 1 ) +Terminal/colors/cyan = Color( 0, 1, 0.4, 1 ) +"Terminal/colors/bright_black" = Color( 0, 1, 0.4, 1 ) +Terminal/colors/foreground = Color( 0, 1, 0.4, 1 ) +Terminal/colors/green = Color( 0, 1, 0.4, 1 ) +"Terminal/colors/bright_blue" = Color( 0, 1, 0.4, 1 ) +"Terminal/colors/bright_cyan" = Color( 0, 1, 0.4, 1 ) +"Terminal/colors/bright_green" = Color( 0, 1, 0.4, 1 ) +"Terminal/colors/white" = Color( 0, 1, 0.4, 1 ) +"Terminal/colors/bright_magenta" = Color( 0, 1, 0.4, 1 ) +"Terminal/colors/bright_red" = Color( 0, 1, 0.4, 1 ) +"Terminal/colors/bright_yellow" = Color( 0, 1, 0.4, 1 ) +Terminal/colors/magenta = Color( 0, 1, 0.4, 1 ) +Terminal/colors/red = Color( 0, 1, 0.4, 1 ) +Terminal/colors/bright_white = Color( 0, 1, 0.4, 1 ) +Terminal/colors/yellow = Color( 0, 1, 0.4, 1 ) +Terminal/fonts/bold = null +"Terminal/fonts/bold_italic" = null +Terminal/fonts/italic = null +Terminal/fonts/regular = SubResource( 1 ) script = ExtResource( 1 )