private IEnumerable <FilePositionSpan> FilterOnOtherEntries(SearchContentsData searchContentsData, IEnumerable <FilePositionSpan> matches) { FindEntryFunction findEntry = (position, length, entry) => { var algo = searchContentsData.GetSearchAlgorithms(entry).AsciiStringSearchAlgo; var start = Pointers.AddPtr(this.Pointer, position); var result = algo.Search(start, length); if (result == IntPtr.Zero) { return(-1); } return(position + Pointers.Offset32(start, result)); }; GetLineExtentFunction getLineExtent = position => { int lineStart; int lineLength; NativeMethods.Ascii_GetLineExtentFromPosition(this.Pointer, (int)this.CharacterCount, position, out lineStart, out lineLength); return(new FilePositionSpan { Position = lineStart, Length = lineLength }); }; return(new TextSourceTextSearch(getLineExtent, findEntry).FilterOnOtherEntries(searchContentsData.ParsedSearchString, matches)); }
public TextSourceTextSearch(GetLineExtentFunction getLineExtent, FindEntryFunction findEntry) { _getLineExtent = getLineExtent; _findEntry = findEntry; }
public GetLineExtentCache(GetLineExtentFunction getLineExtent) { _getLineExtent = getLineExtent; }
public GetLineExtentCache(GetLineExtentFunction getLineExtent) { _getLineExtent = getLineExtent; }
public TextSourceTextSearch(GetLineExtentFunction getLineExtent, FindEntryFunction findEntry) { _getLineExtent = getLineExtent; _findEntry = findEntry; }