Created GDScript Highlighter Tool

Created tool to take CodeSyntaxHighlighter, and updated it for Godot 4.x
color scheme.
This commit is contained in:
Mario Steele 2026-02-28 02:56:28 -06:00
parent 3f887a4e0e
commit 84fa083b76
2 changed files with 50 additions and 0 deletions

View file

@ -0,0 +1,49 @@
@tool
extends EditorScript
const GDSCRIPT_HIGHLIGHTER = preload("uid://bfcfig5upwkjc")
var current_keyword_color: Color = GDSCRIPT_HIGHLIGHTER.keyword_colors["func"]
var current_engine_type: Color = GDSCRIPT_HIGHLIGHTER.keyword_colors["AESContext"]
var current_base_type: Color = GDSCRIPT_HIGHLIGHTER.keyword_colors["AABB"]
var current_flow_control: Color = GDSCRIPT_HIGHLIGHTER.keyword_colors["break"]
# Called when the script is executed (using File -> Run in Script Editor).
func _run() -> void:
var plgn := EditorPlugin.new()
var es := plgn.get_editor_interface().get_editor_settings()
var gshl := GDSCRIPT_HIGHLIGHTER.duplicate(true)
var comment_color :Color = es.get_setting("text_editor/theme/highlighting/comment_color")
var keyword_color :Color = es.get_setting("text_editor/theme/highlighting/keyword_color")
var flow_control_color :Color = es.get_setting("text_editor/theme/highlighting/control_flow_keyword_color")
var engine_type :Color = es.get_setting("text_editor/theme/highlighting/engine_type_color")
var base_type_color :Color = es.get_setting("text_editor/theme/highlighting/base_type_color")
var string_color :Color = es.get_setting("text_editor/theme/highlighting/string_color")
var string_placeholder :Color = es.get_setting("text_editor/theme/highlighting/string_placeholder_color")
var number_color :Color = es.get_setting("text_editor/theme/highlighting/number_color")
var function_color :Color = es.get_setting("text_editor/theme/highlighting/function_color")
var member_color :Color = es.get_setting("text_editor/theme/highlighting/member_variable_color")
var symbol_color :Color = es.get_setting("text_editor/theme/highlighting/symbol_color")
plgn.free()
gshl.symbol_color = symbol_color
gshl.member_variable_color = member_color
gshl.function_color = function_color
gshl.number_color = number_color
gshl.color_regions["#"] = comment_color
gshl.color_regions["\" \""] = string_color
gshl.color_regions["&\" \""] = string_placeholder
gshl.color_regions["' '"] = string_color
for keyword in gshl.keyword_colors:
match gshl.keyword_colors[keyword]:
current_keyword_color:
gshl.keyword_colors[keyword] = keyword_color
current_base_type:
gshl.keyword_colors[keyword] = base_type_color
current_flow_control:
gshl.keyword_colors[keyword] = flow_control_color
current_engine_type:
gshl.keyword_colors[keyword] = engine_type
ResourceSaver.save(gshl, "res://UI/assets/gdscript_highlighter4.tres")