1 instantiation of VirtualChar
Microsoft.CodeAnalysis.CodeStyle (1)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\EmbeddedLanguages\VirtualChars\VirtualChar.cs (1)
54=> new(rune, surrogateChar: default, span);
82 references to VirtualChar
Microsoft.CodeAnalysis.CodeStyle (82)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\EmbeddedLanguages\Common\EmbeddedSyntaxHelpers.cs (2)
18public static TextSpan GetSpan(VirtualChar firstChar, VirtualChar lastChar)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\EmbeddedLanguages\Common\EmbeddedSyntaxNode.cs (1)
125public bool Contains(VirtualChar virtualChar)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\EmbeddedLanguages\VirtualChars\AbstractVirtualCharService.cs (15)
16public abstract bool TryGetEscapeCharacter(VirtualChar ch, out char escapedChar); 84var currentVC = result[0]; 97var nextVC = result[i]; 106var nextVC = result[i]; 112var lastVC = result.Last(); 160var result = ImmutableSegmentedList.CreateBuilder<VirtualChar>(); 167result.Add(VirtualChar.Create(new Rune('"'), new TextSpan(offset + index, 2))); 176result.Add(VirtualChar.Create(new Rune(tokenText[index]), span)); 191protected static int ConvertTextAtIndexToRune(string tokenText, int index, ImmutableSegmentedList<VirtualChar>.Builder result, int offset) 194protected static int ConvertTextAtIndexToRune(SourceText tokenText, int index, ImmutableSegmentedList<VirtualChar>.Builder result, int offset) 198T tokenText, int index, TTextInfo info, ImmutableSegmentedList<VirtualChar>.Builder result, int offset) 206result.Add(VirtualChar.Create(rune, new TextSpan(offset + index, 1))); 213result.Add(VirtualChar.Create(rune, new TextSpan(offset + index, 2))); 220result.Add(VirtualChar.Create(ch, new TextSpan(offset + index, 1))); 231ImmutableSegmentedList<VirtualChar>.Builder result)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\EmbeddedLanguages\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);
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\EmbeddedLanguages\VirtualChars\VirtualChar.cs (24)
12/// <see cref="VirtualChar"/> provides a uniform view of a language's string token characters regardless if they 16/// (<c>\</c> and <c>t</c>). <see cref="VirtualChar"/> will represent both, providing the raw <see cref="char"/> 26internal readonly record struct VirtualChar : IComparable<VirtualChar>, IComparable<char> 29/// The value of this <see cref="VirtualChar"/> as a <see cref="Rune"/> if such a representation is possible. 45/// cref="VirtualChar"/>. 50/// Creates a new <see cref="VirtualChar"/> from the provided <paramref name="rune"/>. This operation cannot 53public static VirtualChar Create(Rune rune, TextSpan span) 57/// Creates a new <see cref="VirtualChar"/> from an unpaired high or low surrogate character. This will throw 61public static VirtualChar Create(char surrogateChar, TextSpan span) 106public static bool operator ==(VirtualChar ch1, char ch2) 109public static bool operator !=(VirtualChar ch1, char ch2) 140public int CompareTo(VirtualChar other) 143public static bool operator <(VirtualChar ch1, VirtualChar ch2) 146public static bool operator <=(VirtualChar ch1, VirtualChar ch2) 149public static bool operator >(VirtualChar ch1, VirtualChar ch2) 152public static bool operator >=(VirtualChar ch1, VirtualChar ch2) 158public static bool operator <(VirtualChar ch1, char ch2) 161public static bool operator <=(VirtualChar ch1, char ch2) 164public static bool operator >(VirtualChar ch1, char ch2) 167public static bool operator >=(VirtualChar ch1, char ch2)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\EmbeddedLanguages\VirtualChars\VirtualCharSequence.Chunks.cs (11)
16/// Abstraction over a contiguous chunk of <see cref="VirtualChar"/>s. This 17/// is used so we can expose <see cref="VirtualChar"/>s over an <see cref="ImmutableArray{VirtualChar}"/> 28public abstract VirtualChar this[int index] { get; } 29public abstract VirtualChar? Find(int position); 37private sealed class ImmutableSegmentedListChunk(ImmutableSegmentedList<VirtualChar> array) : Chunk 40public override VirtualChar this[int index] => array[index]; 42public override VirtualChar? Find(int position) 85public override VirtualChar? Find(int position) 94public override VirtualChar this[int index] 111? VirtualChar.Create(ch, span) 112: VirtualChar.Create(new Rune(ch), span);
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\EmbeddedLanguages\VirtualChars\VirtualCharSequence.cs (23)
30public static readonly VirtualCharSequence Empty = Create(ImmutableSegmentedList<VirtualChar>.Empty); 32public static VirtualCharSequence Create(ImmutableSegmentedList<VirtualChar> virtualChars) 72/// Gets the <see cref="VirtualChar"/> at the specified index. 74public VirtualChar this[int index] => _leafCharacters[_span.Start + index]; 92public VirtualChar First() => this[0]; 93public VirtualChar Last() => this[^1]; 99public VirtualChar? Find(int position) 102public bool Contains(VirtualChar @char) 105public int IndexOf(VirtualChar @char) 108foreach (var ch in this) 119public VirtualChar? FirstOrNull(Func<VirtualChar, bool> predicate) 121foreach (var ch in this) 130public VirtualChar? LastOrNull(Func<VirtualChar, bool> predicate) 134var ch = this[i]; 142public bool Any(Func<VirtualChar, bool> predicate) 144foreach (var ch in this) 153public bool All(Func<VirtualChar, bool> predicate) 155foreach (var ch in this) 167public VirtualCharSequence SkipWhile(Func<VirtualChar, bool> predicate) 170foreach (var ch in this) 187foreach (var ch in this)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\EmbeddedLanguages\VirtualChars\VirtualCharSequence.Enumerator.cs (2)
12public struct Enumerator(VirtualCharSequence virtualCharSequence) : IEnumerator<VirtualChar> 17public readonly VirtualChar Current => virtualCharSequence[_position];