Esempio n. 1
0
        List <(int Offset, int Length, ReferenceUsage Usage)> FindReferences(string docString, MSBuildReferenceKind kind, object reference)
        {
            var textDoc = new StringTextSource(docString);

            var xmlParser = new XmlTreeParser(new XmlRootState());

            var(xdoc, _) = xmlParser.Parse(new StringReader(docString));

            var doc          = MSBuildTestHelpers.CreateEmptyDocument();
            var parseContext = new MSBuildParserContext(new NullRuntimeInformation(), null, null, null, null, new PropertyValueCollector(false), null, null, default);
            var sb           = new MSBuildSchemaBuilder(true, parseContext, null);

            sb.Run(xdoc, textDoc, doc);

            var functionTypeProvider = new RoslynFunctionTypeProvider(null);

            var results   = new List <(int Offset, int Length, ReferenceUsage Usage)> ();
            var collector = MSBuildReferenceCollector.Create(new MSBuildResolveResult {
                ReferenceKind = kind,
                Reference     = reference,
            }, functionTypeProvider, results.Add);

            collector.Run(xdoc, textDoc, doc);
            return(results);
        }
Esempio n. 2
0
        List <(int Offset, int Length, ReferenceUsage Usage)> FindReferences(string docString, MSBuildReferenceKind kind, object reference)
        {
            string filename = "test.csproj";

            var textDoc = TextEditorFactory.CreateNewDocument(new StringTextSource(docString), filename, MSBuildTextEditorExtension.MSBuildMimeType);

            var xmlParser = new XmlParser(new XmlRootState(), true);

            xmlParser.Parse(new StringReader(docString));
            var xdoc = xmlParser.Nodes.GetRoot();


            var doc = MSBuildTestHelpers.CreateEmptyDocument();
            var sb  = new MSBuildSchemaBuilder(true, null, new PropertyValueCollector(false), null, null);

            sb.Run(xdoc, filename, textDoc, doc);

            var collector = MSBuildReferenceCollector.Create(new MSBuildResolveResult {
                ReferenceKind = kind,
                Reference     = reference,
            });

            collector.Run(xdoc, filename, textDoc, doc);
            return(collector.Results);
        }