193 references to StackFrameKind
Microsoft.CodeAnalysis.EditorFeatures.UnitTests (45)
EmbeddedLanguages\StackFrame\StackFrameParserTests.cs (4)
514
leadingTrivia: CreateTrivia(
StackFrameKind
.AtTrivia, $"{at} "))),
519
line: CreateToken(
StackFrameKind
.NumberToken, "16", leadingTrivia: [CreateTrivia(
StackFrameKind
.LineTrivia, $"{line} ")]),
520
inTrivia: CreateTrivia(
StackFrameKind
.InTrivia, $" {@in} "))
EmbeddedLanguages\StackFrame\StackFrameParserTests.Utilities.cs (2)
19
using StackFrameToken = EmbeddedSyntaxToken<
StackFrameKind
>;
62
: CreateToken(
StackFrameKind
.EndOfFrame, "");
EmbeddedLanguages\StackFrame\StackFrameSyntaxFactory.cs (35)
15
using StackFrameNodeOrToken = EmbeddedSyntaxNodeOrToken<
StackFrameKind
, StackFrameNode>;
16
using StackFrameToken = EmbeddedSyntaxToken<
StackFrameKind
>;
17
using StackFrameTrivia = EmbeddedSyntaxTrivia<
StackFrameKind
>;
21
public static StackFrameToken CreateToken(
StackFrameKind
kind, string s, ImmutableArray<StackFrameTrivia> leadingTrivia = default, ImmutableArray<StackFrameTrivia> trailingTrivia = default)
30
public static StackFrameTrivia CreateTrivia(
StackFrameKind
kind, string text)
34
=> [.. strings.Select(s => CreateTrivia(
StackFrameKind
.SkippedTextTrivia, s))];
36
public static readonly StackFrameToken DotToken = CreateToken(
StackFrameKind
.DotToken, ".");
37
public static readonly StackFrameToken CommaToken = CreateToken(
StackFrameKind
.CommaToken, ",");
38
public static readonly StackFrameToken OpenParenToken = CreateToken(
StackFrameKind
.OpenParenToken, "(");
39
public static readonly StackFrameToken CloseParenToken = CreateToken(
StackFrameKind
.CloseParenToken, ")");
40
public static readonly StackFrameToken OpenBracketToken = CreateToken(
StackFrameKind
.OpenBracketToken, "[");
41
public static readonly StackFrameToken CloseBracketToken = CreateToken(
StackFrameKind
.CloseBracketToken, "]");
42
public static readonly StackFrameToken LessThanToken = CreateToken(
StackFrameKind
.LessThanToken, "<");
43
public static readonly StackFrameToken GreaterThanToken = CreateToken(
StackFrameKind
.GreaterThanToken, ">");
44
public static readonly StackFrameToken GraveAccentToken = CreateToken(
StackFrameKind
.GraveAccentToken, "`");
45
public static readonly StackFrameToken EOLToken = CreateToken(
StackFrameKind
.EndOfFrame, "");
46
public static readonly StackFrameToken ColonToken = CreateToken(
StackFrameKind
.ColonToken, ":");
47
public static readonly StackFrameToken DollarToken = CreateToken(
StackFrameKind
.DollarToken, "$");
48
public static readonly StackFrameToken PipeToken = CreateToken(
StackFrameKind
.PipeToken, "|");
49
public static readonly StackFrameToken ConstructorToken = CreateToken(
StackFrameKind
.ConstructorToken, ".ctor");
50
public static readonly StackFrameToken StaticConstructorToken = CreateToken(
StackFrameKind
.ConstructorToken, ".cctor");
52
public static readonly StackFrameTrivia AtTrivia = CreateTrivia(
StackFrameKind
.AtTrivia, "at ");
53
public static readonly StackFrameTrivia LineTrivia = CreateTrivia(
StackFrameKind
.LineTrivia, "line ");
54
public 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()));
193
var 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]);
216
CreateToken(
StackFrameKind
.GeneratedNameSeparatorToken, "g__"),
219
CreateToken(
StackFrameKind
.GeneratedNameSuffixToken, suffix));
Utilities\StackFrameUtils.cs (4)
14
using StackFrameNodeOrToken = CodeAnalysis.EmbeddedLanguages.Common.EmbeddedSyntaxNodeOrToken<
StackFrameKind
, StackFrameNode>;
15
using StackFrameToken = CodeAnalysis.EmbeddedLanguages.Common.EmbeddedSyntaxToken<
StackFrameKind
>;
16
using StackFrameTrivia = CodeAnalysis.EmbeddedLanguages.Common.EmbeddedSyntaxTrivia<
StackFrameKind
>;
210
else if (nodeOrToken.Token.Kind !=
StackFrameKind
.None)
Microsoft.CodeAnalysis.Features (145)
EmbeddedLanguages\StackFrame\StackFrameCompilationUnit.cs (3)
10
using StackFrameNodeOrToken = EmbeddedSyntaxNodeOrToken<
StackFrameKind
, StackFrameNode>;
11
using StackFrameToken = EmbeddedSyntaxToken<
StackFrameKind
>;
18
internal sealed class StackFrameCompilationUnit(StackFrameMethodDeclarationNode methodDeclaration, StackFrameFileInformationNode? fileInformationExpression, StackFrameToken endOfLineToken) : StackFrameNode(
StackFrameKind
.CompilationUnit)
EmbeddedLanguages\StackFrame\StackFrameExtensions.cs (1)
10
using StackFrameTrivia = EmbeddedSyntaxTrivia<
StackFrameKind
>;
EmbeddedLanguages\StackFrame\StackFrameLexer.cs (51)
18
using StackFrameToken = EmbeddedSyntaxToken<
StackFrameKind
>;
19
using StackFrameTrivia = EmbeddedSyntaxTrivia<
StackFrameKind
>;
78
return CreateTrivia(
StackFrameKind
.SkippedTextTrivia, GetSubSequenceToCurrentPos(start));
117
StackFrameKind
.IdentifierToken,
127
return CreateToken(
StackFrameKind
.EndOfFrame, VirtualCharSequence.Empty);
141
public bool ScanCurrentCharAsTokenIfMatch(
StackFrameKind
kind, out StackFrameToken token)
151
public bool ScanCurrentCharAsTokenIfMatch(
StackFrameKind
kind, bool scanTrailingWhitespace, out StackFrameToken token)
177
public bool ScanCurrentCharAsTokenIfMatch(Func<
StackFrameKind
, bool> isMatch, out StackFrameToken token)
194
var result = TryScanStringTrivia(language.At,
StackFrameKind
.AtTrivia);
208
var result = TryScanStringTrivia(language.In,
StackFrameKind
.InTrivia);
222
var result = TryScanStringTrivia(language.Line,
StackFrameKind
.LineTrivia);
233
/// 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
282
return CreateToken(
StackFrameKind
.PathToken, inTrivia.ToImmutableArray(), GetSubSequenceToCurrentPos(startPosition));
286
/// Returns a number token with the <see cref="
StackFrameKind
.LineTrivia"/> and remaining <see cref="
StackFrameKind
.SkippedTextTrivia"/>
323
return CreateToken(
StackFrameKind
.NumberToken, GetSubSequenceToCurrentPos(start));
351
return CreateToken(
StackFrameKind
.GeneratedNameSeparatorToken, GetSubSequenceToCurrentPos(start));
382
return CreateToken(
StackFrameKind
.GeneratedNameSuffixToken, GetSubSequenceToCurrentPos(start));
404
public static StackFrameToken CreateToken(
StackFrameKind
kind, VirtualCharSequence virtualChars)
407
public static StackFrameToken CreateToken(
StackFrameKind
kind, ImmutableArray<StackFrameTrivia> leadingTrivia, VirtualCharSequence virtualChars)
410
public static StackFrameToken CreateToken(
StackFrameKind
kind, ImmutableArray<StackFrameTrivia> leadingTrivia, VirtualCharSequence virtualChars, ImmutableArray<StackFrameTrivia> trailingTrivia)
413
private static StackFrameTrivia CreateTrivia(
StackFrameKind
kind, VirtualCharSequence virtualChars)
416
private static StackFrameTrivia CreateTrivia(
StackFrameKind
kind, VirtualCharSequence virtualChars, ImmutableArray<EmbeddedDiagnostic> diagnostics)
454
private StackFrameTrivia? TryScanStringTrivia(string valueToLookFor,
StackFrameKind
triviaKind)
467
private StackFrameToken? TryScanStringToken(string valueToLookFor,
StackFrameKind
tokenKind)
494
return CreateTrivia(
StackFrameKind
.WhitespaceTrivia, GetSubSequenceToCurrentPos(startPosition));
502
return TryScanStringToken(".ctor",
StackFrameKind
.ConstructorToken) ??
503
TryScanStringToken(".cctor",
StackFrameKind
.ConstructorToken);
506
private static
StackFrameKind
GetKind(VirtualChar ch)
511
'&' =>
StackFrameKind
.AmpersandToken,
512
'[' =>
StackFrameKind
.OpenBracketToken,
513
']' =>
StackFrameKind
.CloseBracketToken,
514
'(' =>
StackFrameKind
.OpenParenToken,
515
')' =>
StackFrameKind
.CloseParenToken,
516
'.' =>
StackFrameKind
.DotToken,
517
'+' =>
StackFrameKind
.PlusToken,
518
',' =>
StackFrameKind
.CommaToken,
519
':' =>
StackFrameKind
.ColonToken,
520
'=' =>
StackFrameKind
.EqualsToken,
521
'>' =>
StackFrameKind
.GreaterThanToken,
522
'<' =>
StackFrameKind
.LessThanToken,
523
'-' =>
StackFrameKind
.MinusToken,
524
'\'' =>
StackFrameKind
.SingleQuoteToken,
525
'`' =>
StackFrameKind
.GraveAccentToken,
526
'\\' =>
StackFrameKind
.BackslashToken,
527
'/' =>
StackFrameKind
.ForwardSlashToken,
528
'$' =>
StackFrameKind
.DollarToken,
529
'|' =>
StackFrameKind
.PipeToken,
531
?
StackFrameKind
.WhitespaceTrivia
533
?
StackFrameKind
.NumberToken
534
:
StackFrameKind
.SkippedTextTrivia
EmbeddedLanguages\StackFrame\StackFrameNodeDefinitions.cs (55)
14
using StackFrameNodeOrToken = EmbeddedSyntaxNodeOrToken<
StackFrameKind
, StackFrameNode>;
15
using StackFrameToken = EmbeddedSyntaxToken<
StackFrameKind
>;
17
internal abstract class StackFrameNode : EmbeddedSyntaxNode<
StackFrameKind
, StackFrameNode>
19
protected StackFrameNode(
StackFrameKind
kind) : base(kind)
28
protected StackFrameDeclarationNode(
StackFrameKind
kind) : base(kind)
36
StackFrameParameterList argumentList) : StackFrameDeclarationNode(
StackFrameKind
.MethodDeclaration)
62
protected StackFrameTypeNode(
StackFrameKind
kind) : base(kind)
72
/// is not a type then it should use <see cref="StackFrameToken"/> with <see cref="
StackFrameKind
.IdentifierToken"/>
77
protected StackFrameNameNode(
StackFrameKind
kind) : base(kind)
89
protected StackFrameSimpleNameNode(StackFrameToken identifier,
StackFrameKind
kind) : base(kind)
91
Debug.Assert(identifier.Kind is
StackFrameKind
.IdentifierToken or
StackFrameKind
.ConstructorToken);
105
public StackFrameQualifiedNameNode(StackFrameNameNode left, StackFrameToken dotToken, StackFrameSimpleNameNode right) : base(
StackFrameKind
.MemberAccess)
107
Debug.Assert(dotToken.Kind ==
StackFrameKind
.DotToken);
108
Debug.Assert(left.Kind is not
StackFrameKind
.Constructor);
131
/// The simplest identifier node, which wraps a <see cref="
StackFrameKind
.IdentifierToken" />
133
internal sealed class StackFrameIdentifierNameNode(StackFrameToken identifier) : StackFrameSimpleNameNode(identifier,
StackFrameKind
.TypeIdentifier)
148
internal 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)
180
Debug.Assert(graveAccentToken.Kind ==
StackFrameKind
.GraveAccentToken);
181
Debug.Assert(numberToken.Kind ==
StackFrameKind
.NumberToken);
202
protected StackFrameGeneratedNameNode(StackFrameToken identifier,
StackFrameKind
kind) : base(identifier, kind)
220
: base(identifier,
StackFrameKind
.GeneratedIdentifier)
222
Debug.Assert(lessThanToken.Kind ==
StackFrameKind
.LessThanToken);
223
Debug.Assert(greaterThanToken.Kind ==
StackFrameKind
.GreaterThanToken);
224
Debug.Assert(!dollarToken.HasValue || dollarToken.Value.Kind ==
StackFrameKind
.DollarToken);
271
: base(identifier,
StackFrameKind
.LocalMethodIdentifier)
273
Debug.Assert(generatedNameSeparator.Kind ==
StackFrameKind
.GeneratedNameSeparatorToken);
274
Debug.Assert(identifier.Kind ==
StackFrameKind
.IdentifierToken);
275
Debug.Assert(pipeToken.Kind ==
StackFrameKind
.PipeToken);
276
Debug.Assert(suffix.Kind ==
StackFrameKind
.GeneratedNameSuffixToken);
323
public StackFrameArrayTypeNode(StackFrameNameNode typeIdentifier, ImmutableArray<StackFrameArrayRankSpecifier> arrayRankSpecifiers) : base(
StackFrameKind
.ArrayTypeExpression)
350
: base(
StackFrameKind
.ArrayExpression)
353
Debug.Assert(openBracket.Kind ==
StackFrameKind
.OpenBracketToken);
354
Debug.Assert(closeBracket.Kind ==
StackFrameKind
.CloseBracketToken);
355
Debug.Assert(commaTokens.All(static t => t.Kind ==
StackFrameKind
.CommaToken));
397
public readonly EmbeddedSeparatedSyntaxNodeList<
StackFrameKind
, StackFrameNode, StackFrameIdentifierNameNode> TypeArguments;
402
EmbeddedSeparatedSyntaxNodeList<
StackFrameKind
, StackFrameNode, StackFrameIdentifierNameNode> typeArguments,
404
: base(
StackFrameKind
.TypeArgument)
406
Debug.Assert(openToken.Kind is
StackFrameKind
.OpenBracketToken or
StackFrameKind
.LessThanToken);
408
Debug.Assert(openToken.Kind ==
StackFrameKind
.OpenBracketToken ? closeToken.Kind ==
StackFrameKind
.CloseBracketToken : closeToken.Kind ==
StackFrameKind
.GreaterThanToken);
450
: base(
StackFrameKind
.Parameter)
452
Debug.Assert(identifier.Kind ==
StackFrameKind
.IdentifierToken);
472
public readonly EmbeddedSeparatedSyntaxNodeList<
StackFrameKind
, StackFrameNode, StackFrameParameterDeclarationNode> Parameters;
477
EmbeddedSeparatedSyntaxNodeList<
StackFrameKind
, StackFrameNode, StackFrameParameterDeclarationNode> parameters,
479
: base(
StackFrameKind
.ParameterList)
481
Debug.Assert(openToken.Kind ==
StackFrameKind
.OpenParenToken);
482
Debug.Assert(closeToken.Kind ==
StackFrameKind
.CloseParenToken);
519
public StackFrameFileInformationNode(StackFrameToken path, StackFrameToken? colon, StackFrameToken? line) : base(
StackFrameKind
.FileInformation)
521
Debug.Assert(path.Kind ==
StackFrameKind
.PathToken);
523
Debug.Assert(!line.HasValue || line.Value.Kind ==
StackFrameKind
.NumberToken);
EmbeddedLanguages\StackFrame\StackFrameParser.cs (34)
15
using StackFrameNodeOrToken = EmbeddedSyntaxNodeOrToken<
StackFrameKind
, StackFrameNode>;
16
using StackFrameToken = EmbeddedSyntaxToken<
StackFrameKind
>;
90
Contract.ThrowIfFalse(eolToken.Kind ==
StackFrameKind
.EndOfFrame);
188
if (!_lexer.ScanCurrentCharAsTokenIfMatch(
StackFrameKind
.DotToken, out var dotToken))
193
if (lhs.Kind is
StackFrameKind
.Constructor ||
194
lhs is StackFrameQualifiedNameNode { Right.Kind:
StackFrameKind
.Constructor })
255
if (!_lexer.ScanCurrentCharAsTokenIfMatch(
StackFrameKind
.LessThanToken, out var lessThanToken))
260
if (_lexer.CurrentCharAsToken().Kind ==
StackFrameKind
.LessThanToken)
273
if (!_lexer.ScanCurrentCharAsTokenIfMatch(
StackFrameKind
.GreaterThanToken, out var greaterThanToken))
278
if (_lexer.ScanCurrentCharAsTokenIfMatch(
StackFrameKind
.DollarToken, out var dollarToken))
303
if (!_lexer.ScanCurrentCharAsTokenIfMatch(
StackFrameKind
.PipeToken, out var suffixSeparator))
334
if (!_lexer.ScanCurrentCharAsTokenIfMatch(
StackFrameKind
.GraveAccentToken, out var graveAccentToken))
336
if (identifierToken.Kind ==
StackFrameKind
.ConstructorToken)
365
kind => kind is
StackFrameKind
.OpenBracketToken or
StackFrameKind
.LessThanToken,
371
var
closeBracketKind = openToken.Kind is
StackFrameKind
.OpenBracketToken
372
?
StackFrameKind
.CloseBracketToken
373
:
StackFrameKind
.GreaterThanToken;
379
while (currentIdentifier.HasValue && currentIdentifier.Value.Kind ==
StackFrameKind
.IdentifierToken)
388
if (!_lexer.ScanCurrentCharAsTokenIfMatch(
StackFrameKind
.CommaToken, out var commaToken))
407
var separatedList = new EmbeddedSeparatedSyntaxNodeList<
StackFrameKind
, StackFrameNode, StackFrameIdentifierNameNode>(builder.ToImmutable());
421
if (!_lexer.ScanCurrentCharAsTokenIfMatch(
StackFrameKind
.OpenParenToken, scanTrailingWhitespace: true, out var openParen))
426
if (_lexer.ScanCurrentCharAsTokenIfMatch(
StackFrameKind
.CloseParenToken, out var closeParen))
428
return new(openParen, EmbeddedSeparatedSyntaxNodeList<
StackFrameKind
, StackFrameNode, StackFrameParameterDeclarationNode>.Empty, closeParen);
444
if (!_lexer.ScanCurrentCharAsTokenIfMatch(
StackFrameKind
.CommaToken, out var commaToken))
452
if (!_lexer.ScanCurrentCharAsTokenIfMatch(
StackFrameKind
.CloseParenToken, out closeParen))
457
var parameters = new EmbeddedSeparatedSyntaxNodeList<
StackFrameKind
, StackFrameNode, StackFrameParameterDeclarationNode>(builder.ToImmutable());
476
if (CurrentCharAsToken().Kind ==
StackFrameKind
.OpenBracketToken)
510
if (!_lexer.ScanCurrentCharAsTokenIfMatch(
StackFrameKind
.OpenBracketToken, scanTrailingWhitespace: true, out var openBracket))
515
while (_lexer.ScanCurrentCharAsTokenIfMatch(
StackFrameKind
.CommaToken, scanTrailingWhitespace: true, out var commaToken))
520
if (!_lexer.ScanCurrentCharAsTokenIfMatch(
StackFrameKind
.CloseBracketToken, scanTrailingWhitespace: true, out var closeBracket))
544
if (path.Kind ==
StackFrameKind
.None)
549
if (!_lexer.ScanCurrentCharAsTokenIfMatch(
StackFrameKind
.ColonToken, out var colonToken))
EmbeddedLanguages\StackFrame\StackFrameTree.cs (1)
10
internal sealed class StackFrameTree(VirtualCharSequence text, StackFrameCompilationUnit root) : EmbeddedSyntaxTree<
StackFrameKind
, StackFrameNode, StackFrameCompilationUnit>(text, root, [])
Microsoft.VisualStudio.LanguageServices (3)
StackTraceExplorer\StackFrameViewModel.cs (2)
28
using StackFrameToken = EmbeddedSyntaxToken<
StackFrameKind
>;
29
using StackFrameTrivia = EmbeddedSyntaxTrivia<
StackFrameKind
>;
StackTraceExplorer\StackTraceExplorerToolWindow.cs (1)
113
return firstNodeOrToken.Token.LeadingTrivia.Any(static t => t.Kind ==
StackFrameKind
.AtTrivia);