diff options
author | Paulb23 <p_batty@hotmail.co.uk> | 2020-03-07 11:17:18 +0000 |
---|---|---|
committer | Paulb23 <p_batty@hotmail.co.uk> | 2020-07-11 15:26:58 +0100 |
commit | 2f1080be9b032b1cf5086201e45057baa6b1a179 (patch) | |
tree | c6af7f72914a1ea9c88eddb80925ae174cfbd8e3 /modules/gdscript/editor | |
parent | be119c5c473be3fb73458baca7066d85869d6f1d (diff) |
Convert syntax highlighters into a resource
Diffstat (limited to 'modules/gdscript/editor')
-rw-r--r-- | modules/gdscript/editor/gdscript_highlighter.cpp | 65 | ||||
-rw-r--r-- | modules/gdscript/editor/gdscript_highlighter.h | 6 |
2 files changed, 35 insertions, 36 deletions
diff --git a/modules/gdscript/editor/gdscript_highlighter.cpp b/modules/gdscript/editor/gdscript_highlighter.cpp index d0f27b632b..4be83877be 100644 --- a/modules/gdscript/editor/gdscript_highlighter.cpp +++ b/modules/gdscript/editor/gdscript_highlighter.cpp @@ -31,7 +31,6 @@ #include "gdscript_highlighter.h" #include "../gdscript_tokenizer.h" #include "editor/editor_settings.h" -#include "scene/gui/text_edit.h" inline bool _is_symbol(CharType c) { return is_symbol(c); @@ -57,8 +56,8 @@ static bool _is_bin_symbol(CharType c) { return (c == '0' || c == '1'); } -Map<int, TextEdit::HighlighterInfo> GDScriptSyntaxHighlighter::_get_line_syntax_highlighting(int p_line) { - Map<int, TextEdit::HighlighterInfo> color_map; +Dictionary GDScriptSyntaxHighlighter::_get_line_syntax_highlighting(int p_line) { + Dictionary color_map; Type next_type = NONE; Type current_type = NONE; @@ -82,14 +81,14 @@ Map<int, TextEdit::HighlighterInfo> GDScriptSyntaxHighlighter::_get_line_syntax_ Color keyword_color; Color color; - int in_region = text_editor->_is_line_in_region(p_line); + int in_region = text_edit->_is_line_in_region(p_line); int deregion = 0; - const Map<int, TextEdit::Text::ColorRegionInfo> cri_map = text_editor->_get_line_color_region_info(p_line); - const String &str = text_editor->get_line(p_line); + const Map<int, TextEdit::Text::ColorRegionInfo> cri_map = text_edit->_get_line_color_region_info(p_line); + const String &str = text_edit->get_line(p_line); Color prev_color; for (int j = 0; j < str.length(); j++) { - TextEdit::HighlighterInfo highlighter_info; + Dictionary highlighter_info; if (deregion > 0) { deregion--; @@ -101,7 +100,7 @@ Map<int, TextEdit::HighlighterInfo> GDScriptSyntaxHighlighter::_get_line_syntax_ if (deregion != 0) { if (color != prev_color) { prev_color = color; - highlighter_info.color = color; + highlighter_info["color"] = color; color_map[j] = highlighter_info; } continue; @@ -163,7 +162,7 @@ Map<int, TextEdit::HighlighterInfo> GDScriptSyntaxHighlighter::_get_line_syntax_ in_region = cri.region; } } else { - TextEdit::ColorRegion cr = text_editor->_get_color_region(cri.region); + TextEdit::ColorRegion cr = text_edit->_get_color_region(cri.region); if (in_region == cri.region && !cr.line_only) { //ignore otherwise if (cri.end || cr.eq) { deregion = cr.eq ? cr.begin_key.length() : cr.end_key.length(); @@ -184,10 +183,10 @@ Map<int, TextEdit::HighlighterInfo> GDScriptSyntaxHighlighter::_get_line_syntax_ String word = str.substr(j, to - j); Color col = Color(); - if (text_editor->has_keyword_color(word)) { - col = text_editor->get_keyword_color(word); - } else if (text_editor->has_member_color(word)) { - col = text_editor->get_member_color(word); + if (text_edit->has_keyword_color(word)) { + col = text_edit->get_keyword_color(word); + } else if (text_edit->has_member_color(word)) { + col = text_edit->get_member_color(word); for (int k = j - 1; k >= 0; k--) { if (str[k] == '.') { col = Color(); //member indexing not allowed @@ -276,7 +275,7 @@ Map<int, TextEdit::HighlighterInfo> GDScriptSyntaxHighlighter::_get_line_syntax_ if (in_region >= 0) { next_type = REGION; - color = text_editor->_get_color_region(in_region).color; + color = text_edit->_get_color_region(in_region).color; } else if (in_node_path) { next_type = NODE_PATH; color = node_path_color; @@ -335,32 +334,32 @@ Map<int, TextEdit::HighlighterInfo> GDScriptSyntaxHighlighter::_get_line_syntax_ if (color != prev_color) { prev_color = color; - highlighter_info.color = color; + highlighter_info["color"] = color; color_map[j] = highlighter_info; } } return color_map; } -String GDScriptSyntaxHighlighter::get_name() const { +String GDScriptSyntaxHighlighter::_get_name() const { return "GDScript"; } -List<String> GDScriptSyntaxHighlighter::get_supported_languages() { - List<String> languages; +Array GDScriptSyntaxHighlighter::_get_supported_languages() const { + Array languages; languages.push_back("GDScript"); return languages; } void GDScriptSyntaxHighlighter::_update_cache() { - font_color = text_editor->get_theme_color("font_color"); - symbol_color = text_editor->get_theme_color("symbol_color"); - function_color = text_editor->get_theme_color("function_color"); - number_color = text_editor->get_theme_color("number_color"); - member_color = text_editor->get_theme_color("member_variable_color"); + font_color = text_edit->get_theme_color("font_color"); + symbol_color = text_edit->get_theme_color("symbol_color"); + function_color = text_edit->get_theme_color("function_color"); + number_color = text_edit->get_theme_color("number_color"); + member_color = text_edit->get_theme_color("member_variable_color"); - const String text_editor_color_theme = EditorSettings::get_singleton()->get("text_editor/theme/color_theme"); - const bool default_theme = text_editor_color_theme == "Default"; + const String text_edit_color_theme = EditorSettings::get_singleton()->get("text_edit/theme/color_theme"); + const bool default_theme = text_edit_color_theme == "Default"; if (default_theme || EditorSettings::get_singleton()->is_dark_theme()) { function_definition_color = Color(0.4, 0.9, 1.0); @@ -370,22 +369,22 @@ void GDScriptSyntaxHighlighter::_update_cache() { node_path_color = Color(0.32, 0.55, 0.29); } - EDITOR_DEF("text_editor/highlighting/gdscript/function_definition_color", function_definition_color); - EDITOR_DEF("text_editor/highlighting/gdscript/node_path_color", node_path_color); - if (text_editor_color_theme == "Adaptive" || default_theme) { + EDITOR_DEF("text_edit/highlighting/gdscript/function_definition_color", function_definition_color); + EDITOR_DEF("text_edit/highlighting/gdscript/node_path_color", node_path_color); + if (text_edit_color_theme == "Adaptive" || default_theme) { EditorSettings::get_singleton()->set_initial_value( - "text_editor/highlighting/gdscript/function_definition_color", + "text_edit/highlighting/gdscript/function_definition_color", function_definition_color, true); EditorSettings::get_singleton()->set_initial_value( - "text_editor/highlighting/gdscript/node_path_color", + "text_edit/highlighting/gdscript/node_path_color", node_path_color, true); } - function_definition_color = EDITOR_GET("text_editor/highlighting/gdscript/function_definition_color"); - node_path_color = EDITOR_GET("text_editor/highlighting/gdscript/node_path_color"); - type_color = EDITOR_GET("text_editor/highlighting/base_type_color"); + function_definition_color = EDITOR_GET("text_edit/highlighting/gdscript/function_definition_color"); + node_path_color = EDITOR_GET("text_edit/highlighting/gdscript/node_path_color"); + type_color = EDITOR_GET("text_edit/highlighting/base_type_color"); } SyntaxHighlighter *GDScriptSyntaxHighlighter::create() { diff --git a/modules/gdscript/editor/gdscript_highlighter.h b/modules/gdscript/editor/gdscript_highlighter.h index e652fb1471..47ea5a3d62 100644 --- a/modules/gdscript/editor/gdscript_highlighter.h +++ b/modules/gdscript/editor/gdscript_highlighter.h @@ -63,10 +63,10 @@ public: static SyntaxHighlighter *create(); virtual void _update_cache(); - virtual Map<int, TextEdit::HighlighterInfo> _get_line_syntax_highlighting(int p_line); + virtual Dictionary _get_line_syntax_highlighting(int p_line); - virtual String get_name() const; - virtual List<String> get_supported_languages(); + virtual String _get_name() const; + virtual Array _get_supported_languages() const; }; #endif // GDSCRIPT_HIGHLIGHTER_H |