diff options
Diffstat (limited to 'modules/mono/editor/Godot.NET.Sdk/Godot.SourceGenerators/ExtensionMethods.cs')
-rw-r--r-- | modules/mono/editor/Godot.NET.Sdk/Godot.SourceGenerators/ExtensionMethods.cs | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/modules/mono/editor/Godot.NET.Sdk/Godot.SourceGenerators/ExtensionMethods.cs b/modules/mono/editor/Godot.NET.Sdk/Godot.SourceGenerators/ExtensionMethods.cs index 9784bd0b78..957d5789df 100644 --- a/modules/mono/editor/Godot.NET.Sdk/Godot.SourceGenerators/ExtensionMethods.cs +++ b/modules/mono/editor/Godot.NET.Sdk/Godot.SourceGenerators/ExtensionMethods.cs @@ -208,7 +208,17 @@ namespace Godot.SourceGenerators if (child.IsNode) { - FullQualifiedSyntax(child.AsNode()!, sm, sb, isFirstNode: innerIsFirstNode); + var childNode = child.AsNode()!; + + if (node is InterpolationSyntax && childNode is ExpressionSyntax) + { + ParenEnclosedFullQualifiedSyntax(childNode, sm, sb, isFirstNode: innerIsFirstNode); + } + else + { + FullQualifiedSyntax(childNode, sm, sb, isFirstNode: innerIsFirstNode); + } + innerIsFirstNode = false; } else @@ -221,6 +231,13 @@ namespace Godot.SourceGenerators sb.Append(child.GetTrailingTrivia()); } } + + static void ParenEnclosedFullQualifiedSyntax(SyntaxNode node, SemanticModel sm, StringBuilder sb, bool isFirstNode) + { + sb.Append(SyntaxFactory.Token(SyntaxKind.OpenParenToken)); + FullQualifiedSyntax(node, sm, sb, isFirstNode); + sb.Append(SyntaxFactory.Token(SyntaxKind.CloseParenToken)); + } } public static string SanitizeQualifiedNameForUniqueHint(this string qualifiedName) |