29 lines
854 B
C#
29 lines
854 B
C#
using System.Threading;
|
|||
|
|
using Microsoft.CodeAnalysis.CSharp.Syntax;
|
||
|
|
using Microsoft.CodeAnalysis.Syntax;
|
||
|
|
|
||
|
|
namespace Microsoft.CodeAnalysis.CSharp;
|
||
|
|
|
||
|
|
internal sealed class NamespaceDeclarationSyntaxReference : TranslationSyntaxReference
|
||
|
|
{
|
||
|
|
public NamespaceDeclarationSyntaxReference(SyntaxReference reference)
|
||
|
|
: base(reference)
|
||
|
|
{
|
||
|
|
}
|
||
|
|
|
||
|
|
protected override SyntaxNode Translate(SyntaxReference reference, CancellationToken cancellationToken)
|
||
|
|
{
|
||
|
|
return GetSyntax(reference, cancellationToken);
|
||
|
|
}
|
||
|
|
|
||
|
|
internal static SyntaxNode GetSyntax(SyntaxReference reference, CancellationToken cancellationToken)
|
||
|
|
{
|
||
|
|
CSharpSyntaxNode cSharpSyntaxNode = (CSharpSyntaxNode)(object)reference.GetSyntax(cancellationToken);
|
||
|
|
while (cSharpSyntaxNode is NameSyntax)
|
||
|
|
{
|
||
|
|
cSharpSyntaxNode = cSharpSyntaxNode.Parent;
|
||
|
|
}
|
||
|
|
return (SyntaxNode)(object)cSharpSyntaxNode;
|
||
|
|
}
|
||
|
|
}
|