void ResolveButtonClick(object sender, EventArgs e) { IProjectContent project = new CSharpProjectContent(); var parsedFile = compilationUnit.ToTypeSystem(); project = project.UpdateProjectContent(null, parsedFile); project = project.AddAssemblyReferences(builtInLibs.Value); ICompilation compilation = project.CreateCompilation(); StoreInDictionaryNavigator navigator; if (csharpTreeView.SelectedNode != null) { navigator = new StoreInDictionaryNavigator((AstNode)csharpTreeView.SelectedNode.Tag); } else { navigator = new StoreInDictionaryNavigator(); } CSharpAstResolver resolver = new CSharpAstResolver(compilation, compilationUnit, parsedFile); resolver.ApplyNavigator(navigator); csharpTreeView.BeginUpdate(); ShowResolveResultsInTree(csharpTreeView.Nodes, navigator); csharpTreeView.EndUpdate(); }
void ShowResolveResultsInTree(TreeNodeCollection c, StoreInDictionaryNavigator n) { foreach (TreeNode t in c) { AstNode node = t.Tag as AstNode; if (node != null) { ResolveResult rr; string text = GetNodeTitle(node); if (n.resolveResults.TryGetValue(node, out rr)) { text += " " + rr.ToString(); } if (n.conversions.ContainsKey(node)) { text += " [" + n.conversions[node] + " to " + n.conversionTargetTypes[node] + "]"; } t.Text = text; } ShowResolveResultsInTree(t.Nodes, n); } }
void ShowResolveResultsInTree(TreeNodeCollection c, StoreInDictionaryNavigator n) { foreach (TreeNode t in c) { AstNode node = t.Tag as AstNode; if (node != null) { ResolveResult rr; string text = GetNodeTitle(node); if (n.resolveResults.TryGetValue(node, out rr)) text += " " + rr.ToString(); if (n.conversions.ContainsKey(node)) { text += " [" + n.conversions[node] + " to " + n.conversionTargetTypes[node] + "]"; } t.Text = text; } ShowResolveResultsInTree(t.Nodes, n); } }