Пример #1
0
        private Func <TextRange, TextRange?> CreateFilterForOtherEntries(
            CompiledTextSearchData compiledTextSearchData)
        {
            if (compiledTextSearchData.ParsedSearchString.EntriesBeforeMainEntry.Count == 0 &&
                compiledTextSearchData.ParsedSearchString.EntriesAfterMainEntry.Count == 0)
            {
                return(x => x);
            }

            // Search for a match for "entry" withing "textRange"
            FindEntryFunction findEntry = (textRange, entry) => {
                var algo = this.GetCompiledTextSearch(compiledTextSearchData.GetSearchContainer(entry));
                return(algo.FindFirst(CreateFragmentFromRange(textRange), OperationProgressTracker.None));
            };

            // Return the extent of the line to look into for non-main entries.
            GetLineRangeFunction getLineRange = position =>
                                                this.GetLineTextRangeFromPosition(position, MaxLineExtentOffset);

            var sourceTextSearch = new TextSourceTextSearch(
                getLineRange,
                findEntry,
                compiledTextSearchData.ParsedSearchString);

            return(sourceTextSearch.FilterSearchHit);
        }
Пример #2
0
 public TextSourceTextSearch(
   GetLineRangeFunction getLineRange,
   FindEntryFunction findEntry,
   ParsedSearchString parsedSearchString) {
   _findEntry = findEntry;
   _parsedSearchString = parsedSearchString;
   _getLineExtentCache = new GetLineExtentCache(getLineRange);
 }
Пример #3
0
 public TextSourceTextSearch(
     GetLineRangeFunction getLineRange,
     FindEntryFunction findEntry,
     ParsedSearchString parsedSearchString)
 {
     _findEntry          = findEntry;
     _parsedSearchString = parsedSearchString;
     _getLineExtentCache = new GetLineExtentCache(getLineRange);
 }
Пример #4
0
 public GetLineExtentCache(GetLineRangeFunction getLineRange)
 {
     _getLineRange = getLineRange;
 }
Пример #5
0
 public GetLineExtentCache(GetLineRangeFunction getLineRange) {
   _getLineRange = getLineRange;
 }