Represents a location within a document. It is intended to abstract away implementation details of the document and enable specification of positions within the document that are capable of tracking of change as the document is edited.
A Position
object points at a location between two characters. As the surrounding content is altered, the Position
object adjusts its offset automatically to reflect the changes. If content is inserted or removed before the Position
object's location, then the Position
increments or decrements its offset, respectively, so as to point to the same location. If a portion of the document is removed that contains a Position
's offset, then the Position
's offset becomes that of the beginning of the removed region. For example, if a Position
has an offset of 5 and the region 2-10 is removed, then the Position
's offset becomes 2.
Position
with an offset of 0 is a special case. It never changes its offset while document content is altered.