コード例 #1
0
        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));
        }