pub struct DynamicLang { /* private fields */ }
Expand description
Represents a tree-sitter language loaded as dynamic lib.
Implementations§
Source§impl DynamicLang
impl DynamicLang
Source§impl DynamicLang
impl DynamicLang
Trait Implementations§
Source§impl Clone for DynamicLang
impl Clone for DynamicLang
Source§fn clone(&self) -> DynamicLang
fn clone(&self) -> DynamicLang
Returns a duplicate 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<'de> Deserialize<'de> for DynamicLang
impl<'de> Deserialize<'de> for DynamicLang
Source§fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>where
D: Deserializer<'de>,
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>where
D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Source§impl FromStr for DynamicLang
impl FromStr for DynamicLang
Source§impl Hash for DynamicLang
impl Hash for DynamicLang
Source§impl Language for DynamicLang
impl Language for DynamicLang
Source§fn pre_process_pattern<'q>(&self, query: &'q str) -> Cow<'q, str>
fn pre_process_pattern<'q>(&self, query: &'q str) -> Cow<'q, str>
normalize pattern code before matching e.g. remove expression_statement, or prefer parsing {} to object over block
Source§fn meta_var_char(&self) -> char
fn meta_var_char(&self) -> char
Configure meta variable special character By default $ is the metavar char, but in PHP it can be #
Source§fn expando_char(&self) -> char
fn expando_char(&self) -> char
Some language does not accept $ as the leading char for identifiers. We need to change $ to other char at run-time to make parser happy, thus the name expando. By default this is the same as meta_var char so replacement is done at runtime.
fn kind_to_id(&self, kind: &str) -> u16
fn field_to_id(&self, field: &str) -> Option<u16>
Source§fn from_path<P: AsRef<Path>>(path: P) -> Option<Self>
fn from_path<P: AsRef<Path>>(path: P) -> Option<Self>
Return the file language from path. Return None if the file type is not supported.
fn build_pattern( &self, builder: &PatternBuilder<'_>, ) -> Result<Pattern, PatternError>
Source§fn extract_meta_var(&self, source: &str) -> Option<MetaVariable>
fn extract_meta_var(&self, source: &str) -> Option<MetaVariable>
extract MetaVariable from a given source string
At runtime we need to use expand_char
Source§impl LanguageExt for DynamicLang
impl LanguageExt for DynamicLang
Source§fn get_ts_language(&self) -> TSLanguage
fn get_ts_language(&self) -> TSLanguage
tree sitter language to parse the source
Source§fn ast_grep<S>(&self, source: S) -> Root<StrDoc<Self>>
fn ast_grep<S>(&self, source: S) -> Root<StrDoc<Self>>
Create an
AstGrep
instance for the languagefn injectable_languages(&self) -> Option<&'static [&'static str]>
Source§fn extract_injections<L>(
&self,
_root: Node<'_, StrDoc<L>>,
) -> HashMap<String, Vec<Range>>where
L: LanguageExt,
fn extract_injections<L>(
&self,
_root: Node<'_, StrDoc<L>>,
) -> HashMap<String, Vec<Range>>where
L: LanguageExt,
get injected language regions in the root document. e.g. get JavaScripts in HTML
it will return a list of tuples of (language, regions).
The first item is the embedded region language, e.g. javascript
The second item is a list of regions in tree_sitter.
also see https://tree-sitter.github.io/tree-sitter/using-parsers#multi-language-documents
Source§impl PartialEq for DynamicLang
impl PartialEq for DynamicLang
Source§impl Serialize for DynamicLang
impl Serialize for DynamicLang
impl Copy for DynamicLang
impl Eq for DynamicLang
impl StructuralPartialEq for DynamicLang
Auto Trait Implementations§
impl Freeze for DynamicLang
impl RefUnwindSafe for DynamicLang
impl Send for DynamicLang
impl Sync for DynamicLang
impl Unpin for DynamicLang
impl UnwindSafe for DynamicLang
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