aboutsummaryrefslogtreecommitdiffstats
path: root/runtime/queries/kotlin/locals.scm
blob: 330803f1b6dcfff5bd6cdcbbfb45c1da659fe954 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
; Imports
(package_header
  .
  (identifier) @local.definition.namespace)

(import_header
  (identifier
    (simple_identifier) @local.definition.import .)
  (import_alias
    (type_identifier) @local.definition.import)?)

; Functions
(function_declaration
  .
  (simple_identifier) @local.definition.function
  (#set! definition.function.scope "parent"))

(class_body
  (function_declaration
    .
    (simple_identifier) @local.definition.method)
  (#set! definition.method.scope "parent"))

; Variables
(function_declaration
  (function_value_parameters
    (parameter
      (simple_identifier) @local.definition.parameter)))

(lambda_literal
  (lambda_parameters
    (variable_declaration
      (simple_identifier) @local.definition.parameter)))

; NOTE: temporary fix for treesitter bug that causes delay in file opening
;(class_body
;  (property_declaration
;    (variable_declaration
;      (simple_identifier) @local.definition.field)))
(class_declaration
  (primary_constructor
    (class_parameter
      (simple_identifier) @local.definition.field)))

(enum_class_body
  (enum_entry
    (simple_identifier) @local.definition.field))

(variable_declaration
  (simple_identifier) @local.definition.var)

; Types
(class_declaration
  (type_identifier) @local.definition.type
  (#set! definition.type.scope "parent"))

(type_alias
  (type_identifier) @local.definition.type
  (#set! definition.type.scope "parent"))

; Scopes
[
  (if_expression)
  (when_expression)
  (when_entry)
  (for_statement)
  (while_statement)
  (do_while_statement)
  (lambda_literal)
  (function_declaration)
  (primary_constructor)
  (secondary_constructor)
  (anonymous_initializer)
  (class_declaration)
  (enum_class_body)
  (enum_entry)
  (interpolated_expression)
] @local.scope