private NativeMethods.FindSourceDefinitionsAndDetermineSymbolResult GetNode(SnapshotPoint point, Project project, string fileName) { Compiler compiler; try { compiler = compilerHost.Value.CreateCompiler(project); } catch (COMException) { return(null); } // Don't choke on metadata as source var sourceFile = compiler.SourceFiles[new FileName(fileName)]; var node = sourceFile.GetParseTree().FindLeafNode(CSharpLanguageUtilities.ToPosition(point)); if (node == null) { return(null); } var rNode = ParseTreeMatch.GetReferencedNode(node); if (rNode == null) { return(null); } return(NativeMethods.FindSourceDefinitionsAndDetermineSymbolFromParseTree((IDECompilation)compiler.GetCompilation(), null, rNode)); }
public static NativeMethods.FindSourceDefinitionsAndDetermineSymbolResult GetNode(SnapshotPoint point, Project project, string fileName) { var compiler = compilerHost.Value.CreateCompiler(project); var sourceFile = compiler.SourceFiles[new FileName(fileName)]; var node = sourceFile.GetParseTree().FindLeafNode(LanguageUtilities.ToCSharpPosition(point)); if (node == null) { return(null); } var rNode = ParseTreeMatch.GetReferencedNode(node); if (rNode == null) { return(null); } return(NativeMethods.FindSourceDefinitionsAndDetermineSymbolFromParseTree((IDECompilation)compiler.GetCompilation(), null, rNode)); }