on master help sign in
syntax: Add go & rust locals, improve tree-sitter error message
commit4ac29434cb99b517dba3752a287c0edfe8679e7e authorBlaž Hrastnik <blaz@mxxn.io> dateMon 6 Sep 2021, 18:13 (5 years ago) parent2bef245
5 files changed+57−6
helix-core/src/syntax.rs+6−2 runtime/queries/go/highlights.scm+3−3 runtime/queries/go/locals.scm+30 runtime/queries/rust/locals.scm+17 theme.toml+1−1
helix-core/src/syntax.rs+6−2
@@ -144,8 +144,12 @@ impl LanguageConfiguration {
144144 &highlights_query,
145145 &injections_query,
146146 &locals_query,
147− )
148− .unwrap(); // TODO: no unwrap
147+ );
148+
149+ let config = match config {
150+ Ok(config) => config,
151+ Err(err) => panic!("{}", err),
152+ }; // TODO: avoid panic
149153 config.configure(scopes);
150154 Some(Arc::new(config))
151155 }
runtime/queries/go/highlights.scm+3−3
@@ -21,14 +21,14 @@
2121(const_spec
2222 name: (identifier) @constant)
2323
24+(parameter_declaration (identifier) @variable.parameter)
25+(variadic_parameter_declaration (identifier) @variable.parameter)
26+
2427(type_identifier) @type
2528(field_identifier) @property
2629(identifier) @variable
2730(package_identifier) @variable
2831
29−(parameter_declaration (identifier) @variable.parameter)
30−(variadic_parameter_declaration (identifier) @variable.parameter)
31−
3232
3333; Operators
3434
runtime/queries/go/locals.scmnew file+30
@@ -0,0 +1,30 @@
1+; Scopes
2+
3+(block) @local.scope
4+
5+; Definitions
6+
7+(parameter_declaration (identifier) @local.definition)
8+(variadic_parameter_declaration (identifier) @local.definition)
9+
10+(short_var_declaration
11+ left: (expression_list
12+ (identifier) @local.definition))
13+
14+(var_spec
15+ name: (identifier) @local.definition)
16+
17+(for_statement
18+ (range_clause
19+ left: (expression_list
20+ (identifier) @local.definition)))
21+
22+(const_declaration
23+ (const_spec
24+ name: (identifier) @local.definition))
25+
26+; References
27+
28+(identifier) @local.reference
29+(field_identifier) @local.reference
30+
runtime/queries/rust/locals.scmnew file+17
@@ -0,0 +1,17 @@
1+; Scopes
2+
3+(block) @local.scope
4+
5+; Definitions
6+
7+(parameter
8+ (identifier) @local.definition)
9+
10+(let_declaration
11+ pattern: (identifier) @local.definition)
12+
13+(closure_parameters (identifier)) @local.definition
14+
15+; References
16+(identifier) @local.reference
17+
theme.toml+1−1
@@ -9,7 +9,7 @@ special = "honey"
99property = "white"
1010variable = "lavender"
1111# variable = "almond" # TODO: metavariables only
12−"variable.parameter" = "lavender"
12+"variable.parameter" = { fg = "lavender", modifiers = ["underlined"] }
1313"variable.builtin" = "mint"
1414type = "white"
1515"type.builtin" = "white" # TODO: distinguish?