mirror of https://github.com/helix-editor/helix
46 lines
910 B
Scheme
46 lines
910 B
Scheme
|
; Modules
|
||
|
(attribute
|
||
|
name: (atom) @_attr
|
||
|
(arguments (atom) @definition.module)
|
||
|
(#eq? @_attr "module"))
|
||
|
|
||
|
; Constants
|
||
|
((attribute
|
||
|
name: (atom) @_attr
|
||
|
(arguments
|
||
|
.
|
||
|
[
|
||
|
(atom) @definition.constant
|
||
|
(call function: [(variable) (atom)] @definition.macro)
|
||
|
]))
|
||
|
(#eq? @_attr "define"))
|
||
|
|
||
|
; Record definitions
|
||
|
((attribute
|
||
|
name: (atom) @_attr
|
||
|
(arguments
|
||
|
.
|
||
|
(atom) @definition.struct))
|
||
|
(#eq? @_attr "record"))
|
||
|
|
||
|
; Function specs
|
||
|
((attribute
|
||
|
name: (atom) @_attr
|
||
|
(stab_clause name: (atom) @definition.interface))
|
||
|
(#eq? @_attr "spec"))
|
||
|
|
||
|
; Types
|
||
|
((attribute
|
||
|
name: (atom) @_attr
|
||
|
(arguments
|
||
|
(binary_operator
|
||
|
left: [
|
||
|
(atom) @definition.type
|
||
|
(call function: (atom) @definition.type)
|
||
|
]
|
||
|
operator: "::")))
|
||
|
(#any-of? @_attr "type" "opaque"))
|
||
|
|
||
|
; Functions
|
||
|
(function_clause name: (atom) @definition.function)
|