瀏覽代碼

Fix highlight color for class attributes that are also keywords

Fixes #45338. 
This PR also makes any word after a "." not highlight as a keyword, i.e. the cos
in Color.cos will highlight the same as any other class constant. Additionally,
trying to do things like ".print()" will not highlight print as a keyword but as
a class function.
lucasvanmol 4 年之前
父節點
當前提交
6742f6894e
共有 1 個文件被更改,包括 8 次插入6 次删除
  1. 8 6
      modules/gdscript/editor/gdscript_highlighter.cpp

+ 8 - 6
modules/gdscript/editor/gdscript_highlighter.cpp

@@ -191,19 +191,21 @@ Map<int, TextEdit::HighlighterInfo> GDScriptSyntaxHighlighter::_get_line_syntax_
 				col = text_editor->get_keyword_color(word);
 			} else if (text_editor->has_member_color(word)) {
 				col = text_editor->get_member_color(word);
+			}
+
+			if (col != Color()) {
 				for (int k = j - 1; k >= 0; k--) {
 					if (str[k] == '.') {
-						col = Color(); //member indexing not allowed
+						col = Color(); // keyword & member indexing not allowed
 						break;
 					} else if (str[k] > 32) {
 						break;
 					}
 				}
-			}
-
-			if (col != Color()) {
-				in_keyword = true;
-				keyword_color = col;
+				if (col != Color()) {
+					in_keyword = true;
+					keyword_color = col;
+				}
 			}
 		}