diff options
| author | Clay <connorlay@pm.me> | 2021-08-15 09:40:02 -0700 |
|---|---|---|
| committer | Stephan Seitz <stephan.seitz@fau.de> | 2021-09-17 21:06:36 +0200 |
| commit | a9e32d0cc5641651bffc5bcc74efffa4ac6fcd13 (patch) | |
| tree | c6fb6e091621bd04778a6ee8af976e6f24b1b37d /queries | |
| parent | Update lockfile.json (diff) | |
| download | nvim-treesitter-a9e32d0cc5641651bffc5bcc74efffa4ac6fcd13.tar nvim-treesitter-a9e32d0cc5641651bffc5bcc74efffa4ac6fcd13.tar.gz nvim-treesitter-a9e32d0cc5641651bffc5bcc74efffa4ac6fcd13.tar.bz2 nvim-treesitter-a9e32d0cc5641651bffc5bcc74efffa4ac6fcd13.tar.lz nvim-treesitter-a9e32d0cc5641651bffc5bcc74efffa4ac6fcd13.tar.xz nvim-treesitter-a9e32d0cc5641651bffc5bcc74efffa4ac6fcd13.tar.zst nvim-treesitter-a9e32d0cc5641651bffc5bcc74efffa4ac6fcd13.zip | |
Add HEEx language support, add missing commentstrings
Diffstat (limited to 'queries')
| -rw-r--r-- | queries/elixir/injections.scm | 5 | ||||
| -rw-r--r-- | queries/heex/folds.scm | 5 | ||||
| -rw-r--r-- | queries/heex/highlights.scm | 35 | ||||
| -rw-r--r-- | queries/heex/indents.scm | 11 | ||||
| -rw-r--r-- | queries/heex/injections.scm | 7 | ||||
| -rw-r--r-- | queries/surface/folds.scm | 1 | ||||
| -rw-r--r-- | queries/surface/highlights.scm | 12 | ||||
| -rw-r--r-- | queries/surface/indents.scm | 2 |
8 files changed, 72 insertions, 6 deletions
diff --git a/queries/elixir/injections.scm b/queries/elixir/injections.scm index 02709add0..29fc58426 100644 --- a/queries/elixir/injections.scm +++ b/queries/elixir/injections.scm @@ -13,3 +13,8 @@ (sigil_start) @_start (sigil_content) @surface) (#eq? @_start "~F\"\"\"")) + +((sigil + (sigil_start) @_start + (sigil_content) @heex) + (#eq? @_start "~H\"\"\"")) diff --git a/queries/heex/folds.scm b/queries/heex/folds.scm new file mode 100644 index 000000000..414890e91 --- /dev/null +++ b/queries/heex/folds.scm @@ -0,0 +1,5 @@ +; HEEx folds similar to HTML +[ + (tag) + (component) +] @fold diff --git a/queries/heex/highlights.scm b/queries/heex/highlights.scm new file mode 100644 index 000000000..d9d0b0c66 --- /dev/null +++ b/queries/heex/highlights.scm @@ -0,0 +1,35 @@ +; HEEx text is highlighted as such +(text) @text + +; HEEx has two types of comments, both are highlighted as such +(comment) @comment + +; HEEx attributes are highlighted as HTML attributes +(attribute_name) @tag.attribute + +; Attributes are highlighted as strings +(quoted_attribute_value) @string + +; HEEx supports HTML tags and are highlighted as such +[ + "<" + ">" + "</" + "/>" + "<%" + "<%=" + "<%%=" + "<%#" + "%>" + "{" + "}" +] @tag.delimiter + +; HEEx tags are highlighted as HTML +(tag_name) @tag + +; HEEx components are highlighted as types (Elixir modules) +(component_name) @type + +; HEEx operators +["="] @operator diff --git a/queries/heex/indents.scm b/queries/heex/indents.scm new file mode 100644 index 000000000..02771b016 --- /dev/null +++ b/queries/heex/indents.scm @@ -0,0 +1,11 @@ +; HEEx indents like HTML +[ + (component) + (tag) +] @indent + +; Dedent at the end of each tag +[ + (end_tag) + (end_component) +] @branch diff --git a/queries/heex/injections.scm b/queries/heex/injections.scm new file mode 100644 index 000000000..de3b4202d --- /dev/null +++ b/queries/heex/injections.scm @@ -0,0 +1,7 @@ +; Directives are combined to support do blocks +(directive (expression_value) @elixir @combined) + +; Expressions are not combined, as they exist separately from do blocks +(expression (expression_value) @elixir) + +(comment) @comment diff --git a/queries/surface/folds.scm b/queries/surface/folds.scm index 57763a6e2..994f12e1e 100644 --- a/queries/surface/folds.scm +++ b/queries/surface/folds.scm @@ -1,5 +1,6 @@ ; Surface folds similar to HTML and includes blocks [ (tag) + (component) (block) ] @fold diff --git a/queries/surface/highlights.scm b/queries/surface/highlights.scm index 77b88c052..5cdaa977c 100644 --- a/queries/surface/highlights.scm +++ b/queries/surface/highlights.scm @@ -19,12 +19,12 @@ ; Surface supports HTML tags and are highlighted as such [ - (start_tag) - (end_tag) - (self_closing_tag) - (start_component) - (end_component) - (self_closing_component) + "<" + ">" + "</" + "/>" + "{" + "}" ] @tag.delimiter ; Expressions are similar to string interpolation, and are highloghted as such diff --git a/queries/surface/indents.scm b/queries/surface/indents.scm index ad6835752..dceea9c7e 100644 --- a/queries/surface/indents.scm +++ b/queries/surface/indents.scm @@ -1,5 +1,6 @@ ; Surface indents like HTML, with the addition of blocks [ + (component) (tag) (block) ] @indent @@ -7,6 +8,7 @@ ; Dedent at the end of each tag, as well as a subblock [ (end_tag) + (end_component) (end_block) (subblock) ] @branch |
