C# Class AvalonStudio.TextEditor.Document.TextSegment

A segment that can be put into a TextSegmentCollection{T}.

A TextSegment can be stand-alone or part of a TextSegmentCollection{T}. If the segment is stored inside a TextSegmentCollection, its Offset and Length will be updated by that collection.

When the document changes, the offsets of all text segments in the TextSegmentCollection will be adjusted accordingly. Start offsets move like AnchorMovementType.AfterInsertion, end offsets move like AnchorMovementType.BeforeInsertion (i.e. the segment will always stay as small as possible).

If a document change causes a segment to be deleted completely, it will be reduced to length 0, but segments are never automatically removed from the collection. Segments with length 0 will never expand due to document changes, and they move as AfterInsertion.

Thread-safety: a TextSegmentCollection that is connected to a TextDocument may only be used on that document's owner thread. A disconnected TextSegmentCollection is safe for concurrent reads, but concurrent access is not safe when there are writes. Keep in mind that reading the Offset properties of a text segment inside the collection is a read access on the collection; and setting an Offset property of a text segment is a write access on the collection.

Inheritance: ISegment
Show file Open project: VitalElement/AvalonStudio Class Usage Examples

Private Properties

Property Type Description
ToDebugString string

Public Methods

Method Description
ToString ( ) : string

Protected Methods

Method Description
OnSegmentChanged ( ) : void

This method gets called when the StartOffset/Length/EndOffset properties are set. It is not called when StartOffset/Length/EndOffset change due to document changes

Private Methods

Method Description
ToDebugString ( ) : string

Method Details

OnSegmentChanged() protected method

This method gets called when the StartOffset/Length/EndOffset properties are set. It is not called when StartOffset/Length/EndOffset change due to document changes
protected OnSegmentChanged ( ) : void
return void

ToString() public method

public ToString ( ) : string
return string