tree_sitter_language_pack 1.0.0 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (4) hide show
  1. checksums.yaml +4 -4
  2. data/Cargo.toml +6 -6
  3. data/src/lib.rs +40 -0
  4. metadata +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 7cae5d24a27c6a76e8976a5eddc9a226bbd17dd0e4907541f8049fc7b259d85b
4
- data.tar.gz: 7c289593d60788de6b6fb0fafcf9470b7d86a77c192037291fc022b2ca287198
3
+ metadata.gz: 999e9120d3a3e7224b56baaa3f8f82eee4e971b58d65b7309b6f1eb37f750e3c
4
+ data.tar.gz: c7f65eefc451ee33d743c0c2bf9bce1dc5168a2d33c06f9481d02fde864aae34
5
5
  SHA512:
6
- metadata.gz: 9a60d62aaf6025a2d765a43c9039866a869c096611b52b0480eaee0e5b69cb50b1060522bd2ce77a12246f91e08166295efa4977a29665993e77f803b3b4ac02
7
- data.tar.gz: 3382f4d415831a3e60e327a08d8fb60856d6b7cc303b748058262c704219faf7d6b4b7e59442ba3f5aed78a87ccea35b71a0bab6592452bea57bae176799f528
6
+ metadata.gz: c740e142b3703077403bc2ea011035d1c194db9192f2c17e86ef26ee3aaef351720e1460b1958835a20fe0511c3b3d53e5a83718a8aec76edce0ea8672abc898
7
+ data.tar.gz: 2f366660dc337d217de570a3e1bf2fb5fe0777860f4c3012a4f2464c29835b24feee553e3346f3d893ea8a31d3cbd248bbdd589722b26a2d222e906a5f2775a5
data/Cargo.toml CHANGED
@@ -7,16 +7,16 @@ repository.workspace = true
7
7
  description = "Ruby Magnus bindings for tree-sitter language pack"
8
8
  publish = false
9
9
 
10
+ [package.metadata.cargo-machete]
11
+ ignored = ["rb-sys"]
12
+
10
13
  [lib]
11
14
  name = "ts_pack_ruby"
12
15
  crate-type = ["cdylib"]
13
16
 
14
17
  [dependencies]
15
- tree-sitter-language-pack = { path = "vendor/ts-pack-core", features = ["serde", "download"] }
16
- serde_json = { workspace = true }
17
- tree-sitter = { workspace = true }
18
18
  magnus = "0.8"
19
19
  rb-sys = "0.9"
20
-
21
- [package.metadata.cargo-machete]
22
- ignored = ["rb-sys"]
20
+ serde_json = { workspace = true }
21
+ tree-sitter = { workspace = true }
22
+ tree-sitter-language-pack = { path = "vendor/ts-pack-core", features = ["serde", "download"] }
data/src/lib.rs CHANGED
@@ -42,6 +42,37 @@ fn has_language(name: String) -> bool {
42
42
  tree_sitter_language_pack::has_language(&name)
43
43
  }
44
44
 
45
+ fn detect_language(path: String) -> Option<String> {
46
+ tree_sitter_language_pack::detect_language_from_path(&path).map(String::from)
47
+ }
48
+
49
+ fn detect_language_from_content(content: String) -> Option<String> {
50
+ tree_sitter_language_pack::detect_language_from_content(&content).map(String::from)
51
+ }
52
+
53
+ /// Returns extension ambiguity information as a JSON string, or nil.
54
+ fn extension_ambiguity(ext: String) -> Option<String> {
55
+ tree_sitter_language_pack::extension_ambiguity(&ext).and_then(|(assigned, alts)| {
56
+ let val = serde_json::json!({
57
+ "assigned": assigned,
58
+ "alternatives": alts,
59
+ });
60
+ serde_json::to_string(&val).ok()
61
+ })
62
+ }
63
+
64
+ fn get_highlights_query(language: String) -> Option<String> {
65
+ tree_sitter_language_pack::get_highlights_query(&language).map(String::from)
66
+ }
67
+
68
+ fn get_injections_query(language: String) -> Option<String> {
69
+ tree_sitter_language_pack::get_injections_query(&language).map(String::from)
70
+ }
71
+
72
+ fn get_locals_query(language: String) -> Option<String> {
73
+ tree_sitter_language_pack::get_locals_query(&language).map(String::from)
74
+ }
75
+
45
76
  fn language_count() -> usize {
46
77
  tree_sitter_language_pack::language_count()
47
78
  }
@@ -149,6 +180,15 @@ fn init(ruby: &Ruby) -> Result<(), Error> {
149
180
  // Registry and parsing functions
150
181
  module.define_module_function("available_languages", function!(available_languages, 0))?;
151
182
  module.define_module_function("has_language", function!(has_language, 1))?;
183
+ module.define_module_function("detect_language", function!(detect_language, 1))?;
184
+ module.define_module_function(
185
+ "detect_language_from_content",
186
+ function!(detect_language_from_content, 1),
187
+ )?;
188
+ module.define_module_function("extension_ambiguity", function!(extension_ambiguity, 1))?;
189
+ module.define_module_function("get_highlights_query", function!(get_highlights_query, 1))?;
190
+ module.define_module_function("get_injections_query", function!(get_injections_query, 1))?;
191
+ module.define_module_function("get_locals_query", function!(get_locals_query, 1))?;
152
192
  module.define_module_function("language_count", function!(language_count, 0))?;
153
193
  module.define_module_function("get_language_ptr", function!(get_language_ptr, 1))?;
154
194
  module.define_module_function("parse_string", function!(parse_string, 2))?;
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tree_sitter_language_pack
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - kreuzberg.dev
@@ -23,7 +23,7 @@ dependencies:
23
23
  - - "~>"
24
24
  - !ruby/object:Gem::Version
25
25
  version: '0.9'
26
- description: 170+ pre-compiled tree-sitter language parsers with Ruby bindings via
26
+ description: 197 pre-compiled tree-sitter language parsers with Ruby bindings via
27
27
  Magnus native extensions.
28
28
  email:
29
29
  - dev@kreuzberg.dev