From 29ff04acf2d2fdec0b057c49dbf704e02a1d44f9 Mon Sep 17 00:00:00 2001 From: Yuri Rubinsky Date: Fri, 20 May 2022 18:38:06 +0300 Subject: [PATCH] Fix incorrect keyword completion after period in shader editor --- servers/rendering/shader_language.cpp | 9 +++++++++ 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 d2e188a9a7c..316cf50ab70 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 d4a2e0b549a..44724f19417 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 {