199 references to StackFrameKind
Microsoft.CodeAnalysis.EditorFeatures.UnitTests (46)
EmbeddedLanguages\StackFrame\StackFrameParserTests.cs (4)
513leadingTrivia: CreateTrivia(StackFrameKind.AtTrivia, $"{at} "))), 518line: CreateToken(StackFrameKind.NumberToken, "16", leadingTrivia: [CreateTrivia(StackFrameKind.LineTrivia, $"{line} ")]), 519inTrivia: CreateTrivia(StackFrameKind.InTrivia, $" {@in} "))
EmbeddedLanguages\StackFrame\StackFrameParserTests.Utilities.cs (2)
19using StackFrameToken = EmbeddedSyntaxToken<StackFrameKind>; 62: CreateToken(StackFrameKind.EndOfFrame, "");
EmbeddedLanguages\StackFrame\StackFrameSyntaxFactory.cs (36)
15using StackFrameNodeOrToken = EmbeddedSyntaxNodeOrToken<StackFrameKind, StackFrameNode>; 16using StackFrameToken = EmbeddedSyntaxToken<StackFrameKind>; 17using StackFrameTrivia = EmbeddedSyntaxTrivia<StackFrameKind>; 21public static StackFrameToken CreateToken(StackFrameKind kind, string s, ImmutableArray<StackFrameTrivia> leadingTrivia = default, ImmutableArray<StackFrameTrivia> trailingTrivia = default) 30public static StackFrameTrivia CreateTrivia(StackFrameKind kind, string text) 34=> [.. strings.Select(s => CreateTrivia(StackFrameKind.SkippedTextTrivia, s))]; 36public static readonly StackFrameToken DotToken = CreateToken(StackFrameKind.DotToken, "."); 37public static readonly StackFrameToken CommaToken = CreateToken(StackFrameKind.CommaToken, ","); 38public static readonly StackFrameToken OpenParenToken = CreateToken(StackFrameKind.OpenParenToken, "("); 39public static readonly StackFrameToken CloseParenToken = CreateToken(StackFrameKind.CloseParenToken, ")"); 40public static readonly StackFrameToken OpenBracketToken = CreateToken(StackFrameKind.OpenBracketToken, "["); 41public static readonly StackFrameToken CloseBracketToken = CreateToken(StackFrameKind.CloseBracketToken, "]"); 42public static readonly StackFrameToken LessThanToken = CreateToken(StackFrameKind.LessThanToken, "<"); 43public static readonly StackFrameToken GreaterThanToken = CreateToken(StackFrameKind.GreaterThanToken, ">"); 44public static readonly StackFrameToken GraveAccentToken = CreateToken(StackFrameKind.GraveAccentToken, "`"); 45public static readonly StackFrameToken EOLToken = CreateToken(StackFrameKind.EndOfFrame, ""); 46public static readonly StackFrameToken ColonToken = CreateToken(StackFrameKind.ColonToken, ":"); 47public static readonly StackFrameToken DollarToken = CreateToken(StackFrameKind.DollarToken, "$"); 48public static readonly StackFrameToken PipeToken = CreateToken(StackFrameKind.PipeToken, "|"); 49public static readonly StackFrameToken ConstructorToken = CreateToken(StackFrameKind.ConstructorToken, ".ctor"); 50public static readonly StackFrameToken StaticConstructorToken = CreateToken(StackFrameKind.ConstructorToken, ".cctor"); 52public static readonly StackFrameTrivia AtTrivia = CreateTrivia(StackFrameKind.AtTrivia, "at "); 53public static readonly StackFrameTrivia LineTrivia = CreateTrivia(StackFrameKind.LineTrivia, "line "); 54public static readonly StackFrameTrivia InTrivia = CreateTrivia(StackFrameKind.InTrivia, " in "); 70? EmbeddedSeparatedSyntaxNodeList<StackFrameKind, StackFrameNode, StackFrameParameterDeclarationNode>.Empty 134=> CreateTrivia(StackFrameKind.WhitespaceTrivia, new string(' ', count)); 146=> CreateToken(StackFrameKind.IdentifierToken, identifierName, leadingTrivia: leadingTrivia, trailingTrivia: trailingTrivia); 167=> new(CreateToken(StackFrameKind.IdentifierToken, identifierName), GraveAccentToken, CreateToken(StackFrameKind.NumberToken, arity.ToString())); 193var typeArgumentsList = new EmbeddedSeparatedSyntaxNodeList<StackFrameKind, StackFrameNode, StackFrameIdentifierNameNode>(builder.ToImmutable()); 199=> new(CreateToken(StackFrameKind.IdentifierToken, identifier)); 208=> CreateToken(StackFrameKind.PathToken, path); 211=> CreateToken(StackFrameKind.NumberToken, lineNumber.ToString(), leadingTrivia: [LineTrivia]); 216CreateToken(StackFrameKind.GeneratedNameSeparatorToken, "g__"), 219CreateToken(StackFrameKind.GeneratedNameSuffixToken, suffix)); 224CreateToken(StackFrameKind.GeneratedNameSeparatorToken, "d__" + suffix),
Utilities\StackFrameUtils.cs (4)
15using StackFrameNodeOrToken = CodeAnalysis.EmbeddedLanguages.Common.EmbeddedSyntaxNodeOrToken<StackFrameKind, StackFrameNode>; 16using StackFrameToken = CodeAnalysis.EmbeddedLanguages.Common.EmbeddedSyntaxToken<StackFrameKind>; 17using StackFrameTrivia = CodeAnalysis.EmbeddedLanguages.Common.EmbeddedSyntaxTrivia<StackFrameKind>; 211else if (nodeOrToken.Token.Kind != StackFrameKind.None)
Microsoft.CodeAnalysis.Features (150)
EmbeddedLanguages\StackFrame\StackFrameCompilationUnit.cs (3)
10using StackFrameNodeOrToken = EmbeddedSyntaxNodeOrToken<StackFrameKind, StackFrameNode>; 11using StackFrameToken = EmbeddedSyntaxToken<StackFrameKind>; 18internal sealed class StackFrameCompilationUnit(StackFrameMethodDeclarationNode methodDeclaration, StackFrameFileInformationNode? fileInformationExpression, StackFrameToken endOfLineToken) : StackFrameNode(StackFrameKind.CompilationUnit)
EmbeddedLanguages\StackFrame\StackFrameExtensions.cs (1)
10using StackFrameTrivia = EmbeddedSyntaxTrivia<StackFrameKind>;
EmbeddedLanguages\StackFrame\StackFrameLexer.cs (51)
18using StackFrameToken = EmbeddedSyntaxToken<StackFrameKind>; 19using StackFrameTrivia = EmbeddedSyntaxTrivia<StackFrameKind>; 76return CreateTrivia(StackFrameKind.SkippedTextTrivia, GetSubSequenceToCurrentPos(start)); 115StackFrameKind.IdentifierToken, 125return CreateToken(StackFrameKind.EndOfFrame, VirtualCharSequence.Empty); 139public bool ScanCurrentCharAsTokenIfMatch(StackFrameKind kind, out StackFrameToken token) 149public bool ScanCurrentCharAsTokenIfMatch(StackFrameKind kind, bool scanTrailingWhitespace, out StackFrameToken token) 175public bool ScanCurrentCharAsTokenIfMatch(Func<StackFrameKind, bool> isMatch, out StackFrameToken token) 192var result = TryScanStringTrivia(language.At, StackFrameKind.AtTrivia); 206var result = TryScanStringTrivia(language.In, StackFrameKind.InTrivia); 220var result = TryScanStringTrivia(language.Line, StackFrameKind.LineTrivia); 231/// Attempts to parse <see cref="StackFrameKind.InTrivia"/> and a path following https://docs.microsoft.com/en-us/windows/win32/fileio/naming-a-file#file-and-directory-names 280return CreateToken(StackFrameKind.PathToken, inTrivia.ToImmutableArray(), GetSubSequenceToCurrentPos(startPosition)); 284/// Returns a number token with the <see cref="StackFrameKind.LineTrivia"/> and remaining <see cref="StackFrameKind.SkippedTextTrivia"/> 321return CreateToken(StackFrameKind.NumberToken, GetSubSequenceToCurrentPos(start)); 358return CreateToken(StackFrameKind.GeneratedNameSeparatorToken, GetSubSequenceToCurrentPos(start)); 389return CreateToken(StackFrameKind.GeneratedNameSuffixToken, GetSubSequenceToCurrentPos(start)); 411public static StackFrameToken CreateToken(StackFrameKind kind, VirtualCharSequence virtualChars) 414public static StackFrameToken CreateToken(StackFrameKind kind, ImmutableArray<StackFrameTrivia> leadingTrivia, VirtualCharSequence virtualChars) 417public static StackFrameToken CreateToken(StackFrameKind kind, ImmutableArray<StackFrameTrivia> leadingTrivia, VirtualCharSequence virtualChars, ImmutableArray<StackFrameTrivia> trailingTrivia) 420private static StackFrameTrivia CreateTrivia(StackFrameKind kind, VirtualCharSequence virtualChars) 423private static StackFrameTrivia CreateTrivia(StackFrameKind kind, VirtualCharSequence virtualChars, ImmutableArray<EmbeddedDiagnostic> diagnostics) 461private StackFrameTrivia? TryScanStringTrivia(string valueToLookFor, StackFrameKind triviaKind) 474private StackFrameToken? TryScanStringToken(string valueToLookFor, StackFrameKind tokenKind) 501return CreateTrivia(StackFrameKind.WhitespaceTrivia, GetSubSequenceToCurrentPos(startPosition)); 509return TryScanStringToken(".ctor", StackFrameKind.ConstructorToken) ?? 510TryScanStringToken(".cctor", StackFrameKind.ConstructorToken); 513private static StackFrameKind GetKind(VirtualChar ch) 518'&' => StackFrameKind.AmpersandToken, 519'[' => StackFrameKind.OpenBracketToken, 520']' => StackFrameKind.CloseBracketToken, 521'(' => StackFrameKind.OpenParenToken, 522')' => StackFrameKind.CloseParenToken, 523'.' => StackFrameKind.DotToken, 524'+' => StackFrameKind.PlusToken, 525',' => StackFrameKind.CommaToken, 526':' => StackFrameKind.ColonToken, 527'=' => StackFrameKind.EqualsToken, 528'>' => StackFrameKind.GreaterThanToken, 529'<' => StackFrameKind.LessThanToken, 530'-' => StackFrameKind.MinusToken, 531'\'' => StackFrameKind.SingleQuoteToken, 532'`' => StackFrameKind.GraveAccentToken, 533'\\' => StackFrameKind.BackslashToken, 534'/' => StackFrameKind.ForwardSlashToken, 535'$' => StackFrameKind.DollarToken, 536'|' => StackFrameKind.PipeToken, 538? StackFrameKind.WhitespaceTrivia 540? StackFrameKind.NumberToken 541: StackFrameKind.SkippedTextTrivia
EmbeddedLanguages\StackFrame\StackFrameNodeDefinitions.cs (59)
14using StackFrameNodeOrToken = EmbeddedSyntaxNodeOrToken<StackFrameKind, StackFrameNode>; 15using StackFrameToken = EmbeddedSyntaxToken<StackFrameKind>; 17internal abstract class StackFrameNode : EmbeddedSyntaxNode<StackFrameKind, StackFrameNode> 19protected StackFrameNode(StackFrameKind kind) : base(kind) 28protected StackFrameDeclarationNode(StackFrameKind kind) : base(kind) 36StackFrameParameterList argumentList) : StackFrameDeclarationNode(StackFrameKind.MethodDeclaration) 62protected StackFrameTypeNode(StackFrameKind kind) : base(kind) 72/// is not a type then it should use <see cref="StackFrameToken"/> with <see cref="StackFrameKind.IdentifierToken"/> 77protected StackFrameNameNode(StackFrameKind kind) : base(kind) 89protected StackFrameSimpleNameNode(StackFrameToken identifier, StackFrameKind kind) : base(kind) 91Debug.Assert(identifier.Kind is StackFrameKind.IdentifierToken or StackFrameKind.ConstructorToken); 105public StackFrameQualifiedNameNode(StackFrameNameNode left, StackFrameToken dotToken, StackFrameSimpleNameNode right) : base(StackFrameKind.MemberAccess) 107Debug.Assert(dotToken.Kind == StackFrameKind.DotToken); 108Debug.Assert(left.Kind is not StackFrameKind.Constructor); 131/// The simplest identifier node, which wraps a <see cref="StackFrameKind.IdentifierToken" /> 133internal sealed class StackFrameIdentifierNameNode(StackFrameToken identifier) : StackFrameSimpleNameNode(identifier, StackFrameKind.TypeIdentifier) 148internal sealed class StackFrameConstructorNode(StackFrameToken constructor) : StackFrameSimpleNameNode(constructor, StackFrameKind.Constructor) 169/// The "`" token in arity identifiers. Must be <see cref="StackFrameKind.GraveAccentToken"/> 178: base(identifier, StackFrameKind.GenericTypeIdentifier) 180Debug.Assert(graveAccentToken.Kind == StackFrameKind.GraveAccentToken); 181Debug.Assert(numberToken.Kind == StackFrameKind.NumberToken); 202protected StackFrameGeneratedNameNode(StackFrameToken identifier, StackFrameKind kind) : base(identifier, kind) 221: base(identifier, StackFrameKind.GeneratedIdentifier) 223Debug.Assert(lessThanToken.Kind == StackFrameKind.LessThanToken); 224Debug.Assert(greaterThanToken.Kind == StackFrameKind.GreaterThanToken); 225Debug.Assert(!dollarToken.HasValue || dollarToken.Value.Kind == StackFrameKind.DollarToken); 273: base(identifier, StackFrameKind.LocalMethodIdentifier) 275Debug.Assert(generatedNameSeparator.Kind == StackFrameKind.GeneratedNameSeparatorToken); 276Debug.Assert(identifier.Kind == StackFrameKind.IdentifierToken); 277Debug.Assert(pipeToken.Kind == StackFrameKind.PipeToken); 278Debug.Assert(suffix.Kind == StackFrameKind.GeneratedNameSuffixToken); 314: base(stateMachineIdentifier, StackFrameKind.StateMachineMethodIdentifier) 316Debug.Assert(generatedNameSeparator.Kind == StackFrameKind.GeneratedNameSeparatorToken); 317Debug.Assert(dotToken.Kind == StackFrameKind.DotToken); 318Debug.Assert(stateMachineIdentifier.Kind == StackFrameKind.IdentifierToken); 363public StackFrameArrayTypeNode(StackFrameNameNode typeIdentifier, ImmutableArray<StackFrameArrayRankSpecifier> arrayRankSpecifiers) : base(StackFrameKind.ArrayTypeExpression) 390: base(StackFrameKind.ArrayExpression) 393Debug.Assert(openBracket.Kind == StackFrameKind.OpenBracketToken); 394Debug.Assert(closeBracket.Kind == StackFrameKind.CloseBracketToken); 395Debug.Assert(commaTokens.All(static t => t.Kind == StackFrameKind.CommaToken)); 437public readonly EmbeddedSeparatedSyntaxNodeList<StackFrameKind, StackFrameNode, StackFrameIdentifierNameNode> TypeArguments; 442EmbeddedSeparatedSyntaxNodeList<StackFrameKind, StackFrameNode, StackFrameIdentifierNameNode> typeArguments, 444: base(StackFrameKind.TypeArgument) 446Debug.Assert(openToken.Kind is StackFrameKind.OpenBracketToken or StackFrameKind.LessThanToken); 448Debug.Assert(openToken.Kind == StackFrameKind.OpenBracketToken ? closeToken.Kind == StackFrameKind.CloseBracketToken : closeToken.Kind == StackFrameKind.GreaterThanToken); 490: base(StackFrameKind.Parameter) 492Debug.Assert(identifier.Kind == StackFrameKind.IdentifierToken); 512public readonly EmbeddedSeparatedSyntaxNodeList<StackFrameKind, StackFrameNode, StackFrameParameterDeclarationNode> Parameters; 517EmbeddedSeparatedSyntaxNodeList<StackFrameKind, StackFrameNode, StackFrameParameterDeclarationNode> parameters, 519: base(StackFrameKind.ParameterList) 521Debug.Assert(openToken.Kind == StackFrameKind.OpenParenToken); 522Debug.Assert(closeToken.Kind == StackFrameKind.CloseParenToken); 559public StackFrameFileInformationNode(StackFrameToken path, StackFrameToken? colon, StackFrameToken? line) : base(StackFrameKind.FileInformation) 561Debug.Assert(path.Kind == StackFrameKind.PathToken); 563Debug.Assert(!line.HasValue || line.Value.Kind == StackFrameKind.NumberToken);
EmbeddedLanguages\StackFrame\StackFrameParser.cs (35)
15using StackFrameNodeOrToken = EmbeddedSyntaxNodeOrToken<StackFrameKind, StackFrameNode>; 16using StackFrameToken = EmbeddedSyntaxToken<StackFrameKind>; 90Contract.ThrowIfFalse(eolToken.Kind == StackFrameKind.EndOfFrame); 188if (!_lexer.ScanCurrentCharAsTokenIfMatch(StackFrameKind.DotToken, out var dotToken)) 193if (lhs.Kind is StackFrameKind.Constructor || 194lhs is StackFrameQualifiedNameNode { Right.Kind: StackFrameKind.Constructor }) 263if (!_lexer.ScanCurrentCharAsTokenIfMatch(StackFrameKind.LessThanToken, out var lessThanToken)) 268if (_lexer.CurrentCharAsToken().Kind == StackFrameKind.LessThanToken) 281if (!_lexer.ScanCurrentCharAsTokenIfMatch(StackFrameKind.GreaterThanToken, out var greaterThanToken)) 286if (_lexer.ScanCurrentCharAsTokenIfMatch(StackFrameKind.DollarToken, out var dollarToken)) 323if (!_lexer.ScanCurrentCharAsTokenIfMatch(StackFrameKind.PipeToken, out var suffixSeparator)) 346if (!_lexer.ScanCurrentCharAsTokenIfMatch(StackFrameKind.DotToken, out var dotToken)) 372if (!_lexer.ScanCurrentCharAsTokenIfMatch(StackFrameKind.GraveAccentToken, out var graveAccentToken)) 374if (identifierToken.Kind == StackFrameKind.ConstructorToken) 403kind => kind is StackFrameKind.OpenBracketToken or StackFrameKind.LessThanToken, 409var closeBracketKind = openToken.Kind is StackFrameKind.OpenBracketToken 410? StackFrameKind.CloseBracketToken 411: StackFrameKind.GreaterThanToken; 417while (currentIdentifier.HasValue && currentIdentifier.Value.Kind == StackFrameKind.IdentifierToken) 426if (!_lexer.ScanCurrentCharAsTokenIfMatch(StackFrameKind.CommaToken, out var commaToken)) 445var separatedList = new EmbeddedSeparatedSyntaxNodeList<StackFrameKind, StackFrameNode, StackFrameIdentifierNameNode>(builder.ToImmutable()); 459if (!_lexer.ScanCurrentCharAsTokenIfMatch(StackFrameKind.OpenParenToken, scanTrailingWhitespace: true, out var openParen)) 464if (_lexer.ScanCurrentCharAsTokenIfMatch(StackFrameKind.CloseParenToken, out var closeParen)) 466return new(openParen, EmbeddedSeparatedSyntaxNodeList<StackFrameKind, StackFrameNode, StackFrameParameterDeclarationNode>.Empty, closeParen); 482if (!_lexer.ScanCurrentCharAsTokenIfMatch(StackFrameKind.CommaToken, out var commaToken)) 490if (!_lexer.ScanCurrentCharAsTokenIfMatch(StackFrameKind.CloseParenToken, out closeParen)) 495var parameters = new EmbeddedSeparatedSyntaxNodeList<StackFrameKind, StackFrameNode, StackFrameParameterDeclarationNode>(builder.ToImmutable()); 514if (CurrentCharAsToken().Kind == StackFrameKind.OpenBracketToken) 548if (!_lexer.ScanCurrentCharAsTokenIfMatch(StackFrameKind.OpenBracketToken, scanTrailingWhitespace: true, out var openBracket)) 553while (_lexer.ScanCurrentCharAsTokenIfMatch(StackFrameKind.CommaToken, scanTrailingWhitespace: true, out var commaToken)) 558if (!_lexer.ScanCurrentCharAsTokenIfMatch(StackFrameKind.CloseBracketToken, scanTrailingWhitespace: true, out var closeBracket)) 582if (path.Kind == StackFrameKind.None) 587if (!_lexer.ScanCurrentCharAsTokenIfMatch(StackFrameKind.ColonToken, out var colonToken))
EmbeddedLanguages\StackFrame\StackFrameTree.cs (1)
10internal sealed class StackFrameTree(VirtualCharSequence text, StackFrameCompilationUnit root) : EmbeddedSyntaxTree<StackFrameKind, StackFrameNode, StackFrameCompilationUnit>(text, root, [])
Microsoft.VisualStudio.LanguageServices (3)
StackTraceExplorer\StackFrameViewModel.cs (2)
28using StackFrameToken = EmbeddedSyntaxToken<StackFrameKind>; 29using StackFrameTrivia = EmbeddedSyntaxTrivia<StackFrameKind>;
StackTraceExplorer\StackTraceExplorerToolWindow.cs (1)
113return firstNodeOrToken.Token.LeadingTrivia.Any(static t => t.Kind == StackFrameKind.AtTrivia);