public override void VisitSpan(Span span) { switch (span.Kind) { case SpanKind.Code: var capturesText = this.textSymbols != null; if (capturesText) { EndText(); } var text = span.Content; var postion = span.Start; var extractor = CSharpStringExtractor.FromString(text); extractor.Path = this.Path; extractor.StartIndex = postion.AbsoluteIndex; extractor.StartLine = postion.LineIndex; extractor.StartCharacter = postion.CharacterIndex; foreach (var item in extractor.Search()) { item.Source3 = item.Source2; item.Source2 = item.Source1; item.Source1 = "razor"; this.Results.Add(item); } if (capturesText) { BeginText(); } break; case SpanKind.Markup: foreach (var symbol in span.Symbols.OfType <HtmlSymbol>()) { symbol.OffsetStart(span.Start); VisitHtmlSymbol(symbol); } break; } base.VisitSpan(span); }
private static SearchResult[] GetResults(string text) { var extractor = CSharpStringExtractor.FromString(text); return(extractor.Search().ToArray()); }