Struct tree_sitter_md::MarkdownCursor
source · pub struct MarkdownCursor<'a> { /* private fields */ }
Expand description
A stateful object for walking a MarkdownTree
efficiently.
This exposes the same methdos as TreeCursor
, but abstracts away the
double block / inline structure of MarkdownTree
.
Implementations§
source§impl<'a> MarkdownCursor<'a>
impl<'a> MarkdownCursor<'a>
sourcepub fn is_inline(&self) -> bool
pub fn is_inline(&self) -> bool
Returns true
if the current node is from the (inline language)INLINE_LANGUAGE
This information is needed to handle “tree-sitter internal” data like
field_id
correctly.
sourcepub fn field_id(&self) -> Option<NonZeroU16>
pub fn field_id(&self) -> Option<NonZeroU16>
Get the numerical field id of this tree cursor’s current node.
You will need to call is_inline
to find out if the
current node is an inline or block node.
See also field_name
.
sourcepub fn field_name(&self) -> Option<&'static str>
pub fn field_name(&self) -> Option<&'static str>
Get the field name of this tree cursor’s current node.
You will need to call is_inline
to find out if the
current node is an inline or block node.
sourcepub fn goto_first_child(&mut self) -> bool
pub fn goto_first_child(&mut self) -> bool
Move this cursor to the first child of its current node.
This returns true
if the cursor successfully moved, and returns false
if there were no
children.
If the cursor is currently at a node in the block tree and it has an associated inline tree, it
will descend into the inline tree.
sourcepub fn goto_parent(&mut self) -> bool
pub fn goto_parent(&mut self) -> bool
Move this cursor to the parent of its current node.
This returns true if the cursor successfully moved, and returns false if there was no parent node (the cursor was already on the root node). If the cursor moves to the root node of an inline tree, the it ascents to the associated node in the block tree.
sourcepub fn goto_next_sibling(&mut self) -> bool
pub fn goto_next_sibling(&mut self) -> bool
Move this cursor to the next sibling of its current node.
This returns true if the cursor successfully moved, and returns false if there was no next sibling node.
sourcepub fn goto_first_child_for_byte(&mut self, index: usize) -> Option<usize>
pub fn goto_first_child_for_byte(&mut self, index: usize) -> Option<usize>
Move this cursor to the first child of its current node that extends beyond the given byte offset.
This returns the index of the child node if one was found, and returns None if no such child was found. If the cursor is currently at a node in the block tree and it has an associated inline tree, it will descend into the inline tree.
sourcepub fn goto_first_child_for_point(&mut self, index: Point) -> Option<usize>
pub fn goto_first_child_for_point(&mut self, index: Point) -> Option<usize>
Move this cursor to the first child of its current node that extends beyond the given point.
This returns the index of the child node if one was found, and returns None if no such child was found. If the cursor is currently at a node in the block tree and it has an associated inline tree, it will descend into the inline tree.