diff options
| author | dvic <info@dvic.io> | 2023-08-14 20:59:27 +0200 |
|---|---|---|
| committer | Christian Clason <c.clason@uni-graz.at> | 2023-08-15 11:13:33 +0200 |
| commit | 11d79aa0f731439f2cd05579a64ac13857002f16 (patch) | |
| tree | 78f4bc6e0e2dd91cec09b22ed2dae682a24134ca | |
| parent | Update parsers: arduino, cuda, glsl, hlsl, objc, promql, wing (diff) | |
| download | nvim-treesitter-11d79aa0f731439f2cd05579a64ac13857002f16.tar nvim-treesitter-11d79aa0f731439f2cd05579a64ac13857002f16.tar.gz nvim-treesitter-11d79aa0f731439f2cd05579a64ac13857002f16.tar.bz2 nvim-treesitter-11d79aa0f731439f2cd05579a64ac13857002f16.tar.lz nvim-treesitter-11d79aa0f731439f2cd05579a64ac13857002f16.tar.xz nvim-treesitter-11d79aa0f731439f2cd05579a64ac13857002f16.tar.zst nvim-treesitter-11d79aa0f731439f2cd05579a64ac13857002f16.zip | |
Fix HEEx directive injections
| -rw-r--r-- | queries/heex/injections.scm | 29 |
1 files changed, 20 insertions, 9 deletions
diff --git a/queries/heex/injections.scm b/queries/heex/injections.scm index 1aa822197..403697acb 100644 --- a/queries/heex/injections.scm +++ b/queries/heex/injections.scm @@ -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 |
