Esempio n. 1
0
        public static List<Tuple<SyntaxToken, ISymbol>> Build(Document document, TextSpan span)
        {
            var tree = (SyntaxTree)document.GetSyntaxTreeAsync(CancellationToken.None).Result;
            if (tree == null)
            {
                return null;
            }

            var builder = new TokenSymbolPairBuilder(document, span);
            builder.Visit(tree.GetRoot());

            return builder.tokenSymbolPair;
        }
Esempio n. 2
0
        public static List <Tuple <SyntaxToken, ISymbol> > Build(Document document, TextSpan span)
        {
            var tree = (SyntaxTree)document.GetSyntaxTreeAsync(CancellationToken.None).Result;

            if (tree == null)
            {
                return(null);
            }

            var builder = new TokenSymbolPairBuilder(document, span);

            builder.Visit(tree.GetRoot());

            return(builder.tokenSymbolPair);
        }
Esempio n. 3
0
        public static Dictionary <int, Tuple <SyntaxToken, ISymbol> > CreateOffsetMap(Document document, TextSpan span)
        {
            var pairList = TokenSymbolPairBuilder.Build(document, span);

            if (pairList == null)
            {
                return(null);
            }

            var listWithOffset = from pair in pairList
                                 let offset = pair.Item1.Span.Start - span.Start
                                              select new { Key = offset, Data = pair };

            var offsetMap = new Dictionary <int, Tuple <SyntaxToken, ISymbol> >();

            listWithOffset.Do(keyValue => offsetMap.Add(keyValue.Key, keyValue.Data));

            return(offsetMap);
        }