pub struct KindMatcher<L: Language> { /* private fields */ }
Implementations§
Source§impl<L: Language> KindMatcher<L>
impl<L: Language> KindMatcher<L>
pub fn new(node_kind: &str, lang: L) -> Self
pub fn try_new(node_kind: &str, lang: L) -> Result<Self, KindMatcherError>
pub fn from_id(kind: u16) -> Self
Sourcepub fn is_invalid(&self) -> bool
pub fn is_invalid(&self) -> bool
Whether the kind matcher contains undefined tree-sitter kind.
Sourcepub fn is_error_matcher(&self) -> bool
pub fn is_error_matcher(&self) -> bool
Whether the kind will match parsing error occurred in the source code.
for example, we can use kind: ERROR
in YAML to find invalid syntax in source.
the name is_error
implies the matcher itself is error.
But here the matcher itself is valid and it is what it matches is error.
Sourcepub fn error_matcher() -> Self
pub fn error_matcher() -> Self
Construct a matcher that only matches ERROR
Trait Implementations§
Source§impl<L: Clone + Language> Clone for KindMatcher<L>
impl<L: Clone + Language> Clone for KindMatcher<L>
Source§fn clone(&self) -> KindMatcher<L>
fn clone(&self) -> KindMatcher<L>
Returns a copy of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moreSource§impl<L: Language> Matcher<L> for KindMatcher<L>
impl<L: Language> Matcher<L> for KindMatcher<L>
Source§fn match_node_with_env<'tree, D: Doc<Lang = L>>(
&self,
node: Node<'tree, D>,
_env: &mut Cow<'_, MetaVarEnv<'tree, D>>,
) -> Option<Node<'tree, D>>
fn match_node_with_env<'tree, D: Doc<Lang = L>>( &self, node: Node<'tree, D>, _env: &mut Cow<'_, MetaVarEnv<'tree, D>>, ) -> Option<Node<'tree, D>>
Returns the node why the input is matched or None if not matched.
The return value is usually input node itself, but it can be different node.
For example
Has
matcher can return the child or descendant node.Source§fn potential_kinds(&self) -> Option<BitSet>
fn potential_kinds(&self) -> Option<BitSet>
Returns a bitset for all possible target node kind ids.
Returns None if the matcher needs to try against all node kind.
Source§fn get_match_len<D: Doc<Lang = L>>(&self, _node: Node<'_, D>) -> Option<usize>
fn get_match_len<D: Doc<Lang = L>>(&self, _node: Node<'_, D>) -> Option<usize>
get_match_len will skip trailing anonymous child node to exclude punctuation.
fn match_node<'tree, D: Doc<Lang = L>>( &self, node: Node<'tree, D>, ) -> Option<NodeMatch<'tree, D>>
fn find_node<'tree, D: Doc<Lang = L>>( &self, node: Node<'tree, D>, ) -> Option<NodeMatch<'tree, D>>
Auto Trait Implementations§
impl<L> Freeze for KindMatcher<L>
impl<L> RefUnwindSafe for KindMatcher<L>where
L: RefUnwindSafe,
impl<L> Send for KindMatcher<L>where
L: Send,
impl<L> Sync for KindMatcher<L>where
L: Sync,
impl<L> Unpin for KindMatcher<L>where
L: Unpin,
impl<L> UnwindSafe for KindMatcher<L>where
L: UnwindSafe,
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
🔬This is a nightly-only experimental API. (
clone_to_uninit
)