Example #1
0
        private List<SearchResult> GetSearchResults(SearchQuery query, int offset, int length)
        {
            if (length == 0 || AvalonEditDocument.TextLength == 0)
                return null;

            // Use regular expression.
            var regex = query.AsRegex();
            if (regex == null)
                return null;

            // Match regular expression.
            var matches = regex.Matches(AvalonEditDocument.Text);

            // Return the search results within the specified text segment.
            var searchResults = new List<SearchResult>(matches.Count);
            int endOffset = offset + length;
            foreach (Match match in matches)
            {
                if (offset <= match.Index && match.Index + match.Length <= endOffset)
                    searchResults.Add(new SearchResult(this, match));
            }

            return searchResults;
        }