public MSBuildNavigationResult(MSBuildReferenceKind kind, string name, int offset, int length) { Kind = kind; Name = name; Offset = offset; Length = length; }
public MSBuildNavigationResult( MSBuildReferenceKind kind, string name, int offset, int length, string destFile = null, DocumentLocation destLocation = default) { Kind = kind; Name = name; Offset = offset; Length = length; DestFile = destFile; }
public bool CanNavigate(ITextBuffer buffer, SnapshotPoint point, out MSBuildReferenceKind referenceKind) { Resolver.GetResolvedReference(buffer, point, out var doc, out var rr); if (MSBuildNavigation.CanNavigate(doc, point, rr)) { referenceKind = rr.ReferenceKind; return(true); } referenceKind = MSBuildReferenceKind.None; return(false); }
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); }