From adeed584776a7b91d2de6dd5cbb43fe3e35114e1 Mon Sep 17 00:00:00 2001 From: Paulb23 Date: Thu, 12 Apr 2018 23:49:44 +0100 Subject: Added GDScript NodePath highlighting --- modules/gdscript/editor/gdscript_highlighter.cpp | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) (limited to 'modules/gdscript/editor/gdscript_highlighter.cpp') diff --git a/modules/gdscript/editor/gdscript_highlighter.cpp b/modules/gdscript/editor/gdscript_highlighter.cpp index 9e9e3df0ee..ea3efff9cf 100644 --- a/modules/gdscript/editor/gdscript_highlighter.cpp +++ b/modules/gdscript/editor/gdscript_highlighter.cpp @@ -30,8 +30,8 @@ #include "gdscript_highlighter.h" #include "../gdscript_tokenizer.h" -#include "scene/gui/text_edit.h" #include "editor/editor_settings.h" +#include "scene/gui/text_edit.h" inline bool _is_symbol(CharType c) { @@ -76,6 +76,7 @@ Map GDScriptSyntaxHighlighter::_get_line_syntax_ bool in_word = false; bool in_function_name = false; bool in_member_variable = false; + bool in_node_path = false; bool is_hex_notation = false; Color keyword_color; Color color; @@ -223,9 +224,18 @@ Map GDScriptSyntaxHighlighter::_get_line_syntax_ in_member_variable = false; } + if (!in_node_path && in_region == -1 && str[j] == '$') { + in_node_path = true; + } else if (in_region != -1 || (is_symbol && str[j] != '/')) { + in_node_path = false; + } + if (in_region >= 0) { next_type = REGION; color = text_editor->_get_color_region(in_region).color; + } else if (in_node_path) { + next_type = NODE_PATH; + color = node_path_color; } else if (in_keyword) { next_type = KEYWORD; color = keyword_color; @@ -303,6 +313,7 @@ void GDScriptSyntaxHighlighter::_update_cache() { member_color = text_editor->get_color("member_variable_color"); function_definition_color = EDITOR_DEF("text_editor/highlighting/gdscript/function_definition_color", Color::html("#01e1ff")); + node_path_color = EDITOR_DEF("text_editor/highlighting/gdscript/node_path_color", Color::html("#64c15a")); } SyntaxHighlighter *GDScriptSyntaxHighlighter::create() { -- cgit v1.2.3