aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-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 000000000..1edbabd8f
--- /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 000000000..43a5676b6
--- /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