Struct ast_grep_core::Node
source · pub struct Node<'r, D: Doc> { /* private fields */ }
Expand description
’r represents root lifetime
Implementations§
source§impl<'r, D: Doc> Node<'r, D>
impl<'r, D: Doc> Node<'r, D>
APIs for Node inspection
pub fn node_id(&self) -> usize
pub fn is_leaf(&self) -> bool
sourcepub fn is_named_leaf(&self) -> bool
pub fn is_named_leaf(&self) -> bool
if has no named children. N.B. it is different from is_named && is_leaf
pub fn is_error(&self) -> bool
pub fn kind(&self) -> Cow<'_, str>
pub fn kind_id(&self) -> u16
pub fn is_named(&self) -> bool
sourcepub fn get_ts_node(&self) -> Node<'r>
pub fn get_ts_node(&self) -> Node<'r>
the underlying tree-sitter Node
sourcepub fn start_pos(&self) -> (usize, usize)
pub fn start_pos(&self) -> (usize, usize)
Nodes’ start position in terms of zero-based rows and columns.
pub fn text(&self) -> Cow<'r, str>
pub fn lang(&self) -> &'r D::Lang
source§impl<'r, D: Doc> Node<'r, D>
impl<'r, D: Doc> Node<'r, D>
Corresponds to inside/has/precedes/follows
pub fn matches<M: Matcher<D::Lang>>(&self, m: M) -> bool
pub fn inside<M: Matcher<D::Lang>>(&self, m: M) -> bool
pub fn has<M: Matcher<D::Lang>>(&self, m: M) -> bool
pub fn precedes<M: Matcher<D::Lang>>(&self, m: M) -> bool
pub fn follows<M: Matcher<D::Lang>>(&self, m: M) -> bool
source§impl<'r, D: Doc> Node<'r, D>
impl<'r, D: Doc> Node<'r, D>
tree traversal API
pub fn parent(&self) -> Option<Self>
pub fn children<'s>(&'s self) -> impl ExactSizeIterator<Item = Node<'r, D>> + 's
pub fn child(&self, nth: usize) -> Option<Self>
pub fn field(&self, name: &str) -> Option<Self>
pub fn child_by_field_id(&self, field_id: u16) -> Option<Self>
pub fn field_children(&self, name: &str) -> impl Iterator<Item = Node<'r, D>>
sourcepub fn ancestors(&self) -> impl Iterator<Item = Node<'r, D>> + '_
pub fn ancestors(&self) -> impl Iterator<Item = Node<'r, D>> + '_
Returns all ancestors nodes of self
.
Note: each invocation of the returned iterator is O(n)
Using cursor is overkill here because adjust cursor is too expensive.
pub fn next(&self) -> Option<Self>
sourcepub fn next_all(&self) -> impl Iterator<Item = Node<'r, D>> + '_
pub fn next_all(&self) -> impl Iterator<Item = Node<'r, D>> + '_
Returns all sibling nodes next to self
.
pub fn prev(&self) -> Option<Node<'r, D>>
pub fn prev_all(&self) -> impl Iterator<Item = Node<'r, D>> + '_
pub fn dfs<'s>(&'s self) -> Pre<'r, D> ⓘ
pub fn find<M: Matcher<D::Lang>>(&self, pat: M) -> Option<NodeMatch<'r, D>>
pub fn find_all<M: Matcher<D::Lang>>( &self, pat: M ) -> impl Iterator<Item = NodeMatch<'r, D>>
source§impl<'r, D: Doc> Node<'r, D>
impl<'r, D: Doc> Node<'r, D>
Tree manipulation API
pub fn replace<M: Matcher<D::Lang>, R: Replacer<D>>( &self, matcher: M, replacer: R ) -> Option<Edit<<D as Doc>::Source>>
pub fn replace_all<M: Matcher<D::Lang>, R: Replacer<D>>( &self, matcher: M, replacer: R ) -> Vec<Edit<<D as Doc>::Source>>
pub fn after(&self) -> Edit<<D as Doc>::Source>
pub fn before(&self) -> Edit<<D as Doc>::Source>
pub fn append(&self) -> Edit<<D as Doc>::Source>
pub fn prepend(&self) -> Edit<<D as Doc>::Source>
Trait Implementations§
source§impl<'tree, D: Doc> Borrow<Node<'tree, D>> for NodeMatch<'tree, D>
impl<'tree, D: Doc> Borrow<Node<'tree, D>> for NodeMatch<'tree, D>
NodeMatch is an immutable view to Node
Auto Trait Implementations§
impl<'r, D> Freeze for Node<'r, D>
impl<'r, D> RefUnwindSafe for Node<'r, D>where
D: RefUnwindSafe,
impl<'r, D> Send for Node<'r, D>where
D: Sync,
impl<'r, D> Sync for Node<'r, D>where
D: Sync,
impl<'r, D> Unpin for Node<'r, D>
impl<'r, D> UnwindSafe for Node<'r, D>where
D: RefUnwindSafe,
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more