Exemplo n.º 1
0
        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());
        }