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)
25public static TextSpan GetSpan(VirtualChar firstChar, VirtualChar lastChar)
Infrastructure\EmbeddedSyntax\EmbeddedSyntaxNode.cs (1)
109public bool Contains(VirtualChar virtualChar)
Infrastructure\RoutePattern\RoutePatternLexer.cs (12)
26public VirtualChar CurrentChar => Position < Text.Length ? Text[Position] : default; 41var ch = CurrentChar; 47private static RoutePatternKind GetKind(VirtualChar ch) 101var ch = CurrentChar; 184var ch = CurrentChar; 233static bool IsInvalidNameChar(VirtualChar ch) => 245private bool IsTrailingQuestionMark(VirtualChar ch) 261var ch = Text[Position]; 353var ch = Text[Position]; 402var ch = Text[Position]; 444var ch = Text[Position]; 480var ch = Text[current];
Infrastructure\VirtualChars\AbstractVirtualCharService.cs (15)
16public abstract bool TryGetEscapeCharacter(VirtualChar ch, out char escapedChar); 81var currentVC = result[0]; 94var nextVC = result[i]; 103var nextVC = result[i]; 109var lastVC = result.Last(); 157var result = ImmutableList.CreateBuilder<VirtualChar>(); 164result.Add(VirtualChar.Create(new Rune('"'), new TextSpan(offset + index, 2))); 175result.Add(VirtualChar.Create(new Rune(tokenText[index]), span)); 190protected static int ConvertTextAtIndexToRune(string tokenText, int index, ImmutableList<VirtualChar>.Builder result, int offset) 193protected static int ConvertTextAtIndexToRune(SourceText tokenText, int index, ImmutableList<VirtualChar>.Builder result, int offset) 197T tokenText, int index, TTextInfo info, ImmutableList<VirtualChar>.Builder result, int offset) 205result.Add(VirtualChar.Create(rune, new TextSpan(offset + index, 1))); 212result.Add(VirtualChar.Create(rune, new TextSpan(offset + index, 2))); 219result.Add(VirtualChar.Create(ch, new TextSpan(offset + index, 1))); 230ImmutableList<VirtualChar>.Builder result)
Infrastructure\VirtualChars\CSharpVirtualCharService.cs (8)
137var result = ImmutableList.CreateBuilder<VirtualChar>(); 214var result = ImmutableList.CreateBuilder<VirtualChar>(); 307var runeResults = ImmutableList.CreateBuilder<VirtualChar>(); 314private static void ConvertCharactersToRunes(List<(char ch, TextSpan span)> charResults, ImmutableList<VirtualChar>.Builder runeResults) 323runeResults.Add(VirtualChar.Create(rune, span)); 334runeResults.Add(VirtualChar.Create(rune, TextSpan.FromBounds(span.Start, nextSpan.End))); 342runeResults.Add(VirtualChar.Create(ch, span)); 357public 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 70bool TryGetEscapeCharacter(VirtualChar ch, out char escapeChar);
Infrastructure\VirtualChars\RuneExtensions.cs (1)
10public 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"/> 25internal 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 52public 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 60public static VirtualChar Create(char surrogateChar, TextSpan span) 105public static bool operator ==(VirtualChar char1, VirtualChar char2) 108public static bool operator !=(VirtualChar char1, VirtualChar char2) 111public static bool operator ==(VirtualChar ch1, char ch2) 114public static bool operator !=(VirtualChar ch1, char ch2) 118=> obj is VirtualChar vc && Equals(vc); 120public bool Equals(VirtualChar other) 164public int CompareTo(VirtualChar other) 167public static bool operator <(VirtualChar ch1, VirtualChar ch2) 170public static bool operator <=(VirtualChar ch1, VirtualChar ch2) 173public static bool operator >(VirtualChar ch1, VirtualChar ch2) 176public static bool operator >=(VirtualChar ch1, VirtualChar ch2) 182public static bool operator <(VirtualChar ch1, char ch2) 185public static bool operator <=(VirtualChar ch1, char ch2) 188public static bool operator >(VirtualChar ch1, char ch2) 191public 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}"/> 29public abstract VirtualChar this[int index] { get; } 30public abstract VirtualChar? Find(int position); 40private readonly ImmutableList<VirtualChar> _array; 42public ImmutableSegmentedListChunk(ImmutableList<VirtualChar> array) 46public override VirtualChar this[int index] => _array[index]; 48public override VirtualChar? Find(int position) 130public override VirtualChar? Find(int position) 141public override VirtualChar this[int index] 158? VirtualChar.Create(ch, span) 159: VirtualChar.Create(new Rune(ch), span);
Infrastructure\VirtualChars\VirtualCharSequence.cs (23)
30public static readonly VirtualCharSequence Empty = Create(ImmutableList<VirtualChar>.Empty); 32public static VirtualCharSequence Create(ImmutableList<VirtualChar> virtualChars) 76/// Gets the <see cref="VirtualChar"/> at the specified index. 78public VirtualChar this[int index] => _leafCharacters[_span.Start + index]; 96public VirtualChar First() => this[0]; 97public VirtualChar Last() => this[Length - 1]; 103public VirtualChar? Find(int position) 106public bool Contains(VirtualChar @char) 109public int IndexOf(VirtualChar @char) 112foreach (var ch in this) 125public VirtualChar? FirstOrNull(Func<VirtualChar, bool> predicate) 127foreach (var ch in this) 138public VirtualChar? LastOrNull(Func<VirtualChar, bool> predicate) 142var ch = this[i]; 152public bool Any(Func<VirtualChar, bool> predicate) 154foreach (var ch in this) 165public bool All(Func<VirtualChar, bool> predicate) 167foreach (var ch in this) 181public VirtualCharSequence SkipWhile(Func<VirtualChar, bool> predicate) 184foreach (var ch in this) 203foreach (var ch in this)
Infrastructure\VirtualChars\VirtualCharSequence.Enumerator.cs (2)
12public struct Enumerator : IEnumerator<VirtualChar> 24public VirtualChar Current => _virtualCharSequence[_position];
RouteEmbeddedLanguage\RoutePatternBraceMatcher.cs (9)
39var ch = virtualChar.Value; 49private static AspNetCoreBraceMatchingResult? FindParameterBraces(RoutePatternTree tree, VirtualChar ch) 55private static AspNetCoreBraceMatchingResult? FindPolicyParens(RoutePatternTree tree, VirtualChar ch) 61private static AspNetCoreBraceMatchingResult? FindReplacementTokenBrackets(RoutePatternTree tree, VirtualChar ch) 67private static RoutePatternParameterNode? FindParameterNode(RoutePatternNode node, VirtualChar ch) 71private static RoutePatternPolicyFragmentEscapedNode? FindPolicyFragmentEscapedNode(RoutePatternNode node, VirtualChar ch) 75private static RoutePatternReplacementNode? FindReplacementNode(RoutePatternNode node, VirtualChar ch) 79private static TNode? FindNode<TNode>(RoutePatternNode node, VirtualChar ch, Func<TNode, VirtualChar, bool> predicate)
RouteEmbeddedLanguage\RoutePatternCompletionProvider.cs (2)
229var previousVirtualChar = previousVirtualCharOpt.Value; 282private static (RoutePatternNode Parent, RoutePatternToken Token)? FindToken(RoutePatternNode parent, VirtualChar ch)
RouteEmbeddedLanguage\RoutePatternHighlighter.cs (3)
108private static RoutePatternNameParameterPartNode? FindParameterNode(RoutePatternNode node, VirtualChar ch) 111private static TNode? FindNode<TNode>(RoutePatternNode node, VirtualChar ch, Func<TNode, VirtualChar, bool> predicate)