+21
-21
Cargo.lock
+21
-21
Cargo.lock
···
231
231
232
232
[[package]]
233
233
name = "tree-sitter-go"
234
-
version = "0.19.1"
234
+
version = "0.20.0"
235
235
source = "registry+https://github.com/rust-lang/crates.io-index"
236
-
checksum = "71967701c8214be4aa77e0260e98361e6fd71ceec1d9d03abb37a22c9f60d0ff"
236
+
checksum = "1ad6d11f19441b961af2fda7f12f5d0dac325f6d6de83836a1d3750018cc5114"
237
237
dependencies = [
238
238
"cc",
239
239
"tree-sitter 0.20.10",
···
241
241
242
242
[[package]]
243
243
name = "tree-sitter-javascript"
244
-
version = "0.21.4"
244
+
version = "0.20.4"
245
245
source = "registry+https://github.com/rust-lang/crates.io-index"
246
-
checksum = "8710a71bc6779e33811a8067bdda3ed08bed1733296ff915e44faf60f8c533d7"
246
+
checksum = "d015c02ea98b62c806f7329ff71c383286dfc3a7a7da0cc484f6e42922f73c2c"
247
247
dependencies = [
248
248
"cc",
249
-
"tree-sitter 0.21.0",
249
+
"tree-sitter 0.20.10",
250
250
]
251
251
252
252
[[package]]
···
260
260
261
261
[[package]]
262
262
name = "tree-sitter-md"
263
-
version = "0.2.3"
263
+
version = "0.1.7"
264
264
source = "registry+https://github.com/rust-lang/crates.io-index"
265
-
checksum = "d9c3cfd068f2527250bbd8ff407431164e12b17863e7eafb76e311dd3f96965a"
265
+
checksum = "3c20d3ef8d202430b644a307e6299d84bf8ed87fa1b796e4638f8805a595060c"
266
266
dependencies = [
267
267
"cc",
268
-
"tree-sitter 0.21.0",
268
+
"tree-sitter 0.20.10",
269
269
]
270
270
271
271
[[package]]
···
279
279
280
280
[[package]]
281
281
name = "tree-sitter-python"
282
-
version = "0.21.0"
282
+
version = "0.20.4"
283
283
source = "registry+https://github.com/rust-lang/crates.io-index"
284
-
checksum = "b4066c6cf678f962f8c2c4561f205945c84834cce73d981e71392624fdc390a9"
284
+
checksum = "e6c93b1b1fbd0d399db3445f51fd3058e43d0b4dcff62ddbdb46e66550978aa5"
285
285
dependencies = [
286
286
"cc",
287
-
"tree-sitter 0.21.0",
287
+
"tree-sitter 0.20.10",
288
288
]
289
289
290
290
[[package]]
291
291
name = "tree-sitter-ruby"
292
-
version = "0.21.0"
292
+
version = "0.20.1"
293
293
source = "registry+https://github.com/rust-lang/crates.io-index"
294
-
checksum = "c0031f687c0772f2dad7b77104c43428611099a1804c81244ada21560f41f0b1"
294
+
checksum = "44d50ef383469df8485f024c5fb01faced8cb90368192a7ba02605b43b2427fe"
295
295
dependencies = [
296
296
"cc",
297
-
"tree-sitter 0.21.0",
297
+
"tree-sitter 0.20.10",
298
298
]
299
299
300
300
[[package]]
301
301
name = "tree-sitter-rust"
302
-
version = "0.21.2"
302
+
version = "0.20.4"
303
303
source = "registry+https://github.com/rust-lang/crates.io-index"
304
-
checksum = "277690f420bf90741dea984f3da038ace46c4fe6047cba57a66822226cde1c93"
304
+
checksum = "b0832309b0b2b6d33760ce5c0e818cb47e1d72b468516bfe4134408926fa7594"
305
305
dependencies = [
306
306
"cc",
307
-
"tree-sitter 0.21.0",
307
+
"tree-sitter 0.20.10",
308
308
]
309
309
310
310
[[package]]
311
311
name = "tree-sitter-typescript"
312
-
version = "0.21.2"
312
+
version = "0.20.5"
313
313
source = "registry+https://github.com/rust-lang/crates.io-index"
314
-
checksum = "ecb35d98a688378e56c18c9c159824fd16f730ccbea19aacf4f206e5d5438ed9"
314
+
checksum = "c8bc1d2c24276a48ef097a71b56888ac9db63717e8f8d0b324668a27fd619670"
315
315
dependencies = [
316
316
"cc",
317
-
"tree-sitter 0.21.0",
317
+
"tree-sitter 0.20.10",
318
318
]
319
319
320
320
[[package]]
···
323
323
dependencies = [
324
324
"console",
325
325
"notify",
326
-
"tree-sitter 0.21.0",
326
+
"tree-sitter 0.20.10",
327
327
"tree-sitter-elm",
328
328
"tree-sitter-go",
329
329
"tree-sitter-javascript",
+8
-8
Cargo.toml
+8
-8
Cargo.toml
···
7
7
8
8
[dependencies]
9
9
tree-sitter-elm = "5.6.3"
10
-
tree-sitter-ruby = "0.21"
11
-
tree-sitter-rust = "0.21"
12
-
tree-sitter = "0.21"
10
+
tree-sitter-ruby = "0.20"
11
+
tree-sitter-rust = "0.20"
12
+
tree-sitter = "0.20"
13
13
console = "^0.15"
14
-
tree-sitter-go = "0.19.1"
15
-
tree-sitter-typescript = "0.21"
16
-
tree-sitter-javascript = "0.21"
14
+
tree-sitter-go = "0.20"
15
+
tree-sitter-typescript = "0.20"
16
+
tree-sitter-javascript = "0.20"
17
17
tree-sitter-mdx = { git = "https://github.com/jlopezcur/tree-sitter-mdx" }
18
18
tree-sitter-json = { git = "https://github.com/tree-sitter/tree-sitter-json" }
19
-
tree-sitter-python = "0.21"
20
-
tree-sitter-md = "0.2.3"
19
+
tree-sitter-python = "0.20"
20
+
tree-sitter-md = "0.1"
21
21
# tree-sitter-cobol = { path = "../../tree-sitter-cobol/" }
22
22
23
23
[dependencies.notify]
+18
-4
src/app.rs
+18
-4
src/app.rs
···
15
15
path: PathBuf,
16
16
query: Option<Query>,
17
17
query_path: Option<PathBuf>,
18
+
query_error: Option<String>,
18
19
src: Vec<u8>,
19
20
tree: Tree,
20
21
}
···
29
30
let path = path.as_ref().to_owned();
30
31
31
32
let mut parser = Parser::new();
32
-
parser.set_language(&language).unwrap();
33
+
parser.set_language(language).unwrap();
33
34
34
35
let tree = parser.parse(&src, None).unwrap();
35
36
let query_path = query_path.map(|q| q.as_ref().to_owned());
36
-
let query = query_path.as_ref().map(|p| {
37
+
let mut query_error = None;
38
+
let query = query_path.as_ref().and_then(|p| {
37
39
let query_src = std::fs::read_to_string(&p).expect("unable to read query");
38
-
Query::new(&language, &query_src).expect("query parse error")
40
+
match Query::new(language, &query_src) {
41
+
Ok(q) => Some(q),
42
+
Err(e) => {
43
+
query_error = Some(e.to_string());
44
+
None
45
+
}
46
+
}
39
47
});
40
48
41
49
Self {
···
43
51
path,
44
52
query,
45
53
query_path,
54
+
query_error,
46
55
src: src.to_owned(),
47
56
tree,
48
57
language,
···
148
157
write!(
149
158
tree_string,
150
159
"@{} ",
151
-
style(capture_names[*index as usize]).magenta()
160
+
style(&capture_names[*index as usize]).magenta()
152
161
)
153
162
.unwrap();
154
163
}
···
219
228
term.clear_to_end_of_screen().unwrap();
220
229
221
230
term.write_line("(C-c) quit").unwrap();
231
+
232
+
if let Some(err) = self.query_error.as_ref() {
233
+
term.write_line(&format!("{}: {err}", style("query error").red()))
234
+
.unwrap();
235
+
}
222
236
term.clear_to_end_of_screen().unwrap();
223
237
}
224
238
+1
src/main.rs
+1
src/main.rs
···
19
19
20
20
let language = match args.next().as_ref().map(|s| s.as_str()) {
21
21
Some("rust") => tree_sitter_rust::language(),
22
+
Some("go") => tree_sitter_go::language(),
22
23
Some("tsx") | Some("typescript") => tree_sitter_typescript::language_tsx(),
23
24
Some("javascript") => tree_sitter_javascript::language(),
24
25
Some("python") => tree_sitter_python::language(),