From 5f47ca5aa92ad5efd364837f67ecc305f954dc0b Mon Sep 17 00:00:00 2001 From: videogame hacker Date: Thu, 28 Apr 2022 19:59:27 +0100 Subject: [PATCH] Add more built-in languages: C++, TypeScript --- Cargo.toml | 7 ++++++- src/languages/built_in.rs | 40 ++++++++++++++++++++++++++++++++++++--- 2 files changed, 43 insertions(+), 4 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index ce8b73f..5444213 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -5,7 +5,10 @@ edition = "2021" [features] default = ["built-in"] -built-in = ["tree-sitter-rust", "tree-sitter-javascript", "tree-sitter-regex", "tree-sitter-python"] +built-in = [ + "tree-sitter-rust", "tree-sitter-javascript", "tree-sitter-regex", + "tree-sitter-python", "tree-sitter-cpp", "tree-sitter-typescript", +] [dependencies] html-escape = "0.2.11" @@ -18,3 +21,5 @@ tree-sitter-rust = { version = "0.20.1", optional = true } tree-sitter-javascript = { version = "0.20.0", optional = true } tree-sitter-regex = { git = "https://github.com/tree-sitter/tree-sitter-regex.git", rev = "e1cfca", optional = true } tree-sitter-python = { version = "0.19.1", optional = true } +tree-sitter-cpp = { version = "0.20.0", optional = true } +tree-sitter-typescript = { version = "0.20.1", optional = true } diff --git a/src/languages/built_in.rs b/src/languages/built_in.rs index e45e217..c638261 100644 --- a/src/languages/built_in.rs +++ b/src/languages/built_in.rs @@ -33,8 +33,15 @@ pub fn register_builtin_languages() { register_language("regex", regex_hl_factory); - register_language("python", tree_sitter_python); - register_language("py", tree_sitter_python); + register_language("python", regex_hl_python); + register_language("py", regex_hl_python); + + register_language("cpp", regex_hl_cpp); + register_language("c++", regex_hl_cpp); + + register_language("typescript", regex_hl_typescript); + register_language("ts", regex_hl_typescript); + register_language("tsx", regex_hl_tsx); } pub fn rust_hl_factory() -> Result { @@ -73,7 +80,7 @@ pub fn regex_hl_factory() -> Result { ) } -pub fn tree_sitter_python() -> Result { +pub fn regex_hl_python() -> Result { HighlightConfiguration::new( tree_sitter_python::language(), tree_sitter_python::HIGHLIGHT_QUERY, @@ -81,3 +88,30 @@ pub fn tree_sitter_python() -> Result { "", ) } + +pub fn regex_hl_cpp() -> Result { + HighlightConfiguration::new( + tree_sitter_cpp::language(), + tree_sitter_cpp::HIGHLIGHT_QUERY, + "", + "", + ) +} + +pub fn regex_hl_typescript() -> Result { + HighlightConfiguration::new( + tree_sitter_typescript::language_typescript(), + tree_sitter_typescript::HIGHLIGHT_QUERY, + "", + tree_sitter_typescript::LOCALS_QUERY, + ) +} + +pub fn regex_hl_tsx() -> Result { + HighlightConfiguration::new( + tree_sitter_typescript::language_tsx(), + tree_sitter_typescript::HIGHLIGHT_QUERY, + "", + tree_sitter_typescript::LOCALS_QUERY, + ) +}