Created tool to take CodeSyntaxHighlighter, and updated it for Godot 4.x color scheme.
49 lines
2.4 KiB
GDScript
49 lines
2.4 KiB
GDScript
@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")
|