diff options
author | Yuri Rubinsky <chaosus89@gmail.com> | 2022-05-20 18:38:06 +0300 |
---|---|---|
committer | Yuri Rubinsky <chaosus89@gmail.com> | 2022-05-20 18:40:57 +0300 |
commit | 29ff04acf2d2fdec0b057c49dbf704e02a1d44f9 (patch) | |
tree | dad58450f07d4cae831cabd61c025f09148180b2 /servers/rendering | |
parent | 29708f79a8581bd126072567c6fe9083e7cec9ae (diff) |
Fix incorrect keyword completion after period in shader editor
Diffstat (limited to 'servers/rendering')
-rw-r--r-- | servers/rendering/shader_language.cpp | 9 | ||||
-rw-r--r-- | servers/rendering/shader_language.h | 4 |
2 files changed, 11 insertions, 2 deletions
diff --git a/servers/rendering/shader_language.cpp b/servers/rendering/shader_language.cpp index d2e188a9a7..316cf50ab7 100644 --- a/servers/rendering/shader_language.cpp +++ b/servers/rendering/shader_language.cpp @@ -5379,6 +5379,11 @@ ShaderLanguage::Node *ShaderLanguage::_parse_expression(BlockNode *p_block, cons if (tk.type == TK_CURSOR) { //do nothing } else if (tk.type == TK_PERIOD) { +#ifdef DEBUG_ENABLED + uint32_t prev_keyword_completion_context = keyword_completion_context; + keyword_completion_context = CF_UNSPECIFIED; +#endif + DataType dt = expr->get_datatype(); String st = expr->get_datatype_name(); @@ -5734,6 +5739,10 @@ ShaderLanguage::Node *ShaderLanguage::_parse_expression(BlockNode *p_block, cons } expr = mn; +#ifdef DEBUG_ENABLED + keyword_completion_context = prev_keyword_completion_context; +#endif + //todo //member (period) has priority over any operator //creates a subindexing expression in place diff --git a/servers/rendering/shader_language.h b/servers/rendering/shader_language.h index d4a2e0b549..44724f1941 100644 --- a/servers/rendering/shader_language.h +++ b/servers/rendering/shader_language.h @@ -503,7 +503,7 @@ public: BlockNode *parent_block = nullptr; enum BlockType { - BLOCK_TYPE_STANDART, + BLOCK_TYPE_STANDARD, BLOCK_TYPE_FOR_INIT, BLOCK_TYPE_FOR_CONDITION, BLOCK_TYPE_FOR_EXPRESSION, @@ -512,7 +512,7 @@ public: BLOCK_TYPE_DEFAULT, }; - int block_type = BLOCK_TYPE_STANDART; + int block_type = BLOCK_TYPE_STANDARD; SubClassTag block_tag = SubClassTag::TAG_GLOBAL; struct Variable { |