Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'runtime/queries/concerto/locals.scm')
| -rw-r--r-- | runtime/queries/concerto/locals.scm | 88 |
1 files changed, 88 insertions, 0 deletions
diff --git a/runtime/queries/concerto/locals.scm b/runtime/queries/concerto/locals.scm new file mode 100644 index 00000000..1dc1ee6e --- /dev/null +++ b/runtime/queries/concerto/locals.scm @@ -0,0 +1,88 @@ +; Concerto Language - Locals Queries (Helix) +; ============================================ +; Helix-specific local scope/definition/reference tracking. For use in +; helix-editor/helix at runtime/queries/concerto/locals.scm +; +; Helix uses the same @local.scope, @local.definition, and @local.reference +; capture names as tree-sitter convention. + +; Scopes +; ------ + +; Each declaration body creates a new scope +(concept_declaration) @local.scope +(asset_declaration) @local.scope +(participant_declaration) @local.scope +(transaction_declaration) @local.scope +(event_declaration) @local.scope +(enum_declaration) @local.scope +(map_declaration) @local.scope + +; Definitions +; ----------- + +; Type declarations define types +(concept_declaration + name: (type_identifier) @local.definition.type) + +(asset_declaration + name: (type_identifier) @local.definition.type) + +(participant_declaration + name: (type_identifier) @local.definition.type) + +(transaction_declaration + name: (type_identifier) @local.definition.type) + +(event_declaration + name: (type_identifier) @local.definition.type) + +(enum_declaration + name: (type_identifier) @local.definition.type) + +(scalar_declaration + name: (type_identifier) @local.definition.type) + +(map_declaration + name: (type_identifier) @local.definition.type) + +; Property declarations define properties +(string_field + name: (identifier) @local.definition.variable.other.member) + +(boolean_field + name: (identifier) @local.definition.variable.other.member) + +(datetime_field + name: (identifier) @local.definition.variable.other.member) + +(integer_field + name: (identifier) @local.definition.variable.other.member) + +(long_field + name: (identifier) @local.definition.variable.other.member) + +(double_field + name: (identifier) @local.definition.variable.other.member) + +(object_field + name: (identifier) @local.definition.variable.other.member) + +(relationship_field + name: (identifier) @local.definition.variable.other.member) + +(enum_property + name: (identifier) @local.definition.variable.other.member) + +; References +; ---------- + +; Type references +(extends_clause + (type_identifier) @local.reference) + +(object_field + type: (type_identifier) @local.reference) + +(relationship_field + type: (type_identifier) @local.reference) |