SyntaxNode 类

定义

表示语法树中的非终端节点。 这是 与 语言无关的等效项CSharpSyntaxNodeVisualBasicSyntaxNode

public ref class SyntaxNode abstract
[System.Diagnostics.DebuggerDisplay("{GetDebuggerDisplay(), nq}")]
public abstract class SyntaxNode
[<System.Diagnostics.DebuggerDisplay("{GetDebuggerDisplay(), nq}")>]
type SyntaxNode = class
Public MustInherit Class SyntaxNode
继承
SyntaxNode
派生
属性

属性

ContainsAnnotations

确定此节点或任何子节点、令牌或琐事是否具有注释。

ContainsDiagnostics

确定此节点或其任何后代节点、令牌或琐事是否具有任何诊断。

ContainsDirectives

确定此节点是否具有任何后代预处理器指令。

ContainsSkippedText

确定此节点是否有任何子代跳过的文本。

FullSpan

此节点的绝对跨度(以字符为单位),包括其前导和尾随琐事。

HasLeadingTrivia

确定此节点是否有任何前导琐事。

HasStructuredTrivia

确定是否构建此节点的后代琐事。

HasTrailingTrivia

确定此节点是否有任何尾随琐事。

IsMissing

确定节点是否表示实际从源代码分析的语言构造。 缺少的节点在错误情况下由分析程序生成,以表示源代码中本应存在以便成功编译但实际上缺失的构造。

IsStructuredTrivia

确定此节点是否表示结构化琐事。

KindText

表示语法树中的非终端节点。 这是 与 语言无关的等效项CSharpSyntaxNodeVisualBasicSyntaxNode

Language

此节点的语法语言名称。

Parent

在其 ChildNodes() 集合中包含此节点的节点。

ParentTrivia

表示语法树中的非终端节点。 这是 与 语言无关的等效项CSharpSyntaxNodeVisualBasicSyntaxNode

RawKind

一个整数,表示此节点的语言特定类型。

Span

此节点的绝对范围(以字符为单位),不包括其前导和尾随琐碎内容。

SpanStart

与在 上Span访问 Start 相同。

SyntaxTree

返回 SyntaxTree 拥有节点的 。

SyntaxTreeCore

返回拥有节点的 SyntaxTree。 如果节点不属于树,则将生成一个。

方法

Ancestors(Boolean)

获取上级节点的列表

AncestorsAndSelf(Boolean)

获取上级节点的列表, (包括此节点)

ChildNodes()

按前缀文档顺序获取子节点的列表。

ChildNodesAndTokens()

此节点的子节点和标记的列表,其中每个元素都是一个 SyntaxNodeOrToken 实例。

ChildThatContainsPosition(Int32)

表示语法树中的非终端节点。 这是 与 语言无关的等效项CSharpSyntaxNodeVisualBasicSyntaxNode

ChildTokens()

获取此节点的直接子标记的列表。

Contains(SyntaxNode)

确定指定的节点是否是此节点的后代。 对于当前节点,返回 true。

ContainsDirective(Int32)

如果此节点包含任何指令, (如 #if#nullable等) 匹配类型,则返回 true。

CopyAnnotationsTo<T>(T)

从此 SyntaxNode 实例复制所有 SyntaxAnnotation(如果有),并将它们附加到基于 node的新实例。

DescendantNodes(Func<SyntaxNode,Boolean>, Boolean)

获取按前缀文档顺序排列的子代节点的列表。

DescendantNodes(TextSpan, Func<SyntaxNode,Boolean>, Boolean)

获取按前缀文档顺序排列的子代节点的列表。

DescendantNodesAndSelf(Func<SyntaxNode,Boolean>, Boolean)

获取子代节点的列表, (按前缀文档顺序包括此节点) 。

DescendantNodesAndSelf(TextSpan, Func<SyntaxNode,Boolean>, Boolean)

获取子代节点的列表, (按前缀文档顺序包括此节点) 。

DescendantNodesAndTokens(Func<SyntaxNode,Boolean>, Boolean)

按前缀文档顺序获取子代节点和标记的列表。

DescendantNodesAndTokens(TextSpan, Func<SyntaxNode,Boolean>, Boolean)

按前缀文档顺序获取子代节点和标记的列表。

DescendantNodesAndTokensAndSelf(Func<SyntaxNode,Boolean>, Boolean)

获取子代节点和标记的列表, (按前缀文档顺序包括此节点) 。

DescendantNodesAndTokensAndSelf(TextSpan, Func<SyntaxNode,Boolean>, Boolean)

获取子代节点和标记的列表, (按前缀文档顺序包括此节点) 。

DescendantTokens(Func<SyntaxNode,Boolean>, Boolean)

获取此节点跨度中的所有标记的列表。

DescendantTokens(TextSpan, Func<SyntaxNode,Boolean>, Boolean)

获取此节点整个范围中的所有标记的列表。

DescendantTrivia(Func<SyntaxNode,Boolean>, Boolean)

获取与子代节点和令牌关联的所有琐事的列表。

DescendantTrivia(TextSpan, Func<SyntaxNode,Boolean>, Boolean)

获取与子代节点和令牌关联的所有琐事的列表。

EquivalentToCore(SyntaxNode)

确定此节点在结构上是否等效于另一个节点。

FindNode(TextSpan, Boolean, Boolean)

查找包含 span的最小FullSpan节点。 getInnermostNodeForTie 用于确定 (节点与其父) 具有相同跨度的节点时的行为。 如果 getInnermostNodeForTie 为 true,则返回包含给定 span的最低降序节点。 否则,它将返回包含给定 span的最外层节点。

FindToken(Int32, Boolean)

查找此节点的后代标记,其范围包括提供的位置。

FindTokenCore(Int32, Boolean)

查找此节点的后代标记,其范围包括提供的位置。

FindTokenCore(Int32, Func<SyntaxTrivia,Boolean>)

查找此节点的后代标记,其范围包括提供的位置。

FindTrivia(Int32, Boolean)

查找此节点的子代琐事,其范围包括提供的位置。

FindTrivia(Int32, Func<SyntaxTrivia,Boolean>)

在指定位置查找此节点的子代琐事,其中位置在节点的跨度内。

FindTriviaCore(Int32, Boolean)

查找此节点的子代琐事,其范围包括提供的位置。

FirstAncestorOrSelf<TNode,TArg>(Func<TNode,TArg,Boolean>, TArg, Boolean)

获取与谓词匹配的 TNode 类型的第一个节点。

FirstAncestorOrSelf<TNode>(Func<TNode,Boolean>, Boolean)

获取与谓词匹配的 TNode 类型的第一个节点。

GetAnnotatedNodes(String)

获取具有指定批注类型的所有节点。

GetAnnotatedNodes(SyntaxAnnotation)

获取具有指定注释的所有节点。

GetAnnotatedNodesAndTokens(String)

获取具有指定批注类型注释的所有节点和标记。

GetAnnotatedNodesAndTokens(String[])

获取具有指定批注类型注释的所有节点和标记。

GetAnnotatedNodesAndTokens(SyntaxAnnotation)

获取具有指定注释的所有节点和标记。

GetAnnotatedTokens(String)

获取具有指定批注类型的所有标记。

GetAnnotatedTokens(SyntaxAnnotation)

获取具有指定注释的所有标记。

GetAnnotatedTrivia(String)

获取具有指定批注类型注释的所有琐事。

GetAnnotatedTrivia(String[])

获取具有指定批注类型注释的所有琐事。

GetAnnotatedTrivia(SyntaxAnnotation)

获取具有指定批注的所有琐事。

GetAnnotations(IEnumerable<String>)

获取具有指定批注类型的所有批注。

GetAnnotations(String)

获取具有指定批注类型的所有批注。

GetDiagnostics()

获取将此节点作为其根的子树中所有诊断的列表。 此方法不会基于#pragmas和编译器选项(如 nowarn、warnaserror 等)筛选诊断。

GetFirstToken(Boolean, Boolean, Boolean, Boolean)

获取此节点根目录树的第一个标记。 跳过零宽度标记。

GetLastToken(Boolean, Boolean, Boolean, Boolean)

获取此节点根目录树的最后一个标记。 跳过零宽度标记。

GetLeadingTrivia()

显示在源代码中此节点之前并附加到作为此节点后代的令牌的琐事列表。

GetLocation()

表示语法树中的非终端节点。 这是 与 语言无关的等效项CSharpSyntaxNodeVisualBasicSyntaxNode

GetRed<T>(T, Int32)

表示语法树中的非终端节点。 这是 与 语言无关的等效项CSharpSyntaxNodeVisualBasicSyntaxNode

GetRedAtZero<T>(T)

表示语法树中的非终端节点。 这是 与 语言无关的等效项CSharpSyntaxNodeVisualBasicSyntaxNode

GetReference()

SyntaxReference获取此语法节点的 。 CommonSyntaxReferences 可用于重新获得对语法节点的访问权限,而无需将整个树和源文本保留在内存中。

GetText(Encoding, SourceHashAlgorithm)

获取此节点作为新 SourceText 实例的全文。

GetTrailingTrivia()

显示在源代码中此节点之后并附加到作为此节点后代的令牌的琐事列表。

HasAnnotation(SyntaxAnnotation)

确定此节点是否具有特定批注。

HasAnnotations(IEnumerable<String>)

确定此节点是否具有具有任何特定批注类型的任何注释。

HasAnnotations(String)

确定此节点是否具有具有特定批注类型的任何批注。

InsertNodesInListCore(SyntaxNode, IEnumerable<SyntaxNode>, Boolean)

表示语法树中的非终端节点。 这是 与 语言无关的等效项CSharpSyntaxNodeVisualBasicSyntaxNode

InsertTokensInListCore(SyntaxToken, IEnumerable<SyntaxToken>, Boolean)

表示语法树中的非终端节点。 这是 与 语言无关的等效项CSharpSyntaxNodeVisualBasicSyntaxNode

InsertTriviaInListCore(SyntaxTrivia, IEnumerable<SyntaxTrivia>, Boolean)

表示语法树中的非终端节点。 这是 与 语言无关的等效项CSharpSyntaxNodeVisualBasicSyntaxNode

IsEquivalentTo(SyntaxNode)

确定此节点在结构上是否等效于另一个节点。

IsEquivalentTo(SyntaxNode, Boolean)

确定两个节点是否相同,忽略琐碎的差异。

IsEquivalentToCore(SyntaxNode, Boolean)

确定两个节点是否相同,忽略琐碎的差异。

IsIncrementallyIdenticalTo(SyntaxNode)

如果这两个节点被视为“增量相同”,则返回 true。 当 使用 WithChangedText(SourceText) 进行增量分析,并且增量分析程序能够从原始树中获取节点并在新树中完全使用它时SyntaxTree,将发生增量相同的节点。 在这种情况下, ToFullString() 每个节点的 将是相同的,尽管它们可能具有不同的父级,并且可能发生在其各自树中的不同位置。 如果两个节点增量相同,则每个节点的所有子级也将增量相同。

IsPartOfStructuredTrivia()

确定此节点是否是结构化琐事的后代。

NormalizeWhitespaceCore(String, String, Boolean)

表示语法树中的非终端节点。 这是 与 语言无关的等效项CSharpSyntaxNodeVisualBasicSyntaxNode

RemoveNodesCore(IEnumerable<SyntaxNode>, SyntaxRemoveOptions)

创建删除了指定节点的节点的新树。

ReplaceCore<TNode>(IEnumerable<TNode>, Func<TNode,TNode,SyntaxNode>, IEnumerable<SyntaxToken>, Func<SyntaxToken,SyntaxToken,SyntaxToken>, IEnumerable<SyntaxTrivia>, Func<SyntaxTrivia,SyntaxTrivia,SyntaxTrivia>)

使用替换了指定的节点、标记或琐事创建节点的新树。

ReplaceNodeInListCore(SyntaxNode, IEnumerable<SyntaxNode>)

表示语法树中的非终端节点。 这是 与 语言无关的等效项CSharpSyntaxNodeVisualBasicSyntaxNode

ReplaceTokenInListCore(SyntaxToken, IEnumerable<SyntaxToken>)

表示语法树中的非终端节点。 这是 与 语言无关的等效项CSharpSyntaxNodeVisualBasicSyntaxNode

ReplaceTriviaInListCore(SyntaxTrivia, IEnumerable<SyntaxTrivia>)

表示语法树中的非终端节点。 这是 与 语言无关的等效项CSharpSyntaxNodeVisualBasicSyntaxNode

SerializeTo(Stream, CancellationToken)
已过时.
已过时.

将节点序列化为给定 stream的 。 stream使 保持打开状态,以便进一步写入。

ToFullString()

返回此节点的完整字符串表示形式,包括其前导和尾随琐事。

ToString()

返回此节点的字符串表示形式,不包括其前导和尾随琐碎内容。

WriteTo(TextWriter)

将此节点的全文写入指定的 TextWriter

扩展方法

GetFirstDirective(SyntaxNode, Func<DirectiveTriviaSyntax,Boolean>)

获取此节点根目录树的第一个指令。

GetLastDirective(SyntaxNode, Func<DirectiveTriviaSyntax,Boolean>)

获取此节点根目录树的最后一个指令。

Kind(SyntaxNode)

SyntaxKindRawKind 属性返回 。SyntaxNode

TryGetInferredMemberName(SyntaxNode)

给定初始值设定项表达式,推断匿名属性或元组元素的名称。 如果失败,则返回 null

ContainsDirective(SyntaxNode, SyntaxKind)

如果此节点包含任何指令, (如 #if#nullable等) 匹配类型,则返回 true。

IsKind(SyntaxNode, SyntaxKind)

确定 是否 SyntaxNode 为指定类型。

GetCurrentNode<TNode>(SyntaxNode, TNode)

获取子树中对应于原始跟踪节点的节点。 使用 TrackNodes 开始跟踪节点。

GetCurrentNodes<TNode>(SyntaxNode, TNode)

获取子树中对应于原始跟踪节点的节点。 使用 TrackNodes 开始跟踪节点。

GetCurrentNodes<TNode>(SyntaxNode, IEnumerable<TNode>)

获取子树中对应于原始跟踪节点的节点。 使用 TrackNodes 开始跟踪节点。

TryGetInferredMemberName(SyntaxNode)

给定初始值设定项表达式,推断匿名属性或元组元素的名称。 如果不成功,则返回 Nothing

GetDirectives(SyntaxNode, Func<DirectiveTriviaSyntax,Boolean>)

获取具有可选筛选的指定 SyntaxNode 的 DirectiveTriviaSyntax 项。

GetFirstDirective(SyntaxNode, Func<DirectiveTriviaSyntax,Boolean>)

获取指定 SyntaxNode 的第一个 DirectiveTriviaSyntax 项。

GetLastDirective(SyntaxNode, Func<DirectiveTriviaSyntax,Boolean>)

获取指定 SyntaxNode 的最后一个 DirectiveTriviaSyntax 项。

Kind(SyntaxNode)

SyntaxKindRawKind 属性返回 。SyntaxNode

ContainsDirective(SyntaxNode, SyntaxKind)

如果此节点包含任何指令, (如 #if#nullable等) 匹配类型,则返回 true。

IsKind(SyntaxNode, SyntaxKind)

确定 是否 SyntaxNode 为指定类型。

适用于