mirror of
https://github.com/helix-editor/helix.git
synced 2024-11-22 09:26:19 +04:00
highlights: add type.parameter scope to several more languages (#8718)
* typescript * go * haskell * ocaml * kotlin (+ bugfix)
This commit is contained in:
parent
a98ad137f9
commit
f73e9a8d15
@ -107,6 +107,8 @@
|
|||||||
; Types
|
; Types
|
||||||
; -----
|
; -----
|
||||||
|
|
||||||
|
(type_parameter
|
||||||
|
name: (type_identifier) @type.parameter)
|
||||||
(type_identifier) @type
|
(type_identifier) @type
|
||||||
(predefined_type) @type.builtin
|
(predefined_type) @type.builtin
|
||||||
|
|
||||||
|
@ -1,6 +1,18 @@
|
|||||||
|
; Scopes
|
||||||
|
;-------
|
||||||
|
|
||||||
|
[
|
||||||
|
(type_alias_declaration)
|
||||||
|
(class_declaration)
|
||||||
|
(interface_declaration)
|
||||||
|
] @local.scope
|
||||||
|
|
||||||
; Definitions
|
; Definitions
|
||||||
;------------
|
;------------
|
||||||
|
|
||||||
|
(type_parameter
|
||||||
|
name: (type_identifier) @local.definition)
|
||||||
|
|
||||||
; Javascript and Typescript Treesitter grammars deviate when defining the
|
; Javascript and Typescript Treesitter grammars deviate when defining the
|
||||||
; tree structure for parameters, so we need to address them in each specific
|
; tree structure for parameters, so we need to address them in each specific
|
||||||
; language instead of ecma.
|
; language instead of ecma.
|
||||||
@ -14,3 +26,8 @@
|
|||||||
; (i?: t = 1) // Invalid but still posible to hihglight.
|
; (i?: t = 1) // Invalid but still posible to hihglight.
|
||||||
(optional_parameter
|
(optional_parameter
|
||||||
(identifier) @local.definition)
|
(identifier) @local.definition)
|
||||||
|
|
||||||
|
; References
|
||||||
|
;-----------
|
||||||
|
|
||||||
|
(type_identifier) @local.reference
|
||||||
|
@ -11,6 +11,18 @@
|
|||||||
function: (selector_expression
|
function: (selector_expression
|
||||||
field: (field_identifier) @function.method))
|
field: (field_identifier) @function.method))
|
||||||
|
|
||||||
|
|
||||||
|
; Types
|
||||||
|
|
||||||
|
(type_parameter_list
|
||||||
|
(parameter_declaration
|
||||||
|
name: (identifier) @type.parameter))
|
||||||
|
|
||||||
|
((type_identifier) @type.builtin
|
||||||
|
(match? @type.builtin "^(any|bool|byte|comparable|complex128|complex64|error|float32|float64|int|int16|int32|int64|int8|rune|string|uint|uint16|uint32|uint64|uint8|uintptr)$"))
|
||||||
|
|
||||||
|
(type_identifier) @type
|
||||||
|
|
||||||
; Function definitions
|
; Function definitions
|
||||||
|
|
||||||
(function_declaration
|
(function_declaration
|
||||||
@ -30,10 +42,6 @@
|
|||||||
(parameter_declaration (identifier) @variable.parameter)
|
(parameter_declaration (identifier) @variable.parameter)
|
||||||
(variadic_parameter_declaration (identifier) @variable.parameter)
|
(variadic_parameter_declaration (identifier) @variable.parameter)
|
||||||
|
|
||||||
((type_identifier) @type.builtin
|
|
||||||
(match? @type.builtin "^(any|bool|byte|comparable|complex128|complex64|error|float32|float64|int|int16|int32|int64|int8|rune|string|uint|uint16|uint32|uint64|uint8|uintptr)$"))
|
|
||||||
|
|
||||||
(type_identifier) @type
|
|
||||||
(type_spec
|
(type_spec
|
||||||
name: (type_identifier) @constructor)
|
name: (type_identifier) @constructor)
|
||||||
(field_identifier) @variable.other.member
|
(field_identifier) @variable.other.member
|
||||||
|
@ -1,9 +1,17 @@
|
|||||||
; Scopes
|
; Scopes
|
||||||
|
|
||||||
(block) @local.scope
|
[
|
||||||
|
(function_declaration)
|
||||||
|
(type_declaration)
|
||||||
|
(block)
|
||||||
|
] @local.scope
|
||||||
|
|
||||||
; Definitions
|
; Definitions
|
||||||
|
|
||||||
|
(type_parameter_list
|
||||||
|
(parameter_declaration
|
||||||
|
name: (identifier) @local.definition))
|
||||||
|
|
||||||
(parameter_declaration (identifier) @local.definition)
|
(parameter_declaration (identifier) @local.definition)
|
||||||
(variadic_parameter_declaration (identifier) @local.definition)
|
(variadic_parameter_declaration (identifier) @local.definition)
|
||||||
|
|
||||||
@ -27,4 +35,4 @@
|
|||||||
|
|
||||||
(identifier) @local.reference
|
(identifier) @local.reference
|
||||||
(field_identifier) @local.reference
|
(field_identifier) @local.reference
|
||||||
|
(type_identifier) @local.reference
|
||||||
|
@ -124,7 +124,7 @@
|
|||||||
;; Types
|
;; Types
|
||||||
|
|
||||||
(type) @type
|
(type) @type
|
||||||
(type_variable) @type
|
(type_variable) @type.parameter
|
||||||
|
|
||||||
(constructor) @constructor
|
(constructor) @constructor
|
||||||
|
|
||||||
|
@ -244,7 +244,10 @@
|
|||||||
. (identifier)) @namespace
|
. (identifier)) @namespace
|
||||||
|
|
||||||
((type_identifier) @type.builtin
|
((type_identifier) @type.builtin
|
||||||
(#match? @function.builtin "^(Byte|Short|Int|Long|UByte|UShort|UInt|ULong|Float|Double|Boolean|Char|String|Array|ByteArray|ShortArray|IntArray|LongArray|UByteArray|UShortArray|UIntArray|ULongArray|FloatArray|DoubleArray|BooleanArray|CharArray|Map|Set|List|EmptyMap|EmptySet|EmptyList|MutableMap|MutableSet|MutableList)$"))
|
(#match? @type.builtin "^(Byte|Short|Int|Long|UByte|UShort|UInt|ULong|Float|Double|Boolean|Char|String|Array|ByteArray|ShortArray|IntArray|LongArray|UByteArray|UShortArray|UIntArray|ULongArray|FloatArray|DoubleArray|BooleanArray|CharArray|Map|Set|List|EmptyMap|EmptySet|EmptyList|MutableMap|MutableSet|MutableList)$"))
|
||||||
|
|
||||||
|
(type_parameter
|
||||||
|
(type_identifier) @type.parameter)
|
||||||
|
|
||||||
(type_identifier) @type
|
(type_identifier) @type
|
||||||
|
|
||||||
|
15
runtime/queries/kotlin/locals.scm
Normal file
15
runtime/queries/kotlin/locals.scm
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
; Scopes
|
||||||
|
|
||||||
|
[
|
||||||
|
(class_declaration)
|
||||||
|
(function_declaration)
|
||||||
|
] @local.scope
|
||||||
|
|
||||||
|
; Definitions
|
||||||
|
|
||||||
|
(type_parameter
|
||||||
|
(type_identifier) @local.definition)
|
||||||
|
|
||||||
|
; References
|
||||||
|
|
||||||
|
(type_identifier) @local.reference
|
@ -8,6 +8,8 @@
|
|||||||
|
|
||||||
[(class_name) (class_type_name) (type_constructor)] @type
|
[(class_name) (class_type_name) (type_constructor)] @type
|
||||||
|
|
||||||
|
(type_variable) @type.parameter
|
||||||
|
|
||||||
[(constructor_name) (tag)] @constructor
|
[(constructor_name) (tag)] @constructor
|
||||||
|
|
||||||
; Functions
|
; Functions
|
||||||
|
Loading…
Reference in New Issue
Block a user