public void PreBackspace(out bool handledCommand) { bool handled = false; Debug.Assert(_postSession == null, "_postSession should have been cleared"); if (_stack.TopSession != null && !HasSelection) { IBraceCompletionSession session = _stack.TopSession; _guardedOperations.CallExtensionPoint(() => { if (session.OpeningPoint != null && session.ClosingPoint != null) { session.PreBackspace(out handled); if (!handled) { _postSession = session; } } }); } handledCommand = handled; }
internal void CheckBackspace(IBraceCompletionSession session) { session.TextView.TryMoveCaretToAndEnsureVisible(session.OpeningPoint.GetPoint(session.SubjectBuffer.CurrentSnapshot).Add(1)); bool handled; session.PreBackspace(out handled); if (!handled) { session.PostBackspace(); } Assert.Null(session.OpeningPoint); Assert.Null(session.ClosingPoint); }