void DoSearch(bool changeSelection) { renderer.CurrentResults.Clear(); currentResult = null; if (!string.IsNullOrEmpty(SearchPattern)) { int offset = textArea.Caret.Offset; if (changeSelection) { textArea.Selection = SimpleSelection.Empty; } foreach (SearchResult result in strategy.FindAll(textArea.Document, 0, textArea.Document.TextLength)) { if (currentResult == null && result.StartOffset >= offset) { currentResult = result; if (changeSelection) { SetResult(result); } } renderer.CurrentResults.Add(result); } if (!renderer.CurrentResults.Any()) { messageView.IsOpen = true; messageView.Content = Localization.NoMatchesFoundText; messageView.PlacementTarget = searchTextBox; } else messageView.IsOpen = false; } textArea.TextView.InvalidateLayer(KnownLayer.Selection); }
void SetResult(SearchResult result) { textArea.Caret.Offset = currentResult.StartOffset; textArea.Selection = new SimpleSelection(currentResult.StartOffset, currentResult.EndOffset); var foldingManager = textArea.GetService(typeof(FoldingManager)) as FoldingManager; if (foldingManager != null) { foreach (var folding in foldingManager.GetFoldingsContaining(result.StartOffset)) folding.IsFolded = false; } textArea.Caret.BringCaretToView(); // show caret even if the editor does not have the Keyboard Focus textArea.Caret.Show(); }
void SelectResult(SearchResult result) { textArea.Caret.Offset = result.StartOffset; textArea.Selection = Selection.Create(textArea, result.StartOffset, result.EndOffset); textArea.Caret.BringCaretToView(); // show caret even if the editor does not have the Keyboard Focus textArea.Caret.Show(); }
/// <summary> /// Moves to the previous occurrence in the file. /// </summary> public void FindPrevious() { SearchResult result = renderer.CurrentResults.FindFirstSegmentWithStartAfter(textArea.Caret.Offset); if (result != null) result = renderer.CurrentResults.GetPreviousSegment(result); if (result == null) result = renderer.CurrentResults.LastSegment; if (result != null) { currentResult = result; SetResult(result); } }
void SetResult(SearchResult result) { textArea.Caret.Offset = currentResult.StartOffset; textArea.Selection = new SimpleSelection(currentResult.StartOffset, currentResult.EndOffset); if (foldingManager != null) { foreach (var folding in foldingManager.GetFoldingsContaining(result.StartOffset)) folding.IsFolded = false; } textArea.Caret.BringCaretToView(); }
void DoSearch(bool changeSelection) { renderer.CurrentResults.Clear(); currentResult = null; if (!string.IsNullOrEmpty(SearchPattern)) { int offset = textArea.Caret.Offset; if (changeSelection) { textArea.Selection = SimpleSelection.Empty; } foreach (SearchResult result in strategy.FindAll(textArea.Document)) { if (currentResult == null && result.StartOffset >= offset) { currentResult = result; if (changeSelection) { SetResult(result); } } renderer.CurrentResults.Add(result); } } textArea.TextView.InvalidateLayer(KnownLayer.Selection); }
/// <summary> /// Moves to the previous occurrence in the file. /// </summary> public void FindPrevious() { SearchResult result = null; if (currentResult != null) result = renderer.CurrentResults.GetPreviousSegment(currentResult); if (result == null) result = renderer.CurrentResults.LastSegment; if (result != null) { currentResult = result; SetResult(result); } }
/// <summary> /// Moves to the next occurrence in the file. /// </summary> public void FindNext() { SearchResult result = null; if (currentResult != null) result = renderer.CurrentResults.GetNextSegment(currentResult); if (result == null) result = renderer.CurrentResults.FirstSegment; if (result != null) { currentResult = result; SetResult(result); } }
public void SelectResult(SearchResult result) { _textEditor.TextArea.Caret.PositionChanged -= _caret_PositionChanged; _textArea.Caret.Offset = result.StartOffset; _textArea.Selection = Selection.Create(_textArea, result.StartOffset, result.EndOffset); _textArea.Caret.BringCaretToView(); _textEditor.TextArea.Caret.PositionChanged += _caret_PositionChanged; }