Fix bare nodepaths referencing absolute/root paths (#712)

This commit is contained in:
David Kincaid
2024-09-15 16:04:31 -04:00
committed by GitHub
parent 18225ab0d5
commit 5b725b55fd
5 changed files with 69 additions and 37 deletions

View File

@@ -400,20 +400,22 @@
]
},
"builtin_get_node_shorthand_bare": {
"name": "meta.literal.nodepath.gdscript",
"match": "(?<!/\\s*)(\\$|%|\\$%)([a-zA-Z_]\\w*)\\b(?!\\s*/)",
"name": "meta.literal.nodepath.bare.gdscript",
"match": "(?<!/\\s*)(\\$\\s*|%|\\$%\\s*)(/\\s*)?([a-zA-Z_]\\w*)\\b(?!\\s*/)",
"captures": {
"1": { "name": "keyword.control.flow.gdscript" },
"2": { "name": "constant.character.escape.gdscript" },
"3": { "name": "constant.character.escape.gdscript" }
"3": { "name": "constant.character.escape.gdscript" },
"4": { "name": "constant.character.escape.gdscript" }
}
},
"builtin_get_node_shorthand_bare_multi": {
"name": "meta.literal.nodepath.gdscript",
"begin": "(\\$|%|\\$%)([a-zA-Z_]\\w*)",
"name": "meta.literal.nodepath.bare.gdscript",
"begin": "(\\$\\s*|%|\\$%\\s*)(/\\s*)?([a-zA-Z_]\\w*)",
"beginCaptures": {
"1": { "name": "keyword.control.flow.gdscript" },
"2": { "name": "constant.character.escape.gdscript" }
"2": { "name": "constant.character.escape.gdscript" },
"3": { "name": "constant.character.escape.gdscript" }
},
"end": "(?!\\s*/\\s*%?\\s*[a-zA-Z_]\\w*)",
"patterns": [

View File

@@ -155,45 +155,53 @@ var CONSTANT_not
# ------------------------------------------------------------------------------
onready var node_a = $Child
onready var node_b = $Child/GrandChild
onready var node_bb = $Child/GrandChild/GreatGrandChild
onready var node_bbb = $Child/GrandChild/GreatGrandChild/GreatGreatGrandChild
onready var node_c = $"../Sibling"
onready var node_cc = $'../Sibling'
onready var node_d = $'..' # parent
onready var node_e = $"../.." # grandparent
var node_a = $Child
var node_b = $Child/GrandChild
var node_bb = $Child/GrandChild/GreatGrandChild
var node_bbb = $Child/GrandChild/GreatGrandChild/GreatGreatGrandChild
var node_c = $"../Sibling"
var node_cc = $'../Sibling'
var node_d = $'..' # parent
var node_e = $"../.." # grandparent
onready var node_f = get_node('Child')
onready var node_g = get_node("Child/GrandChild")
onready var node_h = get_node("../Sibling")
var node_f = get_node('Child')
var node_g = get_node("Child/GrandChild")
var node_h = get_node("../Sibling")
if has_node('Child') and get_node('Child').has_node('GrandChild'):
pass
onready var unique_node_a = $%Unique
onready var unique_node_b = $Child/%Unique
onready var unique_node_c = $Child/GrandChild/%Unique
onready var unique_node_d = $Child/%Unique/ChildOfUnique
onready var unique_node_e = %Unique
onready var unique_node_f = %Unique/Child
onready var unique_node_g = %Unique/%UniqueChild
var unique_node_a = $%Unique
var unique_node_b = $Child/%Unique
var unique_node_c = $Child/GrandChild/%Unique
var unique_node_d = $Child/%Unique/ChildOfUnique
var unique_node_e = %Unique
var unique_node_f = %Unique/Child
var unique_node_g = %Unique/%UniqueChild
onready var node_i = $"%Unique"
onready var node_ii = get_node("%Unique")
onready var node_iii = NodePath("%Unique")
onready var node_j = $'%Unique/Child'
onready var node_jj = get_node('%Unique/Child')
onready var node_jjj = NodePath('%Unique/Child')
onready var node_k = $"%Unique/%UniqueChild"
onready var node_kk = get_node("%Unique/%UniqueChild")
onready var node_kkk = NodePath("%Unique/%UniqueChild")
var a = $/root
var a = $/ root
var a = $/root/Child
var a = $/ root/ Child
var a = $/root/Child/%Unique
var a = $ / root / Child/%Unique
var a = $/root/Child/GrandChild
var node_i = $"%Unique"
var node_ii = get_node("%Unique")
var node_iii = NodePath("%Unique")
var node_j = $'%Unique/Child'
var node_jj = get_node('%Unique/Child')
var node_jjj = NodePath('%Unique/Child')
var node_k = $"%Unique/%UniqueChild"
var node_kk = get_node("%Unique/%UniqueChild")
var node_kkk = NodePath("%Unique/%UniqueChild")
if has_node('%Unique') and get_node('%Child').has_node('%GrandChild'):
pass
onready var node_i = $badlyNamedChild
onready var node_j = $badlyNamedChild/badly_named_grandchild
var node_i = $badlyNamedChild
var node_j = $badlyNamedChild/badly_named_grandchild
var node_path_a = NodePath("Child")
var node_path_b = NodePath('Child/GrandChild')