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