SyntaxNode Class
Definition
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
Represents a non-terminal node in the syntax tree. This is the language agnostic equivalent of CSharpSyntaxNode and 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
- Inheritance
-
SyntaxNode
- Derived
- Attributes
Properties
ContainsAnnotations |
Determines whether this node or any sub node, token or trivia has annotations. |
ContainsDiagnostics |
Determines whether this node or any of its descendant nodes, tokens or trivia have any diagnostics on them. |
ContainsDirectives |
Determines whether this node has any descendant preprocessor directives. |
ContainsSkippedText |
Determines whether this node has any descendant skipped text. |
FullSpan |
The absolute span of this node in characters, including its leading and trailing trivia. |
HasLeadingTrivia |
Determines whether this node has any leading trivia. |
HasStructuredTrivia |
Determines whether a descendant trivia of this node is structured. |
HasTrailingTrivia |
Determines whether this node has any trailing trivia. |
IsMissing |
Determines whether the node represents a language construct that was actually parsed from the source code. Missing nodes are generated by the parser in error scenarios to represent constructs that should have been present in the source code in order to compile successfully but were actually missing. |
IsStructuredTrivia |
Determines whether this node represents a structured trivia. |
KindText | |
Language |
The language name that this node is syntax of. |
Parent |
The node that contains this node in its ChildNodes() collection. |
ParentTrivia | |
RawKind |
An integer representing the language specific kind of this node. |
Span |
The absolute span of this node in characters, not including its leading and trailing trivia. |
SpanStart | |
SyntaxTree |
Returns SyntaxTree that owns the node. |
SyntaxTreeCore |
Returns SyntaxTree that owns the node. If the node does not belong to a tree then one will be generated. |
Methods
Ancestors(Boolean) |
Gets a list of ancestor nodes |
AncestorsAndSelf(Boolean) |
Gets a list of ancestor nodes (including this node) |
ChildNodes() |
Gets a list of the child nodes in prefix document order. |
ChildNodesAndTokens() |
The list of child nodes and tokens of this node, where each element is a SyntaxNodeOrToken instance. |
ChildThatContainsPosition(Int32) | |
ChildTokens() |
Gets a list of the direct child tokens of this node. |
Contains(SyntaxNode) |
Determines if the specified node is a descendant of this node. Returns true for current node. |
ContainsDirective(Int32) |
Returns true if this node contains any directives (e.g. |
CopyAnnotationsTo<T>(T) |
Copies all SyntaxAnnotations, if any, from this SyntaxNode instance and attaches them to a new instance based on |
DescendantNodes(Func<SyntaxNode,Boolean>, Boolean) |
Gets a list of descendant nodes in prefix document order. |
DescendantNodes(TextSpan, Func<SyntaxNode,Boolean>, Boolean) |
Gets a list of descendant nodes in prefix document order. |
DescendantNodesAndSelf(Func<SyntaxNode,Boolean>, Boolean) |
Gets a list of descendant nodes (including this node) in prefix document order. |
DescendantNodesAndSelf(TextSpan, Func<SyntaxNode,Boolean>, Boolean) |
Gets a list of descendant nodes (including this node) in prefix document order. |
DescendantNodesAndTokens(Func<SyntaxNode,Boolean>, Boolean) |
Gets a list of descendant nodes and tokens in prefix document order. |
DescendantNodesAndTokens(TextSpan, Func<SyntaxNode,Boolean>, Boolean) |
Gets a list of the descendant nodes and tokens in prefix document order. |
DescendantNodesAndTokensAndSelf(Func<SyntaxNode,Boolean>, Boolean) |
Gets a list of descendant nodes and tokens (including this node) in prefix document order. |
DescendantNodesAndTokensAndSelf(TextSpan, Func<SyntaxNode,Boolean>, Boolean) |
Gets a list of the descendant nodes and tokens (including this node) in prefix document order. |
DescendantTokens(Func<SyntaxNode,Boolean>, Boolean) |
Gets a list of all the tokens in the span of this node. |
DescendantTokens(TextSpan, Func<SyntaxNode,Boolean>, Boolean) |
Gets a list of all the tokens in the full span of this node. |
DescendantTrivia(Func<SyntaxNode,Boolean>, Boolean) |
Get a list of all the trivia associated with the descendant nodes and tokens. |
DescendantTrivia(TextSpan, Func<SyntaxNode,Boolean>, Boolean) |
Get a list of all the trivia associated with the descendant nodes and tokens. |
EquivalentToCore(SyntaxNode) |
Determine if this node is structurally equivalent to another. |
FindNode(TextSpan, Boolean, Boolean) |
Finds the node with the smallest FullSpan that contains |
FindToken(Int32, Boolean) |
Finds a descendant token of this node whose span includes the supplied position. |
FindTokenCore(Int32, Boolean) |
Finds a descendant token of this node whose span includes the supplied position. |
FindTokenCore(Int32, Func<SyntaxTrivia,Boolean>) |
Finds a descendant token of this node whose span includes the supplied position. |
FindTrivia(Int32, Boolean) |
Finds a descendant trivia of this node whose span includes the supplied position. |
FindTrivia(Int32, Func<SyntaxTrivia,Boolean>) |
Finds a descendant trivia of this node at the specified position, where the position is within the span of the node. |
FindTriviaCore(Int32, Boolean) |
Finds a descendant trivia of this node whose span includes the supplied position. |
FirstAncestorOrSelf<TNode,TArg>(Func<TNode,TArg,Boolean>, TArg, Boolean) |
Gets the first node of type TNode that matches the predicate. |
FirstAncestorOrSelf<TNode>(Func<TNode,Boolean>, Boolean) |
Gets the first node of type TNode that matches the predicate. |
GetAnnotatedNodes(String) |
Gets all nodes with the specified annotation kind. |
GetAnnotatedNodes(SyntaxAnnotation) |
Gets all nodes with the specified annotation. |
GetAnnotatedNodesAndTokens(String) |
Gets all nodes and tokens with an annotation of the specified annotation kind. |
GetAnnotatedNodesAndTokens(String[]) |
Gets all nodes and tokens with an annotation of the specified annotation kinds. |
GetAnnotatedNodesAndTokens(SyntaxAnnotation) |
Gets all nodes and tokens with the specified annotation. |
GetAnnotatedTokens(String) |
Gets all tokens with the specified annotation kind. |
GetAnnotatedTokens(SyntaxAnnotation) |
Gets all tokens with the specified annotation. |
GetAnnotatedTrivia(String) |
Gets all trivia with an annotation of the specified annotation kind. |
GetAnnotatedTrivia(String[]) |
Gets all trivia with an annotation of the specified annotation kinds. |
GetAnnotatedTrivia(SyntaxAnnotation) |
Gets all trivia with the specified annotation. |
GetAnnotations(IEnumerable<String>) |
Gets all the annotations with the specified annotation kinds. |
GetAnnotations(String) |
Gets all the annotations with the specified annotation kind. |
GetDiagnostics() |
Gets a list of all the diagnostics in the sub tree that has this node as its root. This method does not filter diagnostics based on #pragmas and compiler options like nowarn, warnaserror etc. |
GetFirstToken(Boolean, Boolean, Boolean, Boolean) |
Gets the first token of the tree rooted by this node. Skips zero-width tokens. |
GetLastToken(Boolean, Boolean, Boolean, Boolean) |
Gets the last token of the tree rooted by this node. Skips zero-width tokens. |
GetLeadingTrivia() |
The list of trivia that appears before this node in the source code and are attached to a token that is a descendant of this node. |
GetLocation() | |
GetRed<T>(T, Int32) | |
GetRedAtZero<T>(T) | |
GetReference() |
Gets a SyntaxReference for this syntax node. CommonSyntaxReferences can be used to regain access to a syntax node without keeping the entire tree and source text in memory. |
GetText(Encoding, SourceHashAlgorithm) |
Gets the full text of this node as a new SourceText instance. |
GetTrailingTrivia() |
The list of trivia that appears after this node in the source code and are attached to a token that is a descendant of this node. |
HasAnnotation(SyntaxAnnotation) |
Determines whether this node has the specific annotation. |
HasAnnotations(IEnumerable<String>) |
Determines whether this node has any annotations with any of the specific annotation kinds. |
HasAnnotations(String) |
Determines whether this node has any annotations with the specific annotation kind. |
InsertNodesInListCore(SyntaxNode, IEnumerable<SyntaxNode>, Boolean) | |
InsertTokensInListCore(SyntaxToken, IEnumerable<SyntaxToken>, Boolean) | |
InsertTriviaInListCore(SyntaxTrivia, IEnumerable<SyntaxTrivia>, Boolean) | |
IsEquivalentTo(SyntaxNode) |
Determine whether this node is structurally equivalent to another. |
IsEquivalentTo(SyntaxNode, Boolean) |
Determines if two nodes are the same, disregarding trivia differences. |
IsEquivalentToCore(SyntaxNode, Boolean) |
Determines if two nodes are the same, disregarding trivia differences. |
IsIncrementallyIdenticalTo(SyntaxNode) |
Returns true if these two nodes are considered "incrementally identical". An incrementally identical node occurs when a SyntaxTree is incrementally parsed using WithChangedText(SourceText) and the incremental parser is able to take the node from the original tree and use it in its entirety in the new tree. In this case, the ToFullString() of each node will be the same, though they could have different parents, and may occur at different positions in their respective trees. If two nodes are incrementally identical, all children of each node will be incrementally identical as well. |
IsPartOfStructuredTrivia() |
Determines whether this node is a descendant of a structured trivia. |
NormalizeWhitespaceCore(String, String, Boolean) | |
RemoveNodesCore(IEnumerable<SyntaxNode>, SyntaxRemoveOptions) |
Creates a new tree of nodes with the specified node removed. |
ReplaceCore<TNode>(IEnumerable<TNode>, Func<TNode,TNode,SyntaxNode>, IEnumerable<SyntaxToken>, Func<SyntaxToken,SyntaxToken,SyntaxToken>, IEnumerable<SyntaxTrivia>, Func<SyntaxTrivia,SyntaxTrivia,SyntaxTrivia>) |
Creates a new tree of nodes with the specified nodes, tokens or trivia replaced. |
ReplaceNodeInListCore(SyntaxNode, IEnumerable<SyntaxNode>) | |
ReplaceTokenInListCore(SyntaxToken, IEnumerable<SyntaxToken>) | |
ReplaceTriviaInListCore(SyntaxTrivia, IEnumerable<SyntaxTrivia>) | |
SerializeTo(Stream, CancellationToken) |
Obsolete.
Obsolete.
Serializes the node to the given |
ToFullString() |
Returns full string representation of this node including its leading and trailing trivia. |
ToString() |
Returns the string representation of this node, not including its leading and trailing trivia. |
WriteTo(TextWriter) |
Writes the full text of this node to the specified TextWriter. |
Extension Methods
GetFirstDirective(SyntaxNode, Func<DirectiveTriviaSyntax,Boolean>) |
Gets the first directive of the tree rooted by this node. |
GetLastDirective(SyntaxNode, Func<DirectiveTriviaSyntax,Boolean>) |
Gets the last directive of the tree rooted by this node. |
Kind(SyntaxNode) |
Returns SyntaxKind for SyntaxNode from RawKind property. |
TryGetInferredMemberName(SyntaxNode) |
Given an initializer expression infer the name of anonymous property or tuple element. Returns null if unsuccessful |
ContainsDirective(SyntaxNode, SyntaxKind) |
Returns true if this node contains any directives (e.g. |
IsKind(SyntaxNode, SyntaxKind) |
Determines if SyntaxNode is of a specified kind. |
GetCurrentNode<TNode>(SyntaxNode, TNode) |
Gets the node within the subtree corresponding to the original tracked node. Use TrackNodes to start tracking nodes. |
GetCurrentNodes<TNode>(SyntaxNode, TNode) |
Gets the nodes within the subtree corresponding to the original tracked node. Use TrackNodes to start tracking nodes. |
GetCurrentNodes<TNode>(SyntaxNode, IEnumerable<TNode>) |
Gets the nodes within the subtree corresponding to the original tracked nodes. Use TrackNodes to start tracking nodes. |
TryGetInferredMemberName(SyntaxNode) |
Given an initializer expression infer the name of anonymous property or tuple element. Returns Nothing if unsuccessful |
GetDirectives(SyntaxNode, Func<DirectiveTriviaSyntax,Boolean>) |
Gets the DirectiveTriviaSyntax items for a specified SyntaxNode with optional filtering. |
GetFirstDirective(SyntaxNode, Func<DirectiveTriviaSyntax,Boolean>) |
Gets the first DirectiveTriviaSyntax item for a specified SyntaxNode. |
GetLastDirective(SyntaxNode, Func<DirectiveTriviaSyntax,Boolean>) |
Gets the last DirectiveTriviaSyntax item for a specified SyntaxNode. |
Kind(SyntaxNode) |
Returns SyntaxKind for SyntaxNode from RawKind property. |
ContainsDirective(SyntaxNode, SyntaxKind) |
Returns true if this node contains any directives (e.g. |
IsKind(SyntaxNode, SyntaxKind) |
Determines if SyntaxNode is of a specified kind. |