Detailed changes
@@ -7989,6 +7989,16 @@ dependencies = [
"tree-sitter",
]
+[[package]]
+name = "tree-sitter-elm"
+version = "5.6.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ec83a2e1cfc69d03c8e73636e95662d6c6728539538d341b21251a77039fb94e"
+dependencies = [
+ "cc",
+ "tree-sitter",
+]
+
[[package]]
name = "tree-sitter-embedded-template"
version = "0.20.0"
@@ -9543,6 +9553,7 @@ dependencies = [
"tree-sitter-cpp",
"tree-sitter-css",
"tree-sitter-elixir",
+ "tree-sitter-elm",
"tree-sitter-embedded-template",
"tree-sitter-go",
"tree-sitter-heex",
@@ -112,6 +112,7 @@ tree-sitter-c = "0.20.1"
tree-sitter-cpp = "0.20.0"
tree-sitter-css = { git = "https://github.com/tree-sitter/tree-sitter-css", rev = "769203d0f9abe1a9a691ac2b9fe4bb4397a73c51" }
tree-sitter-elixir = { git = "https://github.com/elixir-lang/tree-sitter-elixir", rev = "4ba9dab6e2602960d95b2b625f3386c27e08084e" }
+tree-sitter-elm = "5.6.4"
tree-sitter-embedded-template = "0.20.0"
tree-sitter-go = { git = "https://github.com/tree-sitter/tree-sitter-go", rev = "aeb2f33b366fd78d5789ff104956ce23508b85db" }
tree-sitter-heex = { git = "https://github.com/phoenixframework/tree-sitter-heex", rev = "2e1348c3cf2c9323e87c2744796cf3f3868aa82a" }
@@ -109,6 +109,7 @@ tree-sitter-c.workspace = true
tree-sitter-cpp.workspace = true
tree-sitter-css.workspace = true
tree-sitter-elixir.workspace = true
+tree-sitter-elm.workspace = true
tree-sitter-embedded-template.workspace = true
tree-sitter-go.workspace = true
tree-sitter-heex.workspace = true
@@ -152,6 +152,7 @@ pub fn init(languages: Arc<LanguageRegistry>, node_runtime: Arc<NodeRuntime>) {
tree_sitter_php::language(),
vec![Arc::new(php::IntelephenseLspAdapter::new(node_runtime))],
);
+ language("elm", tree_sitter_elm::language(), vec![]);
}
#[cfg(any(test, feature = "test-support"))]
@@ -0,0 +1,11 @@
+name = "Elm"
+path_suffixes = ["elm"]
+line_comment = "-- "
+block_comment = ["{- ", " -}"]
+brackets = [
+ { start = "{", end = "}", close = true, newline = true },
+ { start = "[", end = "]", close = true, newline = true },
+ { start = "(", end = ")", close = true, newline = true },
+ { start = "\"", end = "\"", close = true, newline = false, not_in = ["string"] },
+ { start = "'", end = "'", close = true, newline = false, not_in = ["string", "comment"] },
+]
@@ -0,0 +1,71 @@
+[
+ "if"
+ "then"
+ "else"
+ "let"
+ "in"
+ (case)
+ (of)
+ (backslash)
+ (as)
+ (port)
+ (exposing)
+ (alias)
+ (import)
+ (module)
+ (type)
+ ] @keyword
+
+[
+ (arrow)
+ (eq)
+ (operator_identifier)
+ (colon)
+] @operator
+
+(type_annotation(lower_case_identifier) @function)
+(port_annotation(lower_case_identifier) @function)
+(function_declaration_left(lower_case_identifier) @function.definition)
+(function_call_expr target: (value_expr) @identifier)
+
+(exposed_value(lower_case_identifier) @function)
+(exposed_type(upper_case_identifier) @type)
+
+(field_access_expr(value_expr(value_qid)) @identifier)
+(lower_pattern) @variable
+(record_base_identifier) @identifier
+
+[
+ "("
+ ")"
+] @punctuation.bracket
+
+[
+ "|"
+ ","
+] @punctuation.delimiter
+
+(number_constant_expr) @constant
+
+(type_declaration(upper_case_identifier) @type)
+(type_ref) @type
+(type_alias_declaration name: (upper_case_identifier) @type)
+
+(union_variant(upper_case_identifier) @variant)
+(union_pattern) @variant
+(value_expr(upper_case_qid(upper_case_identifier)) @type)
+
+[
+ (line_comment)
+ (block_comment)
+] @comment
+
+(string_escape) @string.escape
+
+[
+ (open_quote)
+ (close_quote)
+ (regular_string_part)
+ (open_char)
+ (close_char)
+] @string
@@ -0,0 +1,2 @@
+((glsl_content) @content
+ (#set! "language" "glsl"))