add support for Kotlin language (#52)

This commit is contained in:
Johan von Forstner 2023-12-15 15:01:40 +01:00 committed by GitHub
parent 6c4e0e4176
commit b1d0eb4ffe
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 22 additions and 0 deletions

11
Cargo.lock generated
View file

@ -997,6 +997,7 @@ dependencies = [
"tree-sitter-java",
"tree-sitter-javascript",
"tree-sitter-json",
"tree-sitter-kotlin",
"tree-sitter-lua",
"tree-sitter-md",
"tree-sitter-objc",
@ -2424,6 +2425,16 @@ dependencies = [
"tree-sitter",
]
[[package]]
name = "tree-sitter-kotlin"
version = "0.3.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1b5f367466210220a194a2d8831fc12d15aa13305e7bcdf2dba47714aa328e86"
dependencies = [
"cc",
"tree-sitter",
]
[[package]]
name = "tree-sitter-lua"
version = "0.0.19"

View file

@ -39,6 +39,7 @@ tree-sitter-html = "0.19"
tree-sitter-java = "0.20"
tree-sitter-javascript = "0.20"
tree-sitter-json = "0.20"
tree-sitter-kotlin = "0.3.1"
tree-sitter-lua = "0.0.19"
tree-sitter-md = "0.1"
tree-sitter-objc = "3"

View file

@ -85,6 +85,13 @@ fn get_parser(language_id: LanguageId) -> Result<Parser> {
.map_err(internal_error)?;
Ok(parser)
}
LanguageId::Kotlin => {
let mut parser = Parser::new();
parser
.set_language(tree_sitter_kotlin::language())
.map_err(internal_error)?;
Ok(parser)
}
LanguageId::Lua => {
let mut parser = Parser::new();
parser

View file

@ -15,6 +15,7 @@ pub(crate) enum LanguageId {
JavaScript,
JavaScriptReact,
Json,
Kotlin,
Lua,
Markdown,
ObjectiveC,
@ -44,6 +45,7 @@ impl fmt::Display for LanguageId {
Self::JavaScript => write!(f, "javascript"),
Self::JavaScriptReact => write!(f, "javascriptreact"),
Self::Json => write!(f, "json"),
Self::Kotlin => write!(f, "kotlin"),
Self::Lua => write!(f, "lua"),
Self::Markdown => write!(f, "markdown"),
Self::ObjectiveC => write!(f, "objective-c"),
@ -84,6 +86,7 @@ impl From<&str> for LanguageId {
"javascript" => Self::JavaScript,
"javascriptreact" => Self::JavaScriptReact,
"json" => Self::Json,
"kotlin" => Self::Kotlin,
"lua" => Self::Lua,
"markdown" => Self::Markdown,
"objective-c" => Self::ObjectiveC,