184 references to StackFrameKind
Microsoft.CodeAnalysis.EditorFeatures.UnitTests (43)
EmbeddedLanguages\StackFrame\StackFrameParserTests.cs (4)
487
leadingTrivia: CreateTrivia(
StackFrameKind
.AtTrivia, $"{at} "))),
492
line: CreateToken(
StackFrameKind
.NumberToken, "16", leadingTrivia: ImmutableArray.Create(CreateTrivia(
StackFrameKind
.LineTrivia, $"{line} "))),
493
inTrivia: CreateTrivia(
StackFrameKind
.InTrivia, $" {@in} "))
EmbeddedLanguages\StackFrame\StackFrameParserTests.Utilities.cs (2)
19
using StackFrameToken = EmbeddedSyntaxToken<
StackFrameKind
>;
62
: CreateToken(
StackFrameKind
.EndOfFrame, "");
EmbeddedLanguages\StackFrame\StackFrameSyntaxFactory.cs (33)
15
using StackFrameToken = EmbeddedSyntaxToken<
StackFrameKind
>;
16
using StackFrameTrivia = EmbeddedSyntaxTrivia<
StackFrameKind
>;
17
using StackFrameNodeOrToken = EmbeddedSyntaxNodeOrToken<
StackFrameKind
, StackFrameNode>;
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)).ToImmutableArray();
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, "|");
50
public static readonly StackFrameTrivia AtTrivia = CreateTrivia(
StackFrameKind
.AtTrivia, "at ");
51
public static readonly StackFrameTrivia LineTrivia = CreateTrivia(
StackFrameKind
.LineTrivia, "line ");
52
public static readonly StackFrameTrivia InTrivia = CreateTrivia(
StackFrameKind
.InTrivia, " in ");
65
? EmbeddedSeparatedSyntaxNodeList<
StackFrameKind
, StackFrameNode, StackFrameParameterDeclarationNode>.Empty
129
=> CreateTrivia(
StackFrameKind
.WhitespaceTrivia, new string(' ', count));
141
=> CreateToken(
StackFrameKind
.IdentifierToken, identifierName, leadingTrivia: leadingTrivia, trailingTrivia: trailingTrivia);
162
=> new(CreateToken(
StackFrameKind
.IdentifierToken, identifierName), GraveAccentToken, CreateToken(
StackFrameKind
.NumberToken, arity.ToString()));
188
var typeArgumentsList = new EmbeddedSeparatedSyntaxNodeList<
StackFrameKind
, StackFrameNode, StackFrameIdentifierNameNode>(builder.ToImmutable());
194
=> new(CreateToken(
StackFrameKind
.IdentifierToken, identifier));
203
=> CreateToken(
StackFrameKind
.PathToken, path);
206
=> CreateToken(
StackFrameKind
.NumberToken, lineNumber.ToString(), leadingTrivia: ImmutableArray.Create(LineTrivia));
211
CreateToken(
StackFrameKind
.GeneratedNameSeparatorToken, "g__"),
214
CreateToken(
StackFrameKind
.GeneratedNameSuffixToken, suffix));
Utilities\StackFrameUtils.cs (4)
15
using StackFrameNodeOrToken = CodeAnalysis.EmbeddedLanguages.Common.EmbeddedSyntaxNodeOrToken<
StackFrameKind
, StackFrameNode>;
16
using StackFrameToken = CodeAnalysis.EmbeddedLanguages.Common.EmbeddedSyntaxToken<
StackFrameKind
>;
17
using StackFrameTrivia = CodeAnalysis.EmbeddedLanguages.Common.EmbeddedSyntaxTrivia<
StackFrameKind
>;
211
else if (nodeOrToken.Token.Kind !=
StackFrameKind
.None)
Microsoft.CodeAnalysis.Features (138)
EmbeddedLanguages\StackFrame\StackFrameCompilationUnit.cs (4)
10
using StackFrameNodeOrToken = EmbeddedSyntaxNodeOrToken<
StackFrameKind
, StackFrameNode>;
11
using StackFrameToken = EmbeddedSyntaxToken<
StackFrameKind
>;
12
using StackFrameTrivia = EmbeddedSyntaxTrivia<
StackFrameKind
>;
40
: base(
StackFrameKind
.CompilationUnit)
EmbeddedLanguages\StackFrame\StackFrameExtensions.cs (1)
10
using StackFrameTrivia = EmbeddedSyntaxTrivia<
StackFrameKind
>;
EmbeddedLanguages\StackFrame\StackFrameLexer.cs (48)
18
using StackFrameToken = EmbeddedSyntaxToken<
StackFrameKind
>;
19
using StackFrameTrivia = EmbeddedSyntaxTrivia<
StackFrameKind
>;
78
return CreateTrivia(
StackFrameKind
.SkippedTextTrivia, GetSubSequenceToCurrentPos(start));
111
StackFrameKind
.IdentifierToken,
121
return CreateToken(
StackFrameKind
.EndOfFrame, VirtualCharSequence.Empty);
135
public bool ScanCurrentCharAsTokenIfMatch(
StackFrameKind
kind, out StackFrameToken token)
145
public bool ScanCurrentCharAsTokenIfMatch(
StackFrameKind
kind, bool scanTrailingWhitespace, out StackFrameToken token)
171
public bool ScanCurrentCharAsTokenIfMatch(Func<
StackFrameKind
, bool> isMatch, out StackFrameToken token)
188
var result = TryScanStringTrivia(language.At,
StackFrameKind
.AtTrivia);
202
var result = TryScanStringTrivia(language.In,
StackFrameKind
.InTrivia);
216
var result = TryScanStringTrivia(language.Line,
StackFrameKind
.LineTrivia);
227
/// 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
276
return CreateToken(
StackFrameKind
.PathToken, inTrivia.ToImmutableArray(), GetSubSequenceToCurrentPos(startPosition));
280
/// Returns a number token with the <see cref="
StackFrameKind
.LineTrivia"/> and remaining <see cref="
StackFrameKind
.SkippedTextTrivia"/>
318
return CreateToken(
StackFrameKind
.NumberToken, GetSubSequenceToCurrentPos(start));
346
return CreateToken(
StackFrameKind
.GeneratedNameSeparatorToken, GetSubSequenceToCurrentPos(start));
377
return CreateToken(
StackFrameKind
.GeneratedNameSuffixToken, GetSubSequenceToCurrentPos(start));
399
public static StackFrameToken CreateToken(
StackFrameKind
kind, VirtualCharSequence virtualChars)
402
public static StackFrameToken CreateToken(
StackFrameKind
kind, ImmutableArray<StackFrameTrivia> leadingTrivia, VirtualCharSequence virtualChars)
405
public static StackFrameToken CreateToken(
StackFrameKind
kind, ImmutableArray<StackFrameTrivia> leadingTrivia, VirtualCharSequence virtualChars, ImmutableArray<StackFrameTrivia> trailingTrivia)
408
private static StackFrameTrivia CreateTrivia(
StackFrameKind
kind, VirtualCharSequence virtualChars)
411
private static StackFrameTrivia CreateTrivia(
StackFrameKind
kind, VirtualCharSequence virtualChars, ImmutableArray<EmbeddedDiagnostic> diagnostics)
449
private StackFrameTrivia? TryScanStringTrivia(string valueToLookFor,
StackFrameKind
triviaKind)
476
return CreateTrivia(
StackFrameKind
.WhitespaceTrivia, GetSubSequenceToCurrentPos(startPosition));
479
private static
StackFrameKind
GetKind(VirtualChar ch)
484
'&' =>
StackFrameKind
.AmpersandToken,
485
'[' =>
StackFrameKind
.OpenBracketToken,
486
']' =>
StackFrameKind
.CloseBracketToken,
487
'(' =>
StackFrameKind
.OpenParenToken,
488
')' =>
StackFrameKind
.CloseParenToken,
489
'.' =>
StackFrameKind
.DotToken,
490
'+' =>
StackFrameKind
.PlusToken,
491
',' =>
StackFrameKind
.CommaToken,
492
':' =>
StackFrameKind
.ColonToken,
493
'=' =>
StackFrameKind
.EqualsToken,
494
'>' =>
StackFrameKind
.GreaterThanToken,
495
'<' =>
StackFrameKind
.LessThanToken,
496
'-' =>
StackFrameKind
.MinusToken,
497
'\'' =>
StackFrameKind
.SingleQuoteToken,
498
'`' =>
StackFrameKind
.GraveAccentToken,
499
'\\' =>
StackFrameKind
.BackslashToken,
500
'/' =>
StackFrameKind
.ForwardSlashToken,
501
'$' =>
StackFrameKind
.DollarToken,
502
'|' =>
StackFrameKind
.PipeToken,
504
?
StackFrameKind
.WhitespaceTrivia
506
?
StackFrameKind
.NumberToken
507
:
StackFrameKind
.SkippedTextTrivia
EmbeddedLanguages\StackFrame\StackFrameNodeDefinitions.cs (52)
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)
43
: base(
StackFrameKind
.MethodDeclaration)
70
protected StackFrameTypeNode(
StackFrameKind
kind) : base(kind)
80
/// is not a type then it should use <see cref="StackFrameToken"/> with <see cref="
StackFrameKind
.IdentifierToken"/>
85
protected StackFrameNameNode(
StackFrameKind
kind) : base(kind)
97
protected StackFrameSimpleNameNode(StackFrameToken identifier,
StackFrameKind
kind) : base(kind)
99
Debug.Assert(identifier.Kind ==
StackFrameKind
.IdentifierToken);
113
public StackFrameQualifiedNameNode(StackFrameNameNode left, StackFrameToken dotToken, StackFrameSimpleNameNode right) : base(
StackFrameKind
.MemberAccess)
115
Debug.Assert(dotToken.Kind ==
StackFrameKind
.DotToken);
138
/// The simplest identifier node, which wraps a <see cref="
StackFrameKind
.IdentifierToken" />
145
: base(identifier,
StackFrameKind
.TypeIdentifier)
166
/// The "`" token in arity identifiers. Must be <see cref="
StackFrameKind
.GraveAccentToken"/>
175
: base(identifier,
StackFrameKind
.GenericTypeIdentifier)
177
Debug.Assert(graveAccentToken.Kind ==
StackFrameKind
.GraveAccentToken);
178
Debug.Assert(numberToken.Kind ==
StackFrameKind
.NumberToken);
199
protected StackFrameGeneratedNameNode(StackFrameToken identifier,
StackFrameKind
kind) : base(identifier, kind)
217
: base(identifier,
StackFrameKind
.GeneratedIdentifier)
219
Debug.Assert(lessThanToken.Kind ==
StackFrameKind
.LessThanToken);
220
Debug.Assert(greaterThanToken.Kind ==
StackFrameKind
.GreaterThanToken);
221
Debug.Assert(!dollarToken.HasValue || dollarToken.Value.Kind ==
StackFrameKind
.DollarToken);
268
: base(identifier,
StackFrameKind
.LocalMethodIdentifier)
270
Debug.Assert(generatedNameSeparator.Kind ==
StackFrameKind
.GeneratedNameSeparatorToken);
271
Debug.Assert(identifier.Kind ==
StackFrameKind
.IdentifierToken);
272
Debug.Assert(pipeToken.Kind ==
StackFrameKind
.PipeToken);
273
Debug.Assert(suffix.Kind ==
StackFrameKind
.GeneratedNameSuffixToken);
320
public StackFrameArrayTypeNode(StackFrameNameNode typeIdentifier, ImmutableArray<StackFrameArrayRankSpecifier> arrayRankSpecifiers) : base(
StackFrameKind
.ArrayTypeExpression)
347
: base(
StackFrameKind
.ArrayExpression)
350
Debug.Assert(openBracket.Kind ==
StackFrameKind
.OpenBracketToken);
351
Debug.Assert(closeBracket.Kind ==
StackFrameKind
.CloseBracketToken);
352
Debug.Assert(commaTokens.All(static t => t.Kind ==
StackFrameKind
.CommaToken));
394
public readonly EmbeddedSeparatedSyntaxNodeList<
StackFrameKind
, StackFrameNode, StackFrameIdentifierNameNode> TypeArguments;
399
EmbeddedSeparatedSyntaxNodeList<
StackFrameKind
, StackFrameNode, StackFrameIdentifierNameNode> typeArguments,
401
: base(
StackFrameKind
.TypeArgument)
403
Debug.Assert(openToken.Kind is
StackFrameKind
.OpenBracketToken or
StackFrameKind
.LessThanToken);
405
Debug.Assert(openToken.Kind ==
StackFrameKind
.OpenBracketToken ? closeToken.Kind ==
StackFrameKind
.CloseBracketToken : closeToken.Kind ==
StackFrameKind
.GreaterThanToken);
447
: base(
StackFrameKind
.Parameter)
449
Debug.Assert(identifier.Kind ==
StackFrameKind
.IdentifierToken);
469
public readonly EmbeddedSeparatedSyntaxNodeList<
StackFrameKind
, StackFrameNode, StackFrameParameterDeclarationNode> Parameters;
474
EmbeddedSeparatedSyntaxNodeList<
StackFrameKind
, StackFrameNode, StackFrameParameterDeclarationNode> parameters,
476
: base(
StackFrameKind
.ParameterList)
478
Debug.Assert(openToken.Kind ==
StackFrameKind
.OpenParenToken);
479
Debug.Assert(closeToken.Kind ==
StackFrameKind
.CloseParenToken);
516
public StackFrameFileInformationNode(StackFrameToken path, StackFrameToken? colon, StackFrameToken? line) : base(
StackFrameKind
.FileInformation)
518
Debug.Assert(path.Kind ==
StackFrameKind
.PathToken);
520
Debug.Assert(!line.HasValue || line.Value.Kind ==
StackFrameKind
.NumberToken);
EmbeddedLanguages\StackFrame\StackFrameParser.cs (32)
15
using StackFrameNodeOrToken = EmbeddedSyntaxNodeOrToken<
StackFrameKind
, StackFrameNode>;
16
using StackFrameToken = EmbeddedSyntaxToken<
StackFrameKind
>;
17
using StackFrameTrivia = EmbeddedSyntaxTrivia<
StackFrameKind
>;
91
Contract.ThrowIfFalse(eolToken.Kind ==
StackFrameKind
.EndOfFrame);
189
if (!_lexer.ScanCurrentCharAsTokenIfMatch(
StackFrameKind
.DotToken, out var dotToken))
249
if (!_lexer.ScanCurrentCharAsTokenIfMatch(
StackFrameKind
.LessThanToken, out var lessThanToken))
254
if (_lexer.CurrentCharAsToken().Kind ==
StackFrameKind
.LessThanToken)
267
if (!_lexer.ScanCurrentCharAsTokenIfMatch(
StackFrameKind
.GreaterThanToken, out var greaterThanToken))
272
if (_lexer.ScanCurrentCharAsTokenIfMatch(
StackFrameKind
.DollarToken, out var dollarToken))
297
if (!_lexer.ScanCurrentCharAsTokenIfMatch(
StackFrameKind
.PipeToken, out var suffixSeparator))
328
if (!_lexer.ScanCurrentCharAsTokenIfMatch(
StackFrameKind
.GraveAccentToken, out var graveAccentToken))
354
kind => kind is
StackFrameKind
.OpenBracketToken or
StackFrameKind
.LessThanToken,
360
var
closeBracketKind = openToken.Kind is
StackFrameKind
.OpenBracketToken
361
?
StackFrameKind
.CloseBracketToken
362
:
StackFrameKind
.GreaterThanToken;
368
while (currentIdentifier.HasValue && currentIdentifier.Value.Kind ==
StackFrameKind
.IdentifierToken)
377
if (!_lexer.ScanCurrentCharAsTokenIfMatch(
StackFrameKind
.CommaToken, out var commaToken))
396
var separatedList = new EmbeddedSeparatedSyntaxNodeList<
StackFrameKind
, StackFrameNode, StackFrameIdentifierNameNode>(builder.ToImmutable());
410
if (!_lexer.ScanCurrentCharAsTokenIfMatch(
StackFrameKind
.OpenParenToken, scanTrailingWhitespace: true, out var openParen))
415
if (_lexer.ScanCurrentCharAsTokenIfMatch(
StackFrameKind
.CloseParenToken, out var closeParen))
417
return new(openParen, EmbeddedSeparatedSyntaxNodeList<
StackFrameKind
, StackFrameNode, StackFrameParameterDeclarationNode>.Empty, closeParen);
433
if (!_lexer.ScanCurrentCharAsTokenIfMatch(
StackFrameKind
.CommaToken, out var commaToken))
441
if (!_lexer.ScanCurrentCharAsTokenIfMatch(
StackFrameKind
.CloseParenToken, out closeParen))
446
var parameters = new EmbeddedSeparatedSyntaxNodeList<
StackFrameKind
, StackFrameNode, StackFrameParameterDeclarationNode>(builder.ToImmutable());
465
if (CurrentCharAsToken().Kind ==
StackFrameKind
.OpenBracketToken)
499
if (!_lexer.ScanCurrentCharAsTokenIfMatch(
StackFrameKind
.OpenBracketToken, scanTrailingWhitespace: true, out var openBracket))
504
while (_lexer.ScanCurrentCharAsTokenIfMatch(
StackFrameKind
.CommaToken, scanTrailingWhitespace: true, out var commaToken))
509
if (!_lexer.ScanCurrentCharAsTokenIfMatch(
StackFrameKind
.CloseBracketToken, scanTrailingWhitespace: true, out var closeBracket))
533
if (path.Kind ==
StackFrameKind
.None)
538
if (!_lexer.ScanCurrentCharAsTokenIfMatch(
StackFrameKind
.ColonToken, out var colonToken))
EmbeddedLanguages\StackFrame\StackFrameTree.cs (1)
11
internal class StackFrameTree : EmbeddedSyntaxTree<
StackFrameKind
, StackFrameNode, StackFrameCompilationUnit>
Microsoft.VisualStudio.LanguageServices (3)
StackTraceExplorer\StackFrameViewModel.cs (2)
28
using StackFrameToken = EmbeddedSyntaxToken<
StackFrameKind
>;
29
using StackFrameTrivia = EmbeddedSyntaxTrivia<
StackFrameKind
>;
StackTraceExplorer\StackTraceExplorerToolWindow.cs (1)
114
return firstNodeOrToken.Token.LeadingTrivia.Any(static t => t.Kind ==
StackFrameKind
.AtTrivia);