A range of content in a Tree
A range is defined by two points: A start and end node, and text offsets into the line of those nodes. Ranges provides conversion functions to efficiently get line numbers and document text offsets from these base positions.
To create a new range use one of the Tree#createRange
methods.
Members
Methods
Testing
- isCollapsed() → Boolean
- isEqualToRange(range) → Boolean
Text
- location() → Number
- length() → Number
- textInRange() → String
Lines
Nodes
- nodesInRange() → Array.<Node>
- forEachNodeInRange(callback)
Creating Ranges
- rangeByCollapsing(toStart) → Range
- rangeByOffsetting(locationOffset, lengthOffset) → Range
- rangeByExtendingToWord() → Range
- rangeByExtendingToSentence() → Range
Member Details
-
startNode :module:ft/core/node.Node
-
Type:
-
startOffset :Number
-
Type:
- Number
-
endNode :module:ft/core/node.Node
-
Type:
-
endOffset :Number
-
Type:
- Number
Method Details
-
copy() → {module:ft/core/range.Range}
-
Return copy of this range.
Returns:
-
isCollapsed() → {Boolean}
-
Return true if this range has zero length.
Returns:
- Type
- Boolean
-
isEqualToRange(range) → {Boolean}
-
Return true if this range is equal to the range.
Parameters:
Name Type Description range
Range Returns:
- Type
- Boolean
-
location() → {Number}
-
Return the tree text offset location of this range.
Returns:
- Type
- Number
-
length() → {Number}
-
The number of characters covered by this range.
Returns:
- Type
- Number
-
textInRange() → {String}
-
Return text in this range.
Returns:
- Type
- String
-
startLine() → {Number}
-
Return starting line number of this range.
Returns:
- Type
- Number
-
startLineCh() → {LineChar}
-
Return starting LineChar of this range.
Returns:
- Type
- LineChar
-
endLine() → {Number}
-
Return ending line number of this range.
Returns:
- Type
- Number
-
endLineCh() → {LineChar}
-
Return ending LineChar of this range.
Returns:
- Type
- LineChar
-
nodesInRange() → {Array.<module:ft/core/node.Node>}
-
Return nodes in this range.
Returns:
- Type
- Array.<module:ft/core/node.Node>
-
forEachNodeInRange(callback)
-
Process each line in the range.
Parameters:
Name Type Description callback
forEachNodeInRangeCallback Callback to process each node in the set.
-
rangeByCollapsing(toStart) → {module:ft/core/range.Range}
-
Return a new range resulting from offsetting this range.
Parameters:
Name Type Argument Default Description toStart
Boolean <optional>
false Collapse to start or end.
Returns:
-
rangeByOffsetting(locationOffset, lengthOffset) → {module:ft/core/range.Range}
-
Return a new range resulting from offsetting this range.
Parameters:
Name Type Description locationOffset
Number Offset start location by this amount.
lengthOffset
Number Offset length by this amount.
Returns:
-
rangeByExtendingToWord() → {module:ft/core/range.Range}
-
Return a new range resulting from extending this range to word boundaries.
Returns:
-
rangeByExtendingToSentence() → {module:ft/core/range.Range}
-
Return a new range resulting from extending this range to sentence boundaries.
Returns: