mirror of
https://github.com/helix-editor/helix.git
synced 2024-11-25 10:56:19 +04:00
languages: add templ (#8540)
This commit is contained in:
parent
8d44459c6a
commit
764715a6c0
@ -155,6 +155,7 @@
|
|||||||
| t32 | ✓ | | | |
|
| t32 | ✓ | | | |
|
||||||
| tablegen | ✓ | ✓ | ✓ | |
|
| tablegen | ✓ | ✓ | ✓ | |
|
||||||
| task | ✓ | | | |
|
| task | ✓ | | | |
|
||||||
|
| templ | ✓ | | | `templ` |
|
||||||
| tfvars | ✓ | | ✓ | `terraform-ls` |
|
| tfvars | ✓ | | ✓ | `terraform-ls` |
|
||||||
| todotxt | ✓ | | | |
|
| todotxt | ✓ | | | |
|
||||||
| toml | ✓ | | | `taplo` |
|
| toml | ✓ | | | `taplo` |
|
||||||
|
@ -74,6 +74,7 @@ svlangserver = { command = "svlangserver", args = [] }
|
|||||||
swipl = { command = "swipl", args = [ "-g", "use_module(library(lsp_server))", "-g", "lsp_server:main", "-t", "halt", "--", "stdio" ] }
|
swipl = { command = "swipl", args = [ "-g", "use_module(library(lsp_server))", "-g", "lsp_server:main", "-t", "halt", "--", "stdio" ] }
|
||||||
tailwindcss-ls = { command = "tailwindcss-language-server", args = ["--stdio"] }
|
tailwindcss-ls = { command = "tailwindcss-language-server", args = ["--stdio"] }
|
||||||
taplo = { command = "taplo", args = ["lsp", "stdio"] }
|
taplo = { command = "taplo", args = ["lsp", "stdio"] }
|
||||||
|
templ = { command = "templ", args = ["lsp"] }
|
||||||
terraform-ls = { command = "terraform-ls", args = ["serve"] }
|
terraform-ls = { command = "terraform-ls", args = ["serve"] }
|
||||||
texlab = { command = "texlab" }
|
texlab = { command = "texlab" }
|
||||||
vala-language-server = { command = "vala-language-server" }
|
vala-language-server = { command = "vala-language-server" }
|
||||||
@ -2998,3 +2999,16 @@ roots = []
|
|||||||
[[grammar]]
|
[[grammar]]
|
||||||
name = "gemini"
|
name = "gemini"
|
||||||
source = { git = "https://git.sr.ht/~sfr/tree-sitter-gemini", rev = "3cc5e4bdf572d5df4277fc2e54d6299bd59a54b3" }
|
source = { git = "https://git.sr.ht/~sfr/tree-sitter-gemini", rev = "3cc5e4bdf572d5df4277fc2e54d6299bd59a54b3" }
|
||||||
|
|
||||||
|
[[language]]
|
||||||
|
name = "templ"
|
||||||
|
scope = "source.templ"
|
||||||
|
file-types = ["templ"]
|
||||||
|
roots = ["go.work", "go.mod"]
|
||||||
|
comment-token = "//"
|
||||||
|
indent = { tab-width = 2, unit = " " }
|
||||||
|
language-servers = [ "templ" ]
|
||||||
|
|
||||||
|
[[grammar]]
|
||||||
|
name = "templ"
|
||||||
|
source = { git = "https://github.com/vrischmann/tree-sitter-templ", rev = "ea56ac0655243490a4929a988f4eaa91dfccc995" }
|
||||||
|
99
runtime/queries/templ/highlights.scm
Normal file
99
runtime/queries/templ/highlights.scm
Normal file
@ -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
|
4
runtime/queries/templ/injections.scm
Normal file
4
runtime/queries/templ/injections.scm
Normal file
@ -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"))
|
Loading…
Reference in New Issue
Block a user