From 6568a6f88df4a816acdf5053fe74e5e17fcce22d Mon Sep 17 00:00:00 2001 From: Arthur McGregor Date: Tue, 8 Apr 2025 21:21:25 +1200 Subject: [PATCH] Add elixir support --- Cargo.lock | 11 +++++++++++ Cargo.toml | 1 + crates/codebook/Cargo.toml | 1 + crates/codebook/src/queries.rs | 9 +++++++++ crates/codebook/src/queries/elixir.scm | 11 +++++++++++ 5 files changed, 33 insertions(+) create mode 100644 crates/codebook/src/queries/elixir.scm diff --git a/Cargo.lock b/Cargo.lock index 6357fe1..fc141b4 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -521,6 +521,7 @@ dependencies = [ "tree-sitter-bash", "tree-sitter-c", "tree-sitter-css", + "tree-sitter-elixir", "tree-sitter-go", "tree-sitter-html", "tree-sitter-javascript", @@ -2898,6 +2899,16 @@ dependencies = [ "tree-sitter-language", ] +[[package]] +name = "tree-sitter-elixir" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e45d444647b4fd53d8fd32474c1b8bedc1baa22669ce3a78d083e365fa9a2d3f" +dependencies = [ + "cc", + "tree-sitter-language", +] + [[package]] name = "tree-sitter-go" version = "0.23.4" diff --git a/Cargo.toml b/Cargo.toml index d5c5f6f..bc8f476 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -34,6 +34,7 @@ tree-sitter = "<0.26.0" tree-sitter-bash = "<0.24.0" tree-sitter-c = "<0.25.0" tree-sitter-css = "<0.25.0" +tree-sitter-elixir = "0.3.4" tree-sitter-go = "<0.25.0" tree-sitter-html = "<0.25.0" tree-sitter-javascript = "<0.25.0" diff --git a/crates/codebook/Cargo.toml b/crates/codebook/Cargo.toml index e543f0a..c22f280 100644 --- a/crates/codebook/Cargo.toml +++ b/crates/codebook/Cargo.toml @@ -10,6 +10,7 @@ spellbook.workspace = true tree-sitter-bash.workspace = true tree-sitter-c.workspace = true tree-sitter-css.workspace = true +tree-sitter-elixir.workspace = true tree-sitter-go.workspace = true tree-sitter-html.workspace = true tree-sitter-javascript.workspace = true diff --git a/crates/codebook/src/queries.rs b/crates/codebook/src/queries.rs index 5cd34be..43b7462 100644 --- a/crates/codebook/src/queries.rs +++ b/crates/codebook/src/queries.rs @@ -7,6 +7,7 @@ pub enum LanguageType { Bash, C, Css, + Elixir, Go, HTML, Javascript, @@ -144,6 +145,13 @@ pub static LANGUAGE_SETTINGS: &[LanguageSetting] = &[ query: include_str!("queries/r.scm"), extensions: &["r", "R"], }, + LanguageSetting { + type_: LanguageType::Elixir, + ids: &["elixir"], + dictionary_ids: &["elixir"], + query: include_str!("queries/elixir.scm"), + extensions: &["ex", "exs"], + }, ]; #[derive(Debug)] @@ -173,6 +181,7 @@ impl LanguageSetting { LanguageType::TOML => Some(tree_sitter_toml_ng::LANGUAGE.into()), LanguageType::Text => None, LanguageType::Typescript => Some(tree_sitter_typescript::LANGUAGE_TYPESCRIPT.into()), + LanguageType::Elixir => Some(tree_sitter_elixir::LANGUAGE.into()), } } } diff --git a/crates/codebook/src/queries/elixir.scm b/crates/codebook/src/queries/elixir.scm new file mode 100644 index 0000000..43acab7 --- /dev/null +++ b/crates/codebook/src/queries/elixir.scm @@ -0,0 +1,11 @@ +[ + (string) + (charlist) +] @string +[ + (atom) + (quoted_atom) + (keyword) + (quoted_keyword) +] @string.special.symbol +(comment) @comment