Поделиться через


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

Определяет, есть ли у этого узла или подузла, маркера или trivia заметки.

ContainsDiagnostics

Определяет, есть ли на этом узле или у любого из его потомков узлов, маркеров или мелочей диагностика.

ContainsDirectives

Определяет, есть ли у этого узла какие-либо директивы препроцессора-потомка.

ContainsSkippedText

Определяет, есть ли в этом узле пропущенный текст-потомок.

FullSpan

Абсолютный диапазон этого узла в символах, включая его начальную и завершающую мелочи.

HasLeadingTrivia

Определяет, есть ли у этого узла какие-либо ведущие мелочи.

HasStructuredTrivia

Определяет, структурирована ли потомковая мелочь этого узла.

HasTrailingTrivia

Определяет, есть ли у этого узла какие-либо конечные мелочи.

IsMissing

Определяет, представляет ли узел языковую конструкцию, которая была фактически проанализирована из исходного кода. Отсутствующие узлы создаются анализатором в сценариях ошибок для представления конструкций, которые должны были присутствовать в исходном коде для успешной компиляции, но на самом деле отсутствовали.

IsStructuredTrivia

Определяет, представляет ли этот узел структурированную мелочь.

KindText

Представляет узел, не относящегося к терминалу, в дереве синтаксиса. Это не зависящий от языка эквивалент CSharpSyntaxNode и VisualBasicSyntaxNode.

Language

Имя языка, синтаксиса для этого узла.

Parent

Узел, содержащий этот узел в своей ChildNodes() коллекции.

ParentTrivia

Представляет узел, не относящегося к терминалу, в дереве синтаксиса. Это не зависящий от языка эквивалент CSharpSyntaxNode и VisualBasicSyntaxNode.

RawKind

Целое число, представляющее языковой тип данного узла.

Span

Абсолютный диапазон этого узла в символах, не включая его начальные и конечные мелочи.

SpanStart

То же, что и при доступе к StartSpan.

SyntaxTree

Возвращает SyntaxTree объект , владеющий узлом.

SyntaxTreeCore

Возвращает SyntaxTree, которому принадлежит узел. Если узел не принадлежит дереву, он будет создан.

Методы

Ancestors(Boolean)

Возвращает список узлов-предков.

AncestorsAndSelf(Boolean)

Возвращает список узлов-предков (включая этот узел)

ChildNodes()

Возвращает список дочерних узлов в порядке префикса документа.

ChildNodesAndTokens()

Список дочерних узлов и токенов этого узла, где каждый элемент является экземпляром SyntaxNodeOrToken.

ChildThatContainsPosition(Int32)

Представляет узел, не относящегося к терминалу, в дереве синтаксиса. Это не зависящий от языка эквивалент CSharpSyntaxNode и VisualBasicSyntaxNode.

ChildTokens()

Возвращает список прямых дочерних маркеров этого узла.

Contains(SyntaxNode)

Определяет, является ли указанный узел потомком этого узла. Возвращает значение true для текущего узла.

ContainsDirective(Int32)

Возвращает значение true, если этот узел содержит директивы (например #if, , #nullableи т. д.) с соответствующим типом.

CopyAnnotationsTo<T>(T)

Копирует все объекты SyntaxAnnotation , если таковые есть, из этого экземпляра SyntaxNode и присоединяет их к новому экземпляру на 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)

Находит узел с наименьшим FullSpan значением , содержащим span. 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)

Возвращает SyntaxKind для SyntaxNode свойства from RawKind .

TryGetInferredMemberName(SyntaxNode)

При указании выражения инициализатора выводится имя анонимного свойства или элемента кортежа. Возвращает значение NULL, если не удалось

ContainsDirective(SyntaxNode, SyntaxKind)

Возвращает значение true, если этот узел содержит директивы (например #if, , #nullableи т. д.) с соответствующим типом.

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

Возвращает элементы DirectiveTriviaSyntax для указанного SyntaxNode с необязательной фильтрацией.

GetFirstDirective(SyntaxNode, Func<DirectiveTriviaSyntax,Boolean>)

Возвращает первый элемент DirectiveTriviaSyntax для указанного syntaxNode.

GetLastDirective(SyntaxNode, Func<DirectiveTriviaSyntax,Boolean>)

Возвращает последний элемент DirectiveTriviaSyntax для указанного syntaxNode.

Kind(SyntaxNode)

Возвращает SyntaxKind значение для SyntaxNode свойства from RawKind .

ContainsDirective(SyntaxNode, SyntaxKind)

Возвращает значение true, если этот узел содержит директивы (например #if, , #nullableи т. д.) с соответствующим типом.

IsKind(SyntaxNode, SyntaxKind)

Определяет, имеет ли SyntaxNode тип указанного типа.

Применяется к