highlighter_languages/
lib.rs

1//! Official language extensions for Highlighter.
2
3use highlighter_core::{Token, Error, highlight, language::Language};
4
5#[cfg(feature = "brainheck")]
6pub mod brainheck;
7
8/// Returns the language with the specified name, if any.
9pub fn language(name: &str) -> Option<Box<dyn Language>> {
10    match name.to_lowercase().as_str() {
11        #[cfg(feature = "brainheck")]
12        "brainheck" => Some(Box::new(brainheck::Brainheck)),
13        _ => None
14    }
15}
16
17/// Highlights a language extended from the `highlighter-languages` crate.
18pub fn highlight_language(language: &str, src: &str) -> Option<Result<Vec<Token>, Error>> {
19    match language.to_lowercase().as_str() {
20        #[cfg(feature = "brainheck")]
21        "brainheck" => Some(highlight(brainheck::Brainheck, src)),
22        _ => None
23    }
24}