private void OnDocumentChanged(TextDocument document, DocumentUpdateEventArgs e) { foreach (DocumentUpdate update in e.Updates) { if (update.LineNumberNeedUpdate > 0) { VisualLine lineNeedUpdate = _allVisualLines[update.LineNumberNeedUpdate - 1]; lineNeedUpdate.Rebuild(); } if (update.RemovedStartLineNumber > 0) { for (int i = update.RemovedStartLineNumber - 1; i < update.RemovedStartLineNumber + update.RemovedLineCount - 1; i++) { _allVisualLines[i].Dispose(); } _allVisualLines.RemoveRange(update.RemovedStartLineNumber - 1, update.RemovedLineCount); } if (update.NewStartLineNumber > 0) { var newLines = new List <VisualLine>(); for (int i = update.NewStartLineNumber; i < update.NewStartLineNumber + update.NewLineCount; i++) { VisualLine newLine = new VisualLine(this, Document, Document.GetLineByNumber(i)); newLines.Add(newLine); } _allVisualLines.InsertRange(update.NewStartLineNumber - 1, newLines); } } Redraw(); }
private void OnDocumentContentChanged(object sender, DocumentUpdateEventArgs e) { if (CodeCompletionWindow == null) { return; } if (CodeCompletionWindow.IsVisible && _needDoFilter) { String filterText = editview.Document.GetTextAt(CodeCompletionWindow.StartOffset, CodeCompletionWindow.EndOffset - CodeCompletionWindow.StartOffset); CodeCompletionWindow.Filter(filterText); _needDoFilter = false; } }
void Document_Update(object sender, DocumentUpdateEventArgs e) { this.it = null; }