pub trait LangImpl: Send + Sync {
Show 22 methods
// Required methods
fn name(&self) -> &str;
fn parse(&self, source: &str) -> Tree;
fn resolve_named_node(&self, kind: &str) -> Option<NodeTypeId>;
fn resolve_anonymous_node(&self, kind: &str) -> Option<NodeTypeId>;
fn resolve_field(&self, name: &str) -> Option<NodeFieldId>;
fn all_named_node_kinds(&self) -> Vec<&'static str>;
fn all_field_names(&self) -> Vec<&'static str>;
fn node_type_name(&self, node_type_id: NodeTypeId) -> Option<&'static str>;
fn field_name(&self, field_id: NodeFieldId) -> Option<&'static str>;
fn fields_for_node_type(
&self,
node_type_id: NodeTypeId,
) -> Vec<&'static str>;
fn is_supertype(&self, node_type_id: NodeTypeId) -> bool;
fn subtypes(&self, supertype: NodeTypeId) -> &[u16];
fn root(&self) -> Option<NodeTypeId>;
fn is_extra(&self, node_type_id: NodeTypeId) -> bool;
fn has_field(
&self,
node_type_id: NodeTypeId,
node_field_id: NodeFieldId,
) -> bool;
fn field_cardinality(
&self,
node_type_id: NodeTypeId,
node_field_id: NodeFieldId,
) -> Option<Cardinality>;
fn valid_field_types(
&self,
node_type_id: NodeTypeId,
node_field_id: NodeFieldId,
) -> &[NodeTypeId] ⓘ;
fn is_valid_field_type(
&self,
node_type_id: NodeTypeId,
node_field_id: NodeFieldId,
child: NodeTypeId,
) -> bool;
fn children_cardinality(
&self,
node_type_id: NodeTypeId,
) -> Option<Cardinality>;
fn valid_child_types(&self, node_type_id: NodeTypeId) -> &[NodeTypeId] ⓘ;
fn is_valid_child_type(
&self,
node_type_id: NodeTypeId,
child: NodeTypeId,
) -> bool;
fn grammar(&self) -> &Grammar;
}Expand description
Trait providing a unified facade for tree-sitter’s Language API combined with our node type constraints.