public static string ParseSpans(this string text, out ImmutableArray <TextSpan> spans) { var annotatedText = AnnotatedText.Parse(text); spans = annotatedText.Spans; return(annotatedText.Text); }
public static string ParseSinglePosition(this string text, out int position) { var annotatedText = AnnotatedText.Parse(text); if (annotatedText.Spans.Length != 1 || annotatedText.Spans[0].Length != 0) { throw new ArgumentException(@"The position must be marked with a single pipe, such as 'SELECT e.Empl|oyeeId'", nameof(text)); } position = annotatedText.Spans.Single().Start; return(annotatedText.Text); }