private void ProcessFoundOccurrence(SnapshotSpan occurrence) { if (!Selections.Any(s => s.OverlapsWith(occurrence, Snapshot))) { var start = Snapshot.CreateTrackingPoint(occurrence.Start, PointTrackingMode.Positive); var end = Snapshot.CreateTrackingPoint(occurrence.End, PointTrackingMode.Positive); // If previous selection was reversed, set this caret to beginning of this selection var caret = Selections.Last().Caret.GetPosition(Snapshot) == Selections.Last().Start.GetPosition(Snapshot) ? start : end; Selections.Add( new Selection { Start = start, End = end, Caret = caret } ); outliningManager.ExpandAll(occurrence, r => r.IsCollapsed); view.Caret.MoveTo(caret == start ? occurrence.Start : occurrence.End); view.ViewScroller.EnsureSpanVisible( new SnapshotSpan( view.Caret.Position.BufferPosition, 0 ) ); } }
private void ExpandAll() { ITextSnapshot snapshot = _textView.TextBuffer.CurrentSnapshot; SnapshotSpan snapshotSpan = new SnapshotSpan(snapshot, 0, snapshot.Length); OutliningManager.ExpandAll(snapshotSpan, (collapsible => true)); }
private void ProcessFoundOccurrence(SnapshotSpan occurrence) { if (!Selections.Any(s => s.OverlapsWith(occurrence, Snapshot))) { var start = Snapshot.CreateTrackingPoint(occurrence.Start); var end = Snapshot.CreateTrackingPoint(occurrence.End); var caret = Selections.Last().IsReversed(Snapshot) ? start : end; Selections.Add( new Selection { Start = start, End = end, Caret = caret, ColumnPosition = Snapshot.GetLineColumnFromPosition(caret.GetPoint(Snapshot)) } ); outliningManager.ExpandAll(occurrence, r => r.IsCollapsed); view.Caret.MoveTo(caret == start ? occurrence.Start : occurrence.End); view.ViewScroller.EnsureSpanVisible( new SnapshotSpan(view.Caret.Position.BufferPosition, 0) ); } }
private void OutliningManagerOnRegionsChanged(object sender, RegionsChangedEventArgs args) { outliningManager.RegionsChanged -= OutliningManagerOnRegionsChanged; var currentSnapshot = textView.TextBuffer.CurrentSnapshot; var span = new SnapshotSpan(currentSnapshot, 0, currentSnapshot.Length); if (settings.BehaviorMode == BehaviorMode.ExpandAll || settings.BehaviorMode == BehaviorMode.PreventCollapse) { outliningManager.ExpandAll(span, c => c.IsCollapsed && IsRegion(c)); } else if (settings.BehaviorMode == BehaviorMode.CollapseAll) { outliningManager.CollapseAll(span, c => !c.IsCollapsed && IsRegion(c)); } }