From 293c350fb7e031f8b15a3ab70cc86d7fc517c174 Mon Sep 17 00:00:00 2001 From: Paul Walker Date: Fri, 17 Jan 2025 19:33:40 -0500 Subject: [PATCH] Add tags.scm for Kotlin --- aider/queries/tree-sitter-kotlin-tags.scm | 27 +++++++++++++++++++++++ tests/basic/test_repomap.py | 1 + tests/fixtures/languages/kotlin/test.kt | 16 ++++++++++++++ 3 files changed, 44 insertions(+) create mode 100644 aider/queries/tree-sitter-kotlin-tags.scm create mode 100644 tests/fixtures/languages/kotlin/test.kt diff --git a/aider/queries/tree-sitter-kotlin-tags.scm b/aider/queries/tree-sitter-kotlin-tags.scm new file mode 100644 index 000000000..9770a4c0e --- /dev/null +++ b/aider/queries/tree-sitter-kotlin-tags.scm @@ -0,0 +1,27 @@ +; Definitions + +(class_declaration + (type_identifier) @name.definition.class) @definition.class + +(function_declaration + (simple_identifier) @name.definition.function) @definition.function + +(object_declaration + (type_identifier) @name.definition.object) @definition.object + +; References + +(call_expression + [ + (simple_identifier) @name.reference.call + (navigation_expression + (navigation_suffix + (simple_identifier) @name.reference.call)) + ]) @reference.call + +(delegation_specifier + [ + (user_type) @name.reference.type + (constructor_invocation + (user_type) @name.reference.type) + ]) @reference.type diff --git a/tests/basic/test_repomap.py b/tests/basic/test_repomap.py index 6f47cee09..a007ba3f0 100644 --- a/tests/basic/test_repomap.py +++ b/tests/basic/test_repomap.py @@ -290,6 +290,7 @@ class TestRepoMapAllLanguages(unittest.TestCase): "elixir": ("ex", "Greeter"), "java": ("java", "Greeting"), "javascript": ("js", "Person"), + "kotlin": ("kt", "Greeting"), "ocaml": ("ml", "Greeter"), "php": ("php", "greet"), "python": ("py", "Person"), diff --git a/tests/fixtures/languages/kotlin/test.kt b/tests/fixtures/languages/kotlin/test.kt new file mode 100644 index 000000000..c3f9772ac --- /dev/null +++ b/tests/fixtures/languages/kotlin/test.kt @@ -0,0 +1,16 @@ +interface Greeting { + fun greet(name: String): String +} + +class Test : Greeting { + private val prefix = "Hello" + + override fun greet(name: String): String { + return "$prefix, $name!" + } +} + +fun main(args: Array) { + val greeter = Test() + println(greeter.greet("World")) +}