#[non_exhaustive]pub enum Lang {
Show 64 variants
Asm,
Bash,
Bibtex,
C,
CSharp,
Clojure,
Cmake,
Comment,
Cpp,
Css,
Dart,
Diff,
Dockerfile,
Ebnf,
Ejs,
Elixir,
Erb,
Fish,
Gleam,
Go,
Haskell,
Hexdump,
Html,
Java,
Javascript,
Jsdoc,
Json,
Json5,
Jsonc,
Julia,
Kotlin,
Lalrpop,
Latex,
Llvm,
Lua,
Luap,
Make,
Markdown,
MarkdownInline,
Nix,
Ocaml,
OcamlInterface,
Php,
PhpOnly,
Printf,
Python,
Ql,
Regex,
Ruby,
Rush,
Rust,
Scala,
Scss,
Sql,
Swift,
Toml,
Tsx,
Typescript,
Typst,
Ursa,
Verilog,
Wat,
Yaml,
Zig,
}Expand description
An enum of every supported language in the current feature set.
An instance of the respective tree-stter
Language can be obtained with the
get method.
You can also get a Lang from its name using
for_name, or for a
FileType using
for_file_type.
See the docs for each variant to see its “name” and the supported file types.
Both of these require the
SupportedLanguage trait to be
in scope.
See LANGUAGES for a list containing all variants and LANGUAGE_NAMES for a list
of all valid names.
The enum is marked as non-exhaustive for two reasons:
- New languages may be added in the future
- The variants are enabled/disabled by features
§Example
use syntastica_parsers_git::{Lang, LANGUAGES, LANGUAGE_NAMES};
use syntastica_core::language_set::{SupportedLanguage, FileType};
// you can get a `Lang` from its name
assert_eq!(Lang::Rust, Lang::for_name("rust", &()).unwrap());
// and for a file type
assert_eq!(Some(Lang::Rust), Lang::for_file_type(FileType::Rust, &()));
// `LANGUAGES` is a list of all variants,
// `LANGUAGE_NAMES` is a list of all variant names
for (&lang, &name) in LANGUAGES.iter().zip(LANGUAGE_NAMES) {
assert_eq!(lang, Lang::for_name(name, &()).unwrap());
// `Lang` instances can be turned into strings
assert_eq!(lang, Lang::for_name(<Lang as SupportedLanguage<'_, ()>>::name(&lang), &()).unwrap());
assert_eq!(lang, Lang::for_name(lang.to_string(), &()).unwrap());
assert_eq!(lang, Lang::for_name(lang.as_ref(), &()).unwrap());
let lang_name: &'static str = lang.into();
assert_eq!(lang, Lang::for_name(lang_name, &()).unwrap());
}Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
Asm
most or asm only.Bash
some or bash only.Bibtex
all or bibtex only.C
some or c only.CSharp
most or c_sharp only.Clojure
most or clojure only.Cmake
most or cmake only.Comment
most or comment only.Provides the comment language, supports no file types.
Cpp
some or cpp only.Css
some or css only.Dart
most or dart only.Diff
most or diff only.Dockerfile
all or dockerfile only.Provides the dockerfile language, supports these file types: dockerfile.
Ebnf
all or ebnf only.Ejs
all or ejs only.Provides the ejs language, supports these file types: ejavascript.
Elixir
most or elixir only.Erb
all or erb only.Fish
all or fish only.Gleam
all or gleam only.Go
some or go only.Haskell
most or haskell only.Hexdump
all or hexdump only.Html
some or html only.Java
some or java only.Javascript
some or javascript only.Provides the javascript language, supports these file types: javascript, jsx.
Jsdoc
most or jsdoc only.Provides the jsdoc language, supports no file types.
Json
some or json only.Json5
most or json5 only.Jsonc
most or jsonc only.Julia
all or julia only.Kotlin
some or kotlin only.Lalrpop
all or lalrpop only.Provides the lalrpop language, supports no file types.
Latex
all or latex only.Llvm
all or llvm) and non-target_family="wasm" only.Lua
some or lua only.Luap
most or luap only.Provides the luap language, supports no file types.
Make
most or make only.Markdown
most or markdown only.MarkdownInline
most or markdown_inline only.Provides the markdown_inline language, supports no file types.
Nix
most or nix only.Ocaml
all or ocaml only.OcamlInterface
all or ocaml_interface only.Provides the ocaml_interface language, supports these file types: ocamlinterface.
Php
most or php only.PhpOnly
most or php_only only.Provides the php_only language, supports no file types.
Printf
most or printf only.Provides the printf language, supports no file types.
Python
some or python only.Ql
all or ql only.Regex
most or regex only.Provides the regex language, supports no file types.
Ruby
most or ruby only.Rush
all or rush only.Rust
some or rust only.Scala
most or scala only.Scss
most or scss only.Sql
most or sql only.Swift
most or swift only.Toml
some or toml only.Tsx
some or tsx only.Typescript
some or typescript only.Provides the typescript language, supports these file types: typescript.
Typst
most or typst only.Ursa
all or ursa only.Verilog
all or verilog only.Wat
all or wat only.Yaml
some or yaml only.Zig
most or zig only.Implementations§
Source§impl Lang
impl Lang
Sourcepub fn get_config(&self) -> Result<HighlightConfiguration>
pub fn get_config(&self) -> Result<HighlightConfiguration>
Create an instance of the corresponding
HighlightConfiguration.
Sourcepub fn highlights_query(&self) -> &'static str
pub fn highlights_query(&self) -> &'static str
Get the highlights query for this language.
Sourcepub fn injections_query(&self) -> &'static str
pub fn injections_query(&self) -> &'static str
Get the injections query for this language.
Sourcepub fn locals_query(&self) -> &'static str
pub fn locals_query(&self) -> &'static str
Get the locals query for this language.
Trait Implementations§
Source§impl<S> SupportedLanguage<'_, S> for Lang
impl<S> SupportedLanguage<'_, S> for Lang
impl Copy for Lang
impl Eq for Lang
impl StructuralPartialEq for Lang
Auto Trait Implementations§
impl Freeze for Lang
impl RefUnwindSafe for Lang
impl Send for Lang
impl Sync for Lang
impl Unpin for Lang
impl UnwindSafe for Lang
Blanket Implementations§
Source§impl<S, D, Swp, Dwp, T> AdaptInto<D, Swp, Dwp, T> for Swhere
T: Real + Zero + Arithmetics + Clone,
Swp: WhitePoint<T>,
Dwp: WhitePoint<T>,
D: AdaptFrom<S, Swp, Dwp, T>,
impl<S, D, Swp, Dwp, T> AdaptInto<D, Swp, Dwp, T> for Swhere
T: Real + Zero + Arithmetics + Clone,
Swp: WhitePoint<T>,
Dwp: WhitePoint<T>,
D: AdaptFrom<S, Swp, Dwp, T>,
Source§fn adapt_into_using<M>(self, method: M) -> Dwhere
M: TransformMatrix<T>,
fn adapt_into_using<M>(self, method: M) -> Dwhere
M: TransformMatrix<T>,
Source§fn adapt_into(self) -> D
fn adapt_into(self) -> D
Source§impl<T, C> ArraysFrom<C> for Twhere
C: IntoArrays<T>,
impl<T, C> ArraysFrom<C> for Twhere
C: IntoArrays<T>,
Source§fn arrays_from(colors: C) -> T
fn arrays_from(colors: C) -> T
Source§impl<T, C> ArraysInto<C> for Twhere
C: FromArrays<T>,
impl<T, C> ArraysInto<C> for Twhere
C: FromArrays<T>,
Source§fn arrays_into(self) -> C
fn arrays_into(self) -> C
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
Source§impl<WpParam, T, U> Cam16IntoUnclamped<WpParam, T> for Uwhere
T: FromCam16Unclamped<WpParam, U>,
impl<WpParam, T, U> Cam16IntoUnclamped<WpParam, T> for Uwhere
T: FromCam16Unclamped<WpParam, U>,
Source§type Scalar = <T as FromCam16Unclamped<WpParam, U>>::Scalar
type Scalar = <T as FromCam16Unclamped<WpParam, U>>::Scalar
parameters when converting.Source§fn cam16_into_unclamped(
self,
parameters: BakedParameters<WpParam, <U as Cam16IntoUnclamped<WpParam, T>>::Scalar>,
) -> T
fn cam16_into_unclamped( self, parameters: BakedParameters<WpParam, <U as Cam16IntoUnclamped<WpParam, T>>::Scalar>, ) -> T
self into C, using the provided parameters.Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T, C> ComponentsFrom<C> for Twhere
C: IntoComponents<T>,
impl<T, C> ComponentsFrom<C> for Twhere
C: IntoComponents<T>,
Source§fn components_from(colors: C) -> T
fn components_from(colors: C) -> T
Source§impl<T> FromAngle<T> for T
impl<T> FromAngle<T> for T
Source§fn from_angle(angle: T) -> T
fn from_angle(angle: T) -> T
angle.Source§impl<T, U> FromStimulus<U> for Twhere
U: IntoStimulus<T>,
impl<T, U> FromStimulus<U> for Twhere
U: IntoStimulus<T>,
Source§fn from_stimulus(other: U) -> T
fn from_stimulus(other: U) -> T
other into Self, while performing the appropriate scaling,
rounding and clamping.Source§impl<T, U> IntoAngle<U> for Twhere
U: FromAngle<T>,
impl<T, U> IntoAngle<U> for Twhere
U: FromAngle<T>,
Source§fn into_angle(self) -> U
fn into_angle(self) -> U
T.Source§impl<WpParam, T, U> IntoCam16Unclamped<WpParam, T> for Uwhere
T: Cam16FromUnclamped<WpParam, U>,
impl<WpParam, T, U> IntoCam16Unclamped<WpParam, T> for Uwhere
T: Cam16FromUnclamped<WpParam, U>,
Source§type Scalar = <T as Cam16FromUnclamped<WpParam, U>>::Scalar
type Scalar = <T as Cam16FromUnclamped<WpParam, U>>::Scalar
parameters when converting.Source§fn into_cam16_unclamped(
self,
parameters: BakedParameters<WpParam, <U as IntoCam16Unclamped<WpParam, T>>::Scalar>,
) -> T
fn into_cam16_unclamped( self, parameters: BakedParameters<WpParam, <U as IntoCam16Unclamped<WpParam, T>>::Scalar>, ) -> T
self into C, using the provided parameters.Source§impl<T, U> IntoColor<U> for Twhere
U: FromColor<T>,
impl<T, U> IntoColor<U> for Twhere
U: FromColor<T>,
Source§fn into_color(self) -> U
fn into_color(self) -> U
Source§impl<T, U> IntoColorUnclamped<U> for Twhere
U: FromColorUnclamped<T>,
impl<T, U> IntoColorUnclamped<U> for Twhere
U: FromColorUnclamped<T>,
Source§fn into_color_unclamped(self) -> U
fn into_color_unclamped(self) -> U
Source§impl<T> IntoStimulus<T> for T
impl<T> IntoStimulus<T> for T
Source§fn into_stimulus(self) -> T
fn into_stimulus(self) -> T
self into T, while performing the appropriate scaling,
rounding and clamping.Source§impl<T, C> TryComponentsInto<C> for Twhere
C: TryFromComponents<T>,
impl<T, C> TryComponentsInto<C> for Twhere
C: TryFromComponents<T>,
Source§type Error = <C as TryFromComponents<T>>::Error
type Error = <C as TryFromComponents<T>>::Error
try_into_colors fails to cast.Source§fn try_components_into(self) -> Result<C, <T as TryComponentsInto<C>>::Error>
fn try_components_into(self) -> Result<C, <T as TryComponentsInto<C>>::Error>
Source§impl<T, U> TryIntoColor<U> for Twhere
U: TryFromColor<T>,
impl<T, U> TryIntoColor<U> for Twhere
U: TryFromColor<T>,
Source§fn try_into_color(self) -> Result<U, OutOfBounds<U>>
fn try_into_color(self) -> Result<U, OutOfBounds<U>>
OutOfBounds error is returned which contains
the unclamped color. Read more