From da8071047a8d48cb93dfb4a6ab9b8b2d08efb0dd Mon Sep 17 00:00:00 2001 From: Clay Date: Mon, 5 Sep 2022 03:49:41 -1000 Subject: [PATCH] Elixir: update tree-sitter queries (#3645) --- runtime/queries/elixir/injections.scm | 50 +++++++++++++++++++++----- runtime/queries/elixir/textobjects.scm | 2 +- 2 files changed, 43 insertions(+), 9 deletions(-) diff --git a/runtime/queries/elixir/injections.scm b/runtime/queries/elixir/injections.scm index 5c58a8630..4853b84b6 100644 --- a/runtime/queries/elixir/injections.scm +++ b/runtime/queries/elixir/injections.scm @@ -1,20 +1,16 @@ +; Elixir Code Comments ((comment) @injection.content (#set! injection.language "comment")) +; Elixir Regular Expressions ((sigil (sigil_name) @_sigil_name (quoted_content) @injection.content) - (#match? @_sigil_name "^(r|R)$") + (#match? @_sigil_name "^(R|r)$") (#set! injection.language "regex") (#set! injection.combined)) -((sigil - (sigil_name) @_sigil_name - (quoted_content) @injection.content) - (#eq? @_sigil_name "H") - (#set! injection.language "heex") - (#set! injection.combined)) - +; Elixir Markdown Documentation (unary_operator operator: "@" operand: (call @@ -23,3 +19,41 @@ (string (quoted_content) @injection.content) (sigil (quoted_content) @injection.content) ])) (#set! injection.language "markdown")) + +; Zigler Sigils +((sigil + (sigil_name) @_sigil_name + (quoted_content) @injection.content) + (#match? @_sigil_name "^(Z|z)$") + (#set! injection.language "zig") + (#set! injection.combined)) + +; Jason Sigils +((sigil + (sigil_name) @_sigil_name + (quoted_content) @injection.content) + (#match? @_sigil_name "^(J|j)$") + (#set! injection.language "json") + (#set! injection.combined)) + +; Phoenix Live View HEEx Sigils +((sigil + (sigil_name) @_sigil_name + (quoted_content) @injection.content) + (#eq? @_sigil_name "H") + (#set! injection.language "heex") + (#set! injection.combined)) + +; Phoenix Live View Component Macros +(call + (identifier) @_identifier + (arguments + (atom)+ + (keywords (pair + ((keyword) @_keyword (#eq? @_keyword "doc: ")) + [ + (string (quoted_content) @injection.content) + (sigil (quoted_content) @injection.content) + ])) + (#match? @_identifier "^(attr|slot)$") + (#set! injection.language "markdown"))) diff --git a/runtime/queries/elixir/textobjects.scm b/runtime/queries/elixir/textobjects.scm index cc1bee990..ab4565845 100644 --- a/runtime/queries/elixir/textobjects.scm +++ b/runtime/queries/elixir/textobjects.scm @@ -32,4 +32,4 @@ (do_block (_)* @test.inside)?) (#match? @_keyword "^(test|describe)$")) @test.around -(comment) @comment.around @comment.inside +(comment)+ @comment.around @comment.inside