SyntaxNode 类

定义

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

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

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

Language

此节点是语法的语言名称。

Parent

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

ParentTrivia

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

RawKind

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

Span

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

SpanStart

与访问 Start on Span相同。

SyntaxTree

返回拥有节点的 SyntaxTree;如果节点不属于 SyntaxTree,则返回 null

SyntaxTreeCore

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

方法

Ancestors(Boolean)

获取上级节点的列表

AncestorsAndSelf(Boolean)

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

ChildNodes()

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

ChildNodesAndTokens()

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

ChildThatContainsPosition(Int32)

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

ChildTokens()

获取此节点的直接子令牌的列表。

Contains(SyntaxNode)

确定指定的节点是否为此节点的子代。 返回当前节点的 true。

CopyAnnotationsTo<T>(T)

从此 SyntaxNode 实例复制所有 SyntaxAnnotations(如果有)并将其附加到基于 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()

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

GetRed<T>(T, Int32)

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

GetRedAtZero<T>(T)

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

GetReference()

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

GetText(Encoding, SourceHashAlgorithm)

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

GetTrailingTrivia()

源代码中此节点之后出现的琐事列表,并附加到此节点的后代的令牌。

HasAnnotation(SyntaxAnnotation)

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

HasAnnotations(IEnumerable<String>)

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

HasAnnotations(String)

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

InsertNodesInListCore(SyntaxNode, IEnumerable<SyntaxNode>, Boolean)

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

InsertTokensInListCore(SyntaxToken, IEnumerable<SyntaxToken>, Boolean)

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

InsertTriviaInListCore(SyntaxTrivia, IEnumerable<SyntaxTrivia>, Boolean)

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

IsEquivalentTo(SyntaxNode)

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

IsEquivalentTo(SyntaxNode, Boolean)

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

IsEquivalentToCore(SyntaxNode, Boolean)

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

IsIncrementallyIdenticalTo(SyntaxNode)

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

IsPartOfStructuredTrivia()

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

NormalizeWhitespaceCore(String, String, Boolean)

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

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>)

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

ReplaceTokenInListCore(SyntaxToken, IEnumerable<SyntaxToken>)

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

ReplaceTriviaInListCore(SyntaxTrivia, IEnumerable<SyntaxTrivia>)

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

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

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

IsKind(SyntaxNode, SyntaxKind)

确定是否 SyntaxNode 为指定类型。

适用于