示例#1
0
 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();
 }
示例#2
0
 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;
     }
 }
示例#3
0
 void Document_Update(object sender, DocumentUpdateEventArgs e)
 {
     this.it = null;
 }