From 2532937ba1cf22d6d3523e6a3008c58a03452364 Mon Sep 17 00:00:00 2001 From: Clay Date: Tue, 25 Jan 2022 08:52:51 -0800 Subject: [PATCH] Add tree-sitter-eex parser for (L)EEx files (#2351) --- lua/nvim-treesitter/parsers.lua | 10 ++++++++++ queries/eex/highlights.scm | 15 +++++++++++++++ queries/eex/injections.scm | 5 +++++ queries/elixir/injections.scm | 5 +++++ 4 files changed, 35 insertions(+) create mode 100644 queries/eex/highlights.scm create mode 100644 queries/eex/injections.scm diff --git a/lua/nvim-treesitter/parsers.lua b/lua/nvim-treesitter/parsers.lua index cb9955850..a2d030c27 100644 --- a/lua/nvim-treesitter/parsers.lua +++ b/lua/nvim-treesitter/parsers.lua @@ -343,6 +343,16 @@ list.surface = { maintainers = { "@connorlay" }, } +list.eex = { + install_info = { + url = "https://github.com/connorlay/tree-sitter-eex", + files = { "src/parser.c" }, + branch = "main", + }, + filetype = "eex", + maintainers = { "@connorlay" }, +} + list.heex = { install_info = { url = "https://github.com/connorlay/tree-sitter-heex", diff --git a/queries/eex/highlights.scm b/queries/eex/highlights.scm new file mode 100644 index 000000000..781b39466 --- /dev/null +++ b/queries/eex/highlights.scm @@ -0,0 +1,15 @@ +[ + "%>" + "--%>" + "<%!--" + "<%" + "<%#" + "<%%=" + "<%=" +] @tag.delimiter + +; EEx comments are highlighted as such +(comment) @comment + +; Tree-sitter parser errors +(ERROR) @error diff --git a/queries/eex/injections.scm b/queries/eex/injections.scm new file mode 100644 index 000000000..f43206f55 --- /dev/null +++ b/queries/eex/injections.scm @@ -0,0 +1,5 @@ +; EEx expressions are Elixir +(expression) @elixir + +; EEx expressions can span multiple interpolated lines +(partial_expression) @elixir @combined diff --git a/queries/elixir/injections.scm b/queries/elixir/injections.scm index c4c12cc1a..423fddea7 100644 --- a/queries/elixir/injections.scm +++ b/queries/elixir/injections.scm @@ -24,6 +24,11 @@ (#eq? @_sigil_name "F")) ; Zigler +(sigil + (sigil_name) @_sigil_name + (quoted_content) @eex +(#any-of? @_sigil_name "E" "L")) + (sigil (sigil_name) @_sigil_name (quoted_content) @zig