Skip to content

Commit 69bda35

Browse files
Feat: Add Kotlin Support for language paraer (RooCodeInc#2121)
* feat: Add Kotlin support to the tree-sitter parser * fix: Improve Define file for kotlin * Add Changeset * Add kotlin tree-sitter-wasm --------- Co-authored-by: Saoud Rizwan <[email protected]>
1 parent e3b87ae commit 69bda35

File tree

6 files changed

+36
-0
lines changed

6 files changed

+36
-0
lines changed

.changeset/fair-days-heal.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"claude-dev": patch
3+
---
4+
5+
Add Kotlin Language support in Tree-sitter parser

esbuild.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@ const copyWasmFiles = {
5252
"java",
5353
"php",
5454
"swift",
55+
"kotlin",
5556
]
5657

5758
languages.forEach((lang) => {

src/services/tree-sitter/index.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,8 @@ function separateFiles(allFiles: string[]): {
8484
"java",
8585
"php",
8686
"swift",
87+
// Kotlin
88+
"kt",
8789
].map((e) => `.${e}`)
8890
const filesToParse = allFiles.filter((file) => extensions.includes(path.extname(file))).slice(0, 50) // 50 files max
8991
const remainingFiles = allFiles.filter((file) => !filesToParse.includes(file))

src/services/tree-sitter/languageParser.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ import {
1313
javaQuery,
1414
phpQuery,
1515
swiftQuery,
16+
kotlinQuery,
1617
} from "./queries"
1718

1819
export interface LanguageParser {
@@ -120,6 +121,10 @@ export async function loadRequiredLanguageParsers(filesToParse: string[]): Promi
120121
language = await loadLanguage("swift")
121122
query = language.query(swiftQuery)
122123
break
124+
case "kt":
125+
language = await loadLanguage("kotlin")
126+
query = language.query(kotlinQuery)
127+
break
123128
default:
124129
throw new Error(`Unsupported language: ${ext}`)
125130
}

src/services/tree-sitter/queries/index.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,3 +10,4 @@ export { default as cQuery } from "./c"
1010
export { default as csharpQuery } from "./c-sharp"
1111
export { default as goQuery } from "./go"
1212
export { default as swiftQuery } from "./swift"
13+
export { default as kotlinQuery } from "./kotlin"
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
export default `
2+
(class_declaration
3+
name: (simple_identifier) @name.definition.class) @definition.class
4+
5+
(function_declaration
6+
name: (simple_identifier) @name.definition.function) @definition.function
7+
8+
(interface_declaration
9+
name: (simple_identifier) @name.definition.interface) @definition.interface
10+
11+
(object_declaration
12+
name: (simple_identifier) @name.definition.object) @definition.object
13+
14+
(property_declaration
15+
name: (simple_identifier) @name.definition.property) @definition.property
16+
17+
(enum_declaration
18+
name: (simple_identifier) @name.definition.enum) @definition.enum
19+
20+
(typealias_declaration
21+
name: (simple_identifier) @name.definition.typealias) @definition.typealias
22+
)`

0 commit comments

Comments
 (0)