1 instantiation of VirtualChar
Microsoft.AspNetCore.App.Analyzers (1)
Infrastructure\VirtualChars\VirtualChar.cs (1)
53
=>
new
(rune, surrogateChar: default, span);
125 references to VirtualChar
Microsoft.AspNetCore.App.Analyzers (125)
Infrastructure\EmbeddedSyntax\EmbeddedSyntaxHelpers.cs (2)
25
public static TextSpan GetSpan(
VirtualChar
firstChar,
VirtualChar
lastChar)
Infrastructure\EmbeddedSyntax\EmbeddedSyntaxNode.cs (1)
109
public bool Contains(
VirtualChar
virtualChar)
Infrastructure\RoutePattern\RoutePatternLexer.cs (12)
26
public
VirtualChar
CurrentChar => Position < Text.Length ? Text[Position] : default;
41
var
ch = CurrentChar;
47
private static RoutePatternKind GetKind(
VirtualChar
ch)
101
var
ch = CurrentChar;
184
var
ch = CurrentChar;
233
static bool IsInvalidNameChar(
VirtualChar
ch) =>
245
private bool IsTrailingQuestionMark(
VirtualChar
ch)
261
var
ch = Text[Position];
353
var
ch = Text[Position];
402
var
ch = Text[Position];
444
var
ch = Text[Position];
480
var
ch = Text[current];
Infrastructure\VirtualChars\AbstractVirtualCharService.cs (15)
16
public abstract bool TryGetEscapeCharacter(
VirtualChar
ch, out char escapedChar);
81
var
currentVC = result[0];
94
var
nextVC = result[i];
103
var
nextVC = result[i];
109
var
lastVC = result.Last();
157
var result = ImmutableList.CreateBuilder<
VirtualChar
>();
164
result.Add(
VirtualChar
.Create(new Rune('"'), new TextSpan(offset + index, 2)));
175
result.Add(
VirtualChar
.Create(new Rune(tokenText[index]), span));
190
protected static int ConvertTextAtIndexToRune(string tokenText, int index, ImmutableList<
VirtualChar
>.Builder result, int offset)
193
protected static int ConvertTextAtIndexToRune(SourceText tokenText, int index, ImmutableList<
VirtualChar
>.Builder result, int offset)
197
T tokenText, int index, TTextInfo info, ImmutableList<
VirtualChar
>.Builder result, int offset)
205
result.Add(
VirtualChar
.Create(rune, new TextSpan(offset + index, 1)));
212
result.Add(
VirtualChar
.Create(rune, new TextSpan(offset + index, 2)));
219
result.Add(
VirtualChar
.Create(ch, new TextSpan(offset + index, 1)));
230
ImmutableList<
VirtualChar
>.Builder result)
Infrastructure\VirtualChars\CSharpVirtualCharService.cs (8)
137
var result = ImmutableList.CreateBuilder<
VirtualChar
>();
214
var result = ImmutableList.CreateBuilder<
VirtualChar
>();
307
var runeResults = ImmutableList.CreateBuilder<
VirtualChar
>();
314
private static void ConvertCharactersToRunes(List<(char ch, TextSpan span)> charResults, ImmutableList<
VirtualChar
>.Builder runeResults)
323
runeResults.Add(
VirtualChar
.Create(rune, span));
334
runeResults.Add(
VirtualChar
.Create(rune, TextSpan.FromBounds(span.Start, nextSpan.End)));
342
runeResults.Add(
VirtualChar
.Create(ch, span));
357
public override bool TryGetEscapeCharacter(
VirtualChar
ch, out char escapedChar)
Infrastructure\VirtualChars\IVirtualCharService.cs (4)
29
/// Takes in a string token and return the <see cref="
VirtualChar
"/>s corresponding to each
50
/// VirtualChar in the result array with a matching <see cref="
VirtualChar
.Rune"/> property.
51
/// Similarly, each VirtualChar's <see cref="
VirtualChar
.Span"/> will abut each other, and
70
bool TryGetEscapeCharacter(
VirtualChar
ch, out char escapeChar);
Infrastructure\VirtualChars\RuneExtensions.cs (1)
10
public static bool TryGetEscapeCharacter(this
VirtualChar
ch, out char escapedChar)
Infrastructure\VirtualChars\VirtualChar.cs (31)
11
/// <see cref="
VirtualChar
"/> provides a uniform view of a language's string token characters regardless if they
15
/// (<c>\</c> and <c>t</c>). <see cref="
VirtualChar
"/> will represent both, providing the raw <see cref="char"/>
25
internal readonly struct VirtualChar : IEquatable<
VirtualChar
>, IComparable<
VirtualChar
>, IComparable<char>
28
/// The value of this <see cref="
VirtualChar
"/> as a <see cref="Rune"/> if such a representation is possible.
44
/// cref="
VirtualChar
"/>.
49
/// Creates a new <see cref="
VirtualChar
"/> from the provided <paramref name="rune"/>. This operation cannot
52
public static
VirtualChar
Create(Rune rune, TextSpan span)
56
/// Creates a new <see cref="
VirtualChar
"/> from an unpaired high or low surrogate character. This will throw
60
public static
VirtualChar
Create(char surrogateChar, TextSpan span)
105
public static bool operator ==(
VirtualChar
char1,
VirtualChar
char2)
108
public static bool operator !=(
VirtualChar
char1,
VirtualChar
char2)
111
public static bool operator ==(
VirtualChar
ch1, char ch2)
114
public static bool operator !=(
VirtualChar
ch1, char ch2)
118
=> obj is
VirtualChar
vc && Equals(vc);
120
public bool Equals(
VirtualChar
other)
164
public int CompareTo(
VirtualChar
other)
167
public static bool operator <(
VirtualChar
ch1,
VirtualChar
ch2)
170
public static bool operator <=(
VirtualChar
ch1,
VirtualChar
ch2)
173
public static bool operator >(
VirtualChar
ch1,
VirtualChar
ch2)
176
public static bool operator >=(
VirtualChar
ch1,
VirtualChar
ch2)
182
public static bool operator <(
VirtualChar
ch1, char ch2)
185
public static bool operator <=(
VirtualChar
ch1, char ch2)
188
public static bool operator >(
VirtualChar
ch1, char ch2)
191
public static bool operator >=(
VirtualChar
ch1, char ch2)
Infrastructure\VirtualChars\VirtualCharSequence.Chunks.cs (12)
17
/// Abstraction over a contiguous chunk of <see cref="
VirtualChar
"/>s. This
18
/// is used so we can expose <see cref="
VirtualChar
"/>s over an <see cref="ImmutableArray{VirtualChar}"/>
29
public abstract
VirtualChar
this[int index] { get; }
30
public abstract
VirtualChar
? Find(int position);
40
private readonly ImmutableList<
VirtualChar
> _array;
42
public ImmutableSegmentedListChunk(ImmutableList<
VirtualChar
> array)
46
public override
VirtualChar
this[int index] => _array[index];
48
public override
VirtualChar
? Find(int position)
130
public override
VirtualChar
? Find(int position)
141
public override
VirtualChar
this[int index]
158
?
VirtualChar
.Create(ch, span)
159
:
VirtualChar
.Create(new Rune(ch), span);
Infrastructure\VirtualChars\VirtualCharSequence.cs (23)
30
public static readonly VirtualCharSequence Empty = Create(ImmutableList<
VirtualChar
>.Empty);
32
public static VirtualCharSequence Create(ImmutableList<
VirtualChar
> virtualChars)
76
/// Gets the <see cref="
VirtualChar
"/> at the specified index.
78
public
VirtualChar
this[int index] => _leafCharacters[_span.Start + index];
96
public
VirtualChar
First() => this[0];
97
public
VirtualChar
Last() => this[Length - 1];
103
public
VirtualChar
? Find(int position)
106
public bool Contains(
VirtualChar
@char)
109
public int IndexOf(
VirtualChar
@char)
112
foreach (
var
ch in this)
125
public
VirtualChar
? FirstOrNull(Func<
VirtualChar
, bool> predicate)
127
foreach (
var
ch in this)
138
public
VirtualChar
? LastOrNull(Func<
VirtualChar
, bool> predicate)
142
var
ch = this[i];
152
public bool Any(Func<
VirtualChar
, bool> predicate)
154
foreach (
var
ch in this)
165
public bool All(Func<
VirtualChar
, bool> predicate)
167
foreach (
var
ch in this)
181
public VirtualCharSequence SkipWhile(Func<
VirtualChar
, bool> predicate)
184
foreach (
var
ch in this)
203
foreach (
var
ch in this)
Infrastructure\VirtualChars\VirtualCharSequence.Enumerator.cs (2)
12
public struct Enumerator : IEnumerator<
VirtualChar
>
24
public
VirtualChar
Current => _virtualCharSequence[_position];
RouteEmbeddedLanguage\RoutePatternBraceMatcher.cs (9)
39
var
ch = virtualChar.Value;
49
private static AspNetCoreBraceMatchingResult? FindParameterBraces(RoutePatternTree tree,
VirtualChar
ch)
55
private static AspNetCoreBraceMatchingResult? FindPolicyParens(RoutePatternTree tree,
VirtualChar
ch)
61
private static AspNetCoreBraceMatchingResult? FindReplacementTokenBrackets(RoutePatternTree tree,
VirtualChar
ch)
67
private static RoutePatternParameterNode? FindParameterNode(RoutePatternNode node,
VirtualChar
ch)
71
private static RoutePatternPolicyFragmentEscapedNode? FindPolicyFragmentEscapedNode(RoutePatternNode node,
VirtualChar
ch)
75
private static RoutePatternReplacementNode? FindReplacementNode(RoutePatternNode node,
VirtualChar
ch)
79
private static TNode? FindNode<TNode>(RoutePatternNode node,
VirtualChar
ch, Func<TNode,
VirtualChar
, bool> predicate)
RouteEmbeddedLanguage\RoutePatternCompletionProvider.cs (2)
229
var
previousVirtualChar = previousVirtualCharOpt.Value;
282
private static (RoutePatternNode Parent, RoutePatternToken Token)? FindToken(RoutePatternNode parent,
VirtualChar
ch)
RouteEmbeddedLanguage\RoutePatternHighlighter.cs (3)
108
private static RoutePatternNameParameterPartNode? FindParameterNode(RoutePatternNode node,
VirtualChar
ch)
111
private static TNode? FindNode<TNode>(RoutePatternNode node,
VirtualChar
ch, Func<TNode,
VirtualChar
, bool> predicate)