diff --git a/src/formatter/formatter.test.ts b/src/formatter/formatter.test.ts index d384a27..e722d88 100644 --- a/src/formatter/formatter.test.ts +++ b/src/formatter/formatter.test.ts @@ -34,7 +34,7 @@ suite("GDScript Formatter Tests", () => { await vscode.workspace.applyEdit(workspaceEdit); // Compare the result with the expected output - expect(documentIn.getText()).to.equal(documentOut.getText()); + expect(documentIn.getText().replace("\r\n", "\n")).to.equal(documentOut.getText().replace("\r\n", "\n")); }); } }); diff --git a/src/formatter/snapshots/nodepaths/in.gd b/src/formatter/snapshots/nodepaths/in.gd index 0152af2..71a199f 100644 --- a/src/formatter/snapshots/nodepaths/in.gd +++ b/src/formatter/snapshots/nodepaths/in.gd @@ -6,12 +6,15 @@ func f(): print("$Sprite1", $Sprite1) - print("%Sprite1", %Sprite1) + print( "%Sprite1" , %Sprite1) var a=val % otherVal +@onready var score := $HBoxContainer/Score as Label + var a = $Child var a = $Child/ GrandChild var a = $Child/ GrandChild / GreatGrandChild +var a = $Child/ Lots / Of / Grand / And / Great / Grand / Children . do_stuff() var a = $"../Sibling" var a = $'../Sibling' var a = $"../ Sibling " diff --git a/src/formatter/snapshots/nodepaths/out.gd b/src/formatter/snapshots/nodepaths/out.gd index ea7f59d..668557d 100644 --- a/src/formatter/snapshots/nodepaths/out.gd +++ b/src/formatter/snapshots/nodepaths/out.gd @@ -9,9 +9,12 @@ func f(): print("%Sprite1", %Sprite1) var a = val % otherVal +@onready var score := $HBoxContainer/Score as Label + var a = $Child var a = $Child/GrandChild var a = $Child/GrandChild/GreatGrandChild +var a = $Child/Lots/Of/Grand/And/Great/Grand/Children.do_stuff() var a = $"../Sibling" var a = $'../Sibling' var a = $"../ Sibling " diff --git a/src/formatter/textmate.ts b/src/formatter/textmate.ts index 3538656..ed89389 100644 --- a/src/formatter/textmate.ts +++ b/src/formatter/textmate.ts @@ -90,7 +90,7 @@ function between(tokens: Token[], current: number) { if (!prev) return ""; if (next === "#") return " "; - if (prevToken.skip) return ""; + if (prevToken.skip && nextToken.skip) return ""; if (nextToken.param) { if (next === "%") return " "; diff --git a/syntaxes/GDScript.tmLanguage.json b/syntaxes/GDScript.tmLanguage.json index 025e150..044eda4 100644 --- a/syntaxes/GDScript.tmLanguage.json +++ b/syntaxes/GDScript.tmLanguage.json @@ -321,7 +321,8 @@ "builtin_get_node_shorthand": { "patterns": [ { "include": "#builtin_get_node_shorthand_quoted" }, - { "include": "#builtin_get_node_shorthand_bare" } + { "include": "#builtin_get_node_shorthand_bare" }, + { "include": "#builtin_get_node_shorthand_bare_multi" } ] }, "builtin_get_node_shorthand_quoted": { @@ -341,18 +342,28 @@ }, "builtin_get_node_shorthand_bare": { "name": "meta.literal.nodepath.gdscript", - "begin": "(\\$|%|\\$%)([a-zA-Z_]\\w*/?)", + "match": "(?