summaryrefslogtreecommitdiff
path: root/queries
diff options
context:
space:
mode:
authorSal Bakraa <SalBakraa@gmail.com>2022-01-06 02:20:42 +0300
committerStephan Seitz <stephan.seitz@fau.de>2022-01-08 20:01:00 +0100
commit2a50ac94bbd5186006b2957ef013a20a5712c2ff (patch)
tree35f7b237e769ac4e1268bef7797e41bd6dfc3a62 /queries
parent886ae5b87eb4ab3a153c6e9feb3c05e91ee47619 (diff)
feat(kotlin): include a folds and a locals query
Diffstat (limited to 'queries')
-rw-r--r--queries/kotlin/folds.scm17
-rw-r--r--queries/kotlin/locals.scm83
2 files changed, 100 insertions, 0 deletions
diff --git a/queries/kotlin/folds.scm b/queries/kotlin/folds.scm
new file mode 100644
index 00000000..1edbabd8
--- /dev/null
+++ b/queries/kotlin/folds.scm
@@ -0,0 +1,17 @@
+[
+ (import_list)
+
+ (when_structure_body)
+ (control_structure_body)
+
+ (lambda_literal)
+ (function_body)
+ (primary_constructor)
+ (secondary_constructor)
+ (anonymous_initializer)
+
+ (class_body)
+ (enum_class_body)
+
+ (interpolated_expression)
+] @fold
diff --git a/queries/kotlin/locals.scm b/queries/kotlin/locals.scm
new file mode 100644
index 00000000..43a5676b
--- /dev/null
+++ b/queries/kotlin/locals.scm
@@ -0,0 +1,83 @@
+;;; Imports
+
+(package_header
+ . (identifier) @definiton.namespace)
+
+(import_header
+ (identifier
+ (simple_identifier) @definition.import .)
+ (import_alias
+ (type_identifier) @definition.import)?)
+
+;;; Functions
+
+(function_declaration
+ . (simple_identifier) @definition.function
+ (#set! "definition.function.scope" "parent"))
+
+(class_body
+ (function_declaration
+ . (simple_identifier) @definition.method)
+ (#set! "definition.method.scope" "parent"))
+
+;;; Variables
+
+(function_declaration
+ (parameter
+ (simple_identifier) @definition.parameter))
+
+(lambda_literal
+ (lambda_parameters
+ (variable_declaration
+ (simple_identifier) @definition.parameter)))
+
+(class_body
+ (property_declaration
+ (variable_declaration
+ (simple_identifier) @definition.field)))
+
+(class_declaration
+ (primary_constructor
+ (class_parameter
+ (simple_identifier) @definition.field)))
+
+(enum_class_body
+ (enum_entry
+ (simple_identifier) @definition.field))
+
+(variable_declaration
+ (simple_identifier) @definition.var)
+
+;;; Types
+
+(class_declaration
+ (type_identifier) @definition.type
+ (#set! "definition.type.scope" "parent"))
+
+(type_alias
+ (type_identifier) @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)
+] @scope