Add local highlighting maybe

This commit is contained in:
Evan Dunbar 2024-09-26 09:46:16 -05:00
parent eec8ac1dab
commit 159a378d3e
5 changed files with 44 additions and 19 deletions

View file

@ -30,7 +30,7 @@ module.exports = grammar({
'define', 'define',
'Define', 'Define',
), ),
$.match, field('find', $.match),
$.match, $.match,
), ),

5
queries/locals.scm Normal file
View file

@ -0,0 +1,5 @@
(define find: (match) @local.definition.macro)
(((identifier) @local.reference)
(#set! reference.scope "global"))
(action name: ((identifier) @local.function)
(#set! function.scope "global"))

4
src/grammar.json generated
View file

@ -60,8 +60,12 @@
] ]
}, },
{ {
"type": "FIELD",
"name": "find",
"content": {
"type": "SYMBOL", "type": "SYMBOL",
"name": "match" "name": "match"
}
}, },
{ {
"type": "SYMBOL", "type": "SYMBOL",

15
src/node-types.json generated
View file

@ -141,9 +141,20 @@
{ {
"type": "define", "type": "define",
"named": true, "named": true,
"fields": {}, "fields": {
"find": {
"multiple": false,
"required": true,
"types": [
{
"type": "match",
"named": true
}
]
}
},
"children": { "children": {
"multiple": true, "multiple": false,
"required": true, "required": true,
"types": [ "types": [
{ {

33
src/parser.c generated
View file

@ -11,9 +11,9 @@
#define ALIAS_COUNT 0 #define ALIAS_COUNT 0
#define TOKEN_COUNT 46 #define TOKEN_COUNT 46
#define EXTERNAL_TOKEN_COUNT 0 #define EXTERNAL_TOKEN_COUNT 0
#define FIELD_COUNT 1 #define FIELD_COUNT 2
#define MAX_ALIAS_SEQUENCE_LENGTH 6 #define MAX_ALIAS_SEQUENCE_LENGTH 6
#define PRODUCTION_ID_COUNT 3 #define PRODUCTION_ID_COUNT 4
enum ts_symbol_identifiers { enum ts_symbol_identifiers {
sym_identifier = 1, sym_identifier = 1,
@ -503,23 +503,28 @@ static const TSSymbolMetadata ts_symbol_metadata[] = {
}; };
enum ts_field_identifiers { enum ts_field_identifiers {
field_name = 1, field_find = 1,
field_name = 2,
}; };
static const char * const ts_field_names[] = { static const char * const ts_field_names[] = {
[0] = NULL, [0] = NULL,
[field_find] = "find",
[field_name] = "name", [field_name] = "name",
}; };
static const TSFieldMapSlice ts_field_map_slices[PRODUCTION_ID_COUNT] = { static const TSFieldMapSlice ts_field_map_slices[PRODUCTION_ID_COUNT] = {
[1] = {.index = 0, .length = 1}, [1] = {.index = 0, .length = 1},
[2] = {.index = 1, .length = 1}, [2] = {.index = 1, .length = 1},
[3] = {.index = 2, .length = 1},
}; };
static const TSFieldMapEntry ts_field_map_entries[] = { static const TSFieldMapEntry ts_field_map_entries[] = {
[0] = [0] =
{field_name, 0}, {field_find, 1},
[1] = [1] =
{field_name, 0},
[2] =
{field_name, 1}, {field_name, 1},
}; };
@ -2954,28 +2959,28 @@ static const TSParseActionEntry ts_parse_actions[] = {
[93] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym__expression_repeat1, 2, 0, 0), [93] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym__expression_repeat1, 2, 0, 0),
[95] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__expression_repeat1, 2, 0, 0), SHIFT_REPEAT(59), [95] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__expression_repeat1, 2, 0, 0), SHIFT_REPEAT(59),
[98] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__expression_repeat1, 2, 0, 0), [98] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__expression_repeat1, 2, 0, 0),
[100] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function, 5, 0, 1), [100] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function, 5, 0, 2),
[102] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function, 5, 0, 1), [102] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function, 5, 0, 2),
[104] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_branch, 6, 0, 0), [104] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_branch, 6, 0, 0),
[106] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_branch, 6, 0, 0), [106] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_branch, 6, 0, 0),
[108] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function, 4, 0, 1), [108] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function, 4, 0, 2),
[110] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function, 4, 0, 1), [110] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function, 4, 0, 2),
[112] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_loop, 4, 0, 0), [112] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_loop, 4, 0, 0),
[114] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_loop, 4, 0, 0), [114] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_loop, 4, 0, 0),
[116] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_branch, 4, 0, 0), [116] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_branch, 4, 0, 0),
[118] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_branch, 4, 0, 0), [118] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_branch, 4, 0, 0),
[120] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_action, 4, 0, 2), [120] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_action, 4, 0, 3),
[122] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_action, 4, 0, 2), [122] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_action, 4, 0, 3),
[124] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function, 3, 0, 1), [124] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function, 3, 0, 2),
[126] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function, 3, 0, 1), [126] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function, 3, 0, 2),
[128] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_assignment, 3, 0, 0), [128] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_assignment, 3, 0, 0),
[130] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assignment, 3, 0, 0), [130] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assignment, 3, 0, 0),
[132] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_comment, 2, 0, 0), [132] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_comment, 2, 0, 0),
[134] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_comment, 2, 0, 0), [134] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_comment, 2, 0, 0),
[136] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__expression_repeat1, 2, 0, 0), SHIFT_REPEAT(58), [136] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__expression_repeat1, 2, 0, 0), SHIFT_REPEAT(58),
[139] = {.entry = {.count = 1, .reusable = true}}, SHIFT(58), [139] = {.entry = {.count = 1, .reusable = true}}, SHIFT(58),
[141] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_define, 3, 0, 0), [141] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_define, 3, 0, 1),
[143] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_define, 3, 0, 0), [143] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_define, 3, 0, 1),
[145] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_include, 2, 0, 0), [145] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_include, 2, 0, 0),
[147] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_include, 2, 0, 0), [147] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_include, 2, 0, 0),
[149] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_comparison, 3, 0, 0), [149] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_comparison, 3, 0, 0),