From 2a50ac94bbd5186006b2957ef013a20a5712c2ff Mon Sep 17 00:00:00 2001 From: Sal Bakraa Date: Thu, 6 Jan 2022 02:20:42 +0300 Subject: [PATCH] feat(kotlin): include a folds and a locals query --- queries/kotlin/folds.scm | 17 ++++++++ queries/kotlin/locals.scm | 83 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 100 insertions(+) create mode 100644 queries/kotlin/folds.scm create mode 100644 queries/kotlin/locals.scm 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