AvalonEdit
ILineTracker Interface
NamespacesICSharpCode.AvalonEdit.DocumentILineTracker
Allows for low-level line tracking.
Declaration Syntax
C#Visual BasicVisual C++
public interface ILineTracker
Public Interface ILineTracker
public interface class ILineTracker
Members
All MembersMethods



IconMemberDescription
BeforeRemoveLine(DocumentLine)
Is called immediately before a document line is removed.

ChangeComplete(DocumentChangeEventArgs)
Notifies the line tracker that a document change (a single change, not a change group) has completed. This method gets called after the change has been performed, but before the Changed event is raised.

LineInserted(DocumentLine, DocumentLine)
Is called immediately after a line was inserted.

RebuildDocument()()()()
Indicates that there were changes to the document that the line tracker was not notified of. The document is in a consistent state (but the line trackers aren't), and line trackers should throw away their data and rebuild the document.

SetLineLength(DocumentLine, Int32)
Is called immediately before a document line changes length. This method will be called whenever the line is changed, even when the length stays as it is. The method might be called multiple times for a single line because a replacement is internally handled as removal followed by insertion.

Remarks
The methods on this interface are called by the TextDocument's LineManager immediately after the document has changed, *while* the DocumentLineTree is updating. Thus, the DocumentLineTree may be in an invalid state when these methods are called. This interface should only be used to update per-line data structures like the HeightTree. Line trackers must not cause any events to be raised during an update to prevent other code from seeing the invalid state. Line trackers may be called while the TextDocument has taken a lock. You must be careful not to dead-lock inside ILineTracker callbacks.

Assembly: ICSharpCode.AvalonEdit (Module: ICSharpCode.AvalonEdit.dll) Version: 5.0.0.4238