summaryrefslogtreecommitdiff
path: root/servers/rendering
diff options
context:
space:
mode:
authorRémi Verschelde <remi@verschelde.fr>2021-05-07 00:52:50 +0200
committerGitHub <noreply@github.com>2021-05-07 00:52:50 +0200
commit8962d36bb1c249d608f2d2855f7b8258b0ed6309 (patch)
treec3e00d103d7b0fd27c95292bc1752ba2b611f42d /servers/rendering
parent49b556a9f112be63b1c188dfb7ba055db7118471 (diff)
parente905e8f145ef5d91aa6f8200bf415569e28d5967 (diff)
Merge pull request #33577 from Calinou/highlight-control-flow-keywords
Highlight control flow keywords with a different color
Diffstat (limited to 'servers/rendering')
-rw-r--r--servers/rendering/shader_language.cpp14
-rw-r--r--servers/rendering/shader_language.h1
2 files changed, 15 insertions, 0 deletions
diff --git a/servers/rendering/shader_language.cpp b/servers/rendering/shader_language.cpp
index 0d6d3f5e13..a81306b97d 100644
--- a/servers/rendering/shader_language.cpp
+++ b/servers/rendering/shader_language.cpp
@@ -2969,6 +2969,20 @@ void ShaderLanguage::get_keyword_list(List<String> *r_keywords) {
}
}
+bool ShaderLanguage::is_control_flow_keyword(String p_keyword) {
+ return p_keyword == "break" ||
+ p_keyword == "case" ||
+ p_keyword == "continue" ||
+ p_keyword == "default" ||
+ p_keyword == "do" ||
+ p_keyword == "else" ||
+ p_keyword == "for" ||
+ p_keyword == "if" ||
+ p_keyword == "return" ||
+ p_keyword == "switch" ||
+ p_keyword == "while";
+}
+
void ShaderLanguage::get_builtin_funcs(List<String> *r_keywords) {
Set<String> kws;
diff --git a/servers/rendering/shader_language.h b/servers/rendering/shader_language.h
index 470f3d38d5..e00f4dce19 100644
--- a/servers/rendering/shader_language.h
+++ b/servers/rendering/shader_language.h
@@ -748,6 +748,7 @@ public:
static uint32_t get_type_size(DataType p_type);
static void get_keyword_list(List<String> *r_keywords);
+ static bool is_control_flow_keyword(String p_keyword);
static void get_builtin_funcs(List<String> *r_keywords);
struct BuiltInInfo {