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; }
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); }
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); }