mirror of
https://github.com/nvim-treesitter/nvim-treesitter.git
synced 2026-07-01 19:17:02 -04:00
Fix HEEx directive injections
This commit is contained in:
parent
93ee00cd9d
commit
11d79aa0f7
1 changed files with 20 additions and 9 deletions
|
|
@ -1,14 +1,25 @@
|
|||
; HEEx directives can span multiple interpolated lines of Elixir
|
||||
(directive [
|
||||
(expression_value)
|
||||
(partial_expression_value)
|
||||
] @injection.content
|
||||
; directives are standalone tags like '<%= @x %>'
|
||||
;
|
||||
; partial_expression_values are elixir code that is part of an expression that
|
||||
; spans multiple directive nodes, so they must be combined. For example:
|
||||
; <%= if true do %>
|
||||
; <p>hello, tree-sitter!</p>
|
||||
; <% end %>
|
||||
(directive
|
||||
(partial_expression_value) @injection.content
|
||||
(#set! injection.language "elixir")
|
||||
(#set! injection.combined))
|
||||
(#set! injection.include-children)
|
||||
(#set! injection.combined))
|
||||
|
||||
; HEEx Elixir expressions are always within a tag or component
|
||||
(expression
|
||||
(expression_value) @injection.content
|
||||
; Regular expression_values do not need to be combined
|
||||
((directive
|
||||
(expression_value) @injection.content)
|
||||
(#set! injection.language "elixir"))
|
||||
|
||||
; expressions live within HTML tags, and do not need to be combined
|
||||
; <link href={ Routes.static_path(..) } />
|
||||
(expression
|
||||
(expression_value) @injection.content
|
||||
(#set! injection.language "elixir"))
|
||||
|
||||
; HEEx comments
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue