two_face/
syntax.rs

1//! Contains extra syntax definitions
2
3use syntect::{dumps, parsing::SyntaxSet};
4
5/// Akin to [`SyntaxSet::load_defaults_nonewlines()`], but with extra syntax definitions
6///
7/// # Example
8///
9/// ```
10/// // TOML and TypeScript and Dockerfiles oh my!
11/// let syn_set = two_face::syntax::extra_no_newlines();
12/// let toml = syn_set.find_syntax_by_name("TOML").unwrap();
13/// let type_script = syn_set.find_syntax_by_name("TypeScript").unwrap();
14/// let dockerfile = syn_set.find_syntax_by_name("Dockerfile").unwrap();
15/// ```
16pub fn extra_no_newlines() -> SyntaxSet {
17    #[cfg(feature = "syntect-onig")]
18    let bytes = include_bytes!("../generated/syntaxes-onig-no-newlines.bin");
19    #[cfg(not(feature = "syntect-onig"))]
20    let bytes = include_bytes!("../generated/syntaxes-fancy-no-newlines.bin");
21
22    dumps::from_uncompressed_data(bytes).unwrap()
23}
24
25/// Akin to [`SyntaxSet::load_defaults_newlines()`], but with extra syntax definitions
26///
27/// # Example
28///
29/// ```
30/// // TOML and TypeScript and Dockerfiles oh my!
31/// let syn_set = two_face::syntax::extra_newlines();
32/// let toml = syn_set.find_syntax_by_name("TOML").unwrap();
33/// let type_script = syn_set.find_syntax_by_name("TypeScript").unwrap();
34/// let dockerfile = syn_set.find_syntax_by_name("Dockerfile").unwrap();
35/// ```
36pub fn extra_newlines() -> SyntaxSet {
37    #[cfg(feature = "syntect-onig")]
38    let bytes = include_bytes!("../generated/syntaxes-onig-newlines.bin");
39    #[cfg(not(feature = "syntect-onig"))]
40    let bytes = include_bytes!("../generated/syntaxes-fancy-newlines.bin");
41
42    dumps::from_uncompressed_data(bytes).unwrap()
43}