Skip to main content

SupportLang

Enum SupportLang 

Source
pub enum SupportLang {
Show 26 variants Bash, C, Cpp, CSharp, Css, Elixir, Go, Haskell, Hcl, Html, Java, JavaScript, Json, Kotlin, Lua, Nix, Php, Python, Ruby, Rust, Scala, Solidity, Swift, Tsx, TypeScript, Yaml,
}
Expand description

Runtime language selection enum supporting all built-in languages.

Provides a unified interface for working with any supported language at runtime. Each variant corresponds to a specific programming language implementation.

§Language Detection

use thread_language::SupportLang;
use std::path::Path;

// Detect from file extension
let lang = SupportLang::from_path("main.rs").unwrap();
assert_eq!(lang, SupportLang::Rust);

// Parse from string
let lang: SupportLang = "javascript".parse().unwrap();
assert_eq!(lang, SupportLang::JavaScript);

§Usage with AST Analysis

use thread_language::SupportLang;
use thread_ast_engine::{Language, LanguageExt};

let lang = SupportLang::Rust;
let tree = lang.ast_grep("fn main() {}");
let pattern = lang.build_pattern(&pattern_builder).unwrap();

Variants§

§

Bash

§

C

§

Cpp

§

CSharp

§

Css

§

Elixir

§

Go

§

Haskell

§

Hcl

§

Html

§

Java

§

JavaScript

§

Json

§

Kotlin

§

Lua

§

Nix

§

Php

§

Python

§

Ruby

§

Rust

§

Scala

§

Solidity

§

Swift

§

Tsx

§

TypeScript

§

Yaml

Implementations§

Source§

impl SupportLang

Source

pub const fn all_langs() -> &'static [SupportLang]

Source

pub fn file_types(&self) -> Types

Trait Implementations§

Source§

impl Clone for SupportLang

Source§

fn clone(&self) -> SupportLang

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Copy for SupportLang

Source§

impl Debug for SupportLang

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<'de> Deserialize<'de> for SupportLang

Available on crate features all-parsers or bash or c or cpp or csharp or css-napi or css or elixir or go or haskell or hcl or html-napi or html or java or javascript-napi or javascript or json or kotlin or lua or napi-compatible or nix or php or python or ruby or rust or scala or solidity or swift or tsx-napi or tsx or typescript-napi or typescript or yaml only.
Source§

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 Display for SupportLang

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Eq for SupportLang

Source§

impl From<Bash> for SupportLang

Source§

fn from(_: Bash) -> Self

Converts to this type from the input type.
Source§

impl From<C> for SupportLang

Source§

fn from(_: C) -> Self

Converts to this type from the input type.
Source§

impl From<CSharp> for SupportLang

Source§

fn from(_: CSharp) -> Self

Converts to this type from the input type.
Source§

impl From<Cpp> for SupportLang

Source§

fn from(_: Cpp) -> Self

Converts to this type from the input type.
Source§

impl From<Css> for SupportLang

Source§

fn from(_: Css) -> Self

Converts to this type from the input type.
Source§

impl From<Elixir> for SupportLang

Source§

fn from(_: Elixir) -> Self

Converts to this type from the input type.
Source§

impl From<Go> for SupportLang

Source§

fn from(_: Go) -> Self

Converts to this type from the input type.
Source§

impl From<Haskell> for SupportLang

Source§

fn from(_: Haskell) -> Self

Converts to this type from the input type.
Source§

impl From<Hcl> for SupportLang

Source§

fn from(_: Hcl) -> Self

Converts to this type from the input type.
Source§

impl From<Html> for SupportLang

Source§

fn from(_: Html) -> Self

Converts to this type from the input type.
Source§

impl From<Java> for SupportLang

Source§

fn from(_: Java) -> Self

Converts to this type from the input type.
Source§

impl From<JavaScript> for SupportLang

Source§

fn from(_: JavaScript) -> Self

Converts to this type from the input type.
Source§

impl From<Json> for SupportLang

Source§

fn from(_: Json) -> Self

Converts to this type from the input type.
Source§

impl From<Kotlin> for SupportLang

Source§

fn from(_: Kotlin) -> Self

Converts to this type from the input type.
Source§

impl From<Lua> for SupportLang

Source§

fn from(_: Lua) -> Self

Converts to this type from the input type.
Source§

impl From<Nix> for SupportLang

Source§

fn from(_: Nix) -> Self

Converts to this type from the input type.
Source§

impl From<Php> for SupportLang

Source§

fn from(_: Php) -> Self

Converts to this type from the input type.
Source§

impl From<Python> for SupportLang

Source§

fn from(_: Python) -> Self

Converts to this type from the input type.
Source§

impl From<Ruby> for SupportLang

Source§

fn from(_: Ruby) -> Self

Converts to this type from the input type.
Source§

impl From<Rust> for SupportLang

Source§

fn from(_: Rust) -> Self

Converts to this type from the input type.
Source§

impl From<Scala> for SupportLang

Source§

fn from(_: Scala) -> Self

Converts to this type from the input type.
Source§

impl From<Solidity> for SupportLang

Source§

fn from(_: Solidity) -> Self

Converts to this type from the input type.
Source§

impl From<Swift> for SupportLang

Source§

fn from(_: Swift) -> Self

Converts to this type from the input type.
Source§

impl From<Tsx> for SupportLang

Source§

fn from(_: Tsx) -> Self

Converts to this type from the input type.
Source§

impl From<TypeScript> for SupportLang

Source§

fn from(_: TypeScript) -> Self

Converts to this type from the input type.
Source§

impl From<Yaml> for SupportLang

Source§

fn from(_: Yaml) -> Self

Converts to this type from the input type.
Source§

impl FromStr for SupportLang

Implements the language names and aliases.

Source§

type Err = SupportLangErr

The associated error which can be returned from parsing.
Source§

fn from_str(s: &str) -> Result<Self, Self::Err>

Parses a string s to return a value of this type. Read more
Source§

impl Hash for SupportLang

Source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · Source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
Source§

impl Language for SupportLang

Available on crate feature matching and (crate features all-parsers or bash or c or cpp or csharp or css or elixir or go or haskell or hcl or html or java or javascript or json or kotlin or lua or napi-compatible or napi-environment or nix or php or python or ruby or rust or scala or solidity or swift or tsx or typescript or yaml) only.
Source§

fn kind_to_id(&self, kind: &str) -> u16

Source§

fn field_to_id(&self, field: &str) -> Option<u16>

Source§

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

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.
Source§

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§

fn build_pattern( &self, builder: &PatternBuilder<'_>, ) -> Result<Pattern, PatternError>

Source§

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 from_path<P: AsRef<Path>>(path: P) -> Option<Self>

Return the file language from path. Return None if the file type is not supported.
Source§

impl LanguageExt for SupportLang

Available on crate feature matching and (crate features all-parsers or bash or c or cpp or csharp or css-napi or css or elixir or go or haskell or hcl or html-napi or html or java or javascript-napi or javascript or json or kotlin or lua or napi-compatible or nix or php or python or ruby or rust or scala or solidity or swift or tsx-napi or tsx or typescript-napi or typescript or yaml) only.
Source§

fn get_ts_language(&self) -> TSLanguage

Get the tree-sitter language object for parsing. Read more
Source§

fn injectable_languages(&self) -> Option<&'static [&'static str]>

List of languages that can be injected into this language. Read more
Source§

fn extract_injections<L: LanguageExt>( &self, _root: Node<'_, StrDoc<L>>, ) -> RapidMap<String, Vec<TSRange>>

Extract language injection regions from a parsed document. Read more
Source§

fn ast_grep<S>(&self, source: S) -> Root<StrDoc<Self>>
where S: AsRef<str>,

Create an AstGrep instance for parsing and pattern matching. Read more
Source§

impl PartialEq for SupportLang

Source§

fn eq(&self, other: &SupportLang) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Serialize for SupportLang

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
Source§

impl StructuralPartialEq for SupportLang

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T> ToString for T
where T: Display + ?Sized,

Source§

fn to_string(&self) -> String

Converts the given value to a String. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.