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-java",
"tree-sitter-javascript", "tree-sitter-javascript",
"tree-sitter-json", "tree-sitter-json",
"tree-sitter-kotlin",
"tree-sitter-lua", "tree-sitter-lua",
"tree-sitter-md", "tree-sitter-md",
"tree-sitter-objc", "tree-sitter-objc",
@ -2424,6 +2425,16 @@ dependencies = [
"tree-sitter", "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]] [[package]]
name = "tree-sitter-lua" name = "tree-sitter-lua"
version = "0.0.19" version = "0.0.19"

View file

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

View file

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

View file

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