public void ReportResult (SearchResult result) { try { outputPad.ReportResult (result); } catch (Exception ex) { LoggingService.LogError ("Error adding search result for file {0}:{1} to result pad:\n{2}", result.FileName, result.Offset, ex.ToString ()); } }
public void ReportResult (SearchResult result) { widget.Add (result); }
DocumentLocation GetLocation (SearchResult searchResult) { var doc = GetDocument (searchResult); if (doc == null) return DocumentLocation.Empty; int lineNr = doc.OffsetToLineNumber (searchResult.Offset); var line = doc.GetLine (lineNr); if (line == null) return DocumentLocation.Empty; return new DocumentLocation (lineNr, searchResult.Offset - line.Offset + 1); }
public void Add (SearchResult result) { newStore.InsertWithValues (ResultCount++, result, false); }
TextEditor GetDocument (SearchResult result) { TextEditor doc; if (!documents.TryGetValue (result.FileName, out doc)) { var content = result.FileProvider.ReadString (); if (content == null) return null; doc = TextEditorFactory.CreateNewEditor (TextEditorFactory.CreateNewReadonlyDocument (new StringTextSource (content.ReadToEnd ()), result.FileName, DesktopService.GetMimeTypeForUri (result.FileName))); documents [result.FileName] = doc; } return doc; }
public override Task<IEnumerable<SearchResult>> FindAllReferences (string documentationCommentId, MonoDevelop.Projects.Project hintProject, CancellationToken token) { var workspace = TypeSystemService.Workspace as MonoDevelopWorkspace; if (workspace == null) return Task.FromResult (Enumerable.Empty<SearchResult> ()); return Task.Run (async delegate { var antiDuplicatesSet = new HashSet<SearchResult> (new SearchResultComparer ()); var result = new List<SearchResult> (); var lookup = await TryLookupSymbol (documentationCommentId, hintProject, token); if (!lookup.Success) return result; foreach (var simSym in SymbolFinder.FindSimilarSymbols (lookup.Symbol, lookup.Compilation)) { foreach (var loc in simSym.Locations) { if (!loc.IsInSource) continue; var sr = new SearchResult (new FileProvider (loc.SourceTree.FilePath), loc.SourceSpan.Start, loc.SourceSpan.Length); if (antiDuplicatesSet.Add (sr)) { result.Add (sr); } } foreach (var mref in await SymbolFinder.FindReferencesAsync (simSym, lookup.Solution).ConfigureAwait (false)) { foreach (var loc in mref.Locations) { var fileName = loc.Document.FilePath; var offset = loc.Location.SourceSpan.Start; string projectedName; int projectedOffset; if (workspace.TryGetOriginalFileFromProjection (fileName, offset, out projectedName, out projectedOffset)) { fileName = projectedName; offset = projectedOffset; } var sr = new SearchResult (new FileProvider (fileName), offset, loc.Location.SourceSpan.Length); if (antiDuplicatesSet.Add (sr)) { result.Add (sr); } } } } return (IEnumerable<SearchResult>)result; }); }
public override Task<IEnumerable<SearchResult>> FindReferences (string documentationCommentId, MonoDevelop.Projects.Project hintProject, CancellationToken token) { return Task.Run (async delegate { var result = new List<SearchResult> (); var antiDuplicatesSet = new HashSet<SearchResult> (new SearchResultComparer ()); foreach (var workspace in TypeSystemService.AllWorkspaces.OfType<MonoDevelopWorkspace> ()) { LookupResult lookup = null; foreach (var project in workspace.CurrentSolution.Projects) { lookup = await TryLookupSymbolInProject (project, documentationCommentId, token); if (lookup.Success) break; } if (lookup == null || !lookup.Success) { continue; } foreach (var loc in lookup.Symbol.Locations) { if (!loc.IsInSource) continue; var fileName = loc.SourceTree.FilePath; var offset = loc.SourceSpan.Start; string projectedName; int projectedOffset; if (workspace.TryGetOriginalFileFromProjection (fileName, offset, out projectedName, out projectedOffset)) { fileName = projectedName; offset = projectedOffset; } var sr = new SearchResult (new FileProvider (fileName), offset, loc.SourceSpan.Length); antiDuplicatesSet.Add (sr); result.Add (sr); } foreach (var mref in await SymbolFinder.FindReferencesAsync (lookup.Symbol, lookup.Solution).ConfigureAwait (false)) { foreach (var loc in mref.Locations) { var fileName = loc.Document.FilePath; var offset = loc.Location.SourceSpan.Start; string projectedName; int projectedOffset; if (workspace.TryGetOriginalFileFromProjection (fileName, offset, out projectedName, out projectedOffset)) { fileName = projectedName; offset = projectedOffset; } var sr = new SearchResult (new FileProvider (fileName), offset, loc.Location.SourceSpan.Length); if (antiDuplicatesSet.Add (sr)) { result.Add (sr); } } } } return (IEnumerable<SearchResult>)result; }); }
public void Add(SearchResult result) { newStore.InsertWithValues(ResultCount++, result, false); }