From 764715a6c069754b852ed9e8d98aaf7efd88abe6 Mon Sep 17 00:00:00 2001 From: rsteube Date: Sat, 21 Oct 2023 14:15:18 +0200 Subject: languages: add templ (#8540) --- runtime/queries/templ/highlights.scm | 99 ++++++++++++++++++++++++++++++++++++ runtime/queries/templ/injections.scm | 4 ++ 2 files changed, 103 insertions(+) create mode 100644 runtime/queries/templ/highlights.scm create mode 100644 runtime/queries/templ/injections.scm (limited to 'runtime') diff --git a/runtime/queries/templ/highlights.scm b/runtime/queries/templ/highlights.scm new file mode 100644 index 00000000..e5b2ede0 --- /dev/null +++ b/runtime/queries/templ/highlights.scm @@ -0,0 +1,99 @@ +(package_identifier) @namespace + +(parameter_declaration (identifier) @variable.parameter) +(variadic_parameter_declaration (identifier) @variable.parameter) + +(function_declaration + name: (identifier) @function) + +(type_spec name: (type_identifier) @type) +(type_identifier) @type +(field_identifier) @variable.other.member +(identifier) @variable + +; Function calls + +(call_expression + function: (identifier) @function) + +(call_expression + function: (selector_expression + field: (field_identifier) @function)) + +; +; These are Templ specific +; + +(component_declaration + name: (component_identifier) @function) + +(tag_start) @tag +(tag_end) @tag +(self_closing_tag) @tag +(style_element) @tag + +(attribute + name: (attribute_name) @attribute) +(attribute + value: (quoted_attribute_value) @string) + +(element_text) @string.special +(style_element_text) @string.special + +(css_property + name: (css_property_name) @attribute) + +(expression) @function.method +(dynamic_class_attribute_value) @function.method + +(component_import + name: (component_identifier) @function) + +(component_render) @function + +[ + "@" +] @operator + +[ + "func" + "var" + "const" + "templ" + "css" + "type" + "struct" + "range" + "script" +] @keyword.storage.type + +[ + "return" +] @keyword.control.return + +[ + "import" + "package" +] @keyword.control.import + +[ + "else" + "case" + "switch" + "if" + "default" +] @keyword.control.conditional + +"for" @keyword.control.repeat + +[ + (interpreted_string_literal) + (raw_string_literal) + (rune_literal) +] @string + +; Comments + +(comment) @comment + +(element_comment) @comment diff --git a/runtime/queries/templ/injections.scm b/runtime/queries/templ/injections.scm new file mode 100644 index 00000000..4dd5a630 --- /dev/null +++ b/runtime/queries/templ/injections.scm @@ -0,0 +1,4 @@ +((script_block_text) @injection.content (#set! injection.language "javascript")) +((script_element_text) @injection.content (#set! injection.language "javascript")) + +((style_element_text) @injection.content (#set! injection.language "css")) -- cgit v1.2.3-70-g09d2