diff --git a/addons/godot_xterm/editor_plugins/terminal/editor_terminal.gd b/addons/godot_xterm/editor_plugins/terminal/editor_terminal.gd index f89a446..437e2e7 100644 --- a/addons/godot_xterm/editor_plugins/terminal/editor_terminal.gd +++ b/addons/godot_xterm/editor_plugins/terminal/editor_terminal.gd @@ -13,7 +13,8 @@ var editor_settings: EditorSettings func _set_terminal_colors(color_map: Dictionary) -> void: for key in color_map.keys(): var val: String = color_map[key] - var color: Color = editor_settings.get_setting("text_editor/highlighting/%s" % val) + var editor_color = editor_settings.get_setting("text_editor/theme/highlighting/%s" % val) + var color: Color = editor_color if editor_color else Color.BLACK add_theme_color_override(key, color) @@ -26,35 +27,35 @@ func _ready(): # better to use a dedicated terminal theme, rather than relying on this. _set_terminal_colors( { - "ansi_0_color": "completion_background_color", - "ansi_1_color": "keyword_color", - "ansi_2_color": "gdscript/node_path_color", - "ansi_3_color": "string_color", - "ansi_4_color": "function_color", - "ansi_5_color": "symbol_color", - "ansi_6_color": "gdscript/function_definition_color", - "ansi_7_color": "text_color", - "ansi_8_color": "comment_color", - "ansi_9_color": "breakpoint_color", - "ansi_10_color": "base_type_color", - "ansi_11_color": "search_result_color", - "ansi_12_color": "member_variable_color", - "ansi_13_color": "code_folding_color", - "ansi_14_color": "user_type_color", - "ansi_15_color": "text_selected_color", "background_color": "background_color", - "foreground_color": "caret_color", + "foreground_color": "text_color", + "ansi_0_color": "caret_background_color", + "ansi_1_color": "brace_mismatch_color", + "ansi_2_color": "gdscript/node_reference_color", + "ansi_3_color": "executing_line_color", + "ansi_4_color": "bookmark_color", + "ansi_5_color": "control_flow_keyword_color", + "ansi_6_color": "engine_type_color", + "ansi_7_color": "comment_color", + "ansi_8_color": "completion_background_color", + "ansi_9_color": "keyword_color", + "ansi_10_color": "base_type_color", + "ansi_11_color": "string_color", + "ansi_12_color": "function_color", + "ansi_13_color": "gdscript/global_function_color", + "ansi_14_color": "gdscript/function_definition_color", + "ansi_15_color": "caret_color", } ) func _input(event): if has_focus() and event is InputEventKey and event.is_pressed(): - if event.ctrl_pressed and event.scancode in [KEY_PAGEUP, KEY_PAGEDOWN]: + if event.ctrl_pressed and event.keycode in [KEY_PAGEUP, KEY_PAGEDOWN]: # Handled by switch tabs shortcut. return - if event.control and event.shift: + if event.ctrl_pressed and event.shift_pressed: # Not handled by terminal. return @@ -70,8 +71,6 @@ func _input(event): # "propagated shortcuts" consisting of an array of shortcut editor setting strings. # For example "editor/save_scene" which saves the scene and by default maps to 'Ctrl + S'. # Then any shortcut events listed here can be handled by the terminal *and* the editor. - get_tree().set_input_as_handled() - _gui_input(event) func _on_PTY_exited(exit_code: int, signum: int): diff --git a/addons/godot_xterm/editor_plugins/terminal/editor_terminal.tscn b/addons/godot_xterm/editor_plugins/terminal/editor_terminal.tscn index 7e35003..15a3ab8 100644 --- a/addons/godot_xterm/editor_plugins/terminal/editor_terminal.tscn +++ b/addons/godot_xterm/editor_plugins/terminal/editor_terminal.tscn @@ -1,8 +1,7 @@ -[gd_scene load_steps=4 format=3 uid="uid://bkcyv0w3setep"] +[gd_scene load_steps=3 format=3 uid="uid://bkcyv0w3setep"] [ext_resource type="Script" path="res://addons/godot_xterm/editor_plugins/terminal/editor_terminal.gd" id="1"] [ext_resource type="Theme" uid="uid://0gk8swmcldbg" path="res://themes/demo.tres" id="1_h7osn"] -[ext_resource type="Script" path="res://addons/godot_xterm/pty.gd" id="2"] [node name="Terminal" type="Terminal"] anchors_preset = 15 @@ -16,10 +15,13 @@ focus_mode = 1 theme = ExtResource("1_h7osn") script = ExtResource("1") -[node name="PTY" type="Node" parent="."] -script = ExtResource("2") +[node name="PTY" type="PTY" parent="."] +cols = 128 +rows = 32 terminal_path = NodePath("..") [node name="Bell" type="AudioStreamPlayer" parent="."] -[connection signal="exited" from="PTY" to="." method="_on_PTY_exited"] +[connection signal="data_sent" from="." to="PTY" method="write"] +[connection signal="size_changed" from="." to="PTY" method="resizev"] +[connection signal="data_received" from="PTY" to="." method="write"]