protected override void OnTextChanged(EventArgs e) { if (_highlighting) { return; } _highlightTimer.Change(Delay, int.MaxValue); HideAutoCompleteForm(); _visitor.Clear(); if (!string.IsNullOrEmpty(Text)) { var nodes = _parser.Parse(Text); _visitor.Visit(nodes); } base.OnTextChanged(e); if (!_isUndo) { _redoStack.Clear(); _undoList.Insert(0, _lastInfo); UpdateUndoLimit(); _lastInfo = UndoRedoInfo.Create(this); } if (CanAutoComplete(true)) { ShowAutoComplete(); } }
private void SuspendPainting() { if (_paintSuspended) { return; } _painSuspendedInfo = UndoRedoInfo.Create(this); SendMessage(Handle, WM_SETREDRAW, 0, IntPtr.Zero); _eventMask = SendMessage(Handle, EM_GETEVENTMASK, 0, IntPtr.Zero); _paintSuspended = true; }
public new void Redo() { if (!CanRedo) { return; } _isUndo = true; _undoList.Insert(0, UndoRedoInfo.Create(this)); UpdateUndoLimit(); UndoRedoInfo info = _redoStack.Pop(); info.Restore(this, true); _isUndo = false; }
public new void Undo() { if (!CanUndo) { return; } _isUndo = true; _redoStack.Push(UndoRedoInfo.Create(this)); UndoRedoInfo info = _undoList[0]; _undoList.RemoveAt(0); info.Restore(this, true); _lastInfo = info; _isUndo = false; }