From a5aa6679ca25c2b32a3bb1485dccc620163cbfa0 Mon Sep 17 00:00:00 2001 From: Leandro Pereira Date: Tue, 19 Aug 2025 22:46:30 -0400 Subject: [PATCH 1/2] feat: inject sigils Based on #75 and #84 I'm assuming it's fine to inject more sigils. I've included ones from https://elixir-lang.org/blog/2025/08/18/interop-and-portability and a couple others that seems popular. --- queries/injections.scm | 74 +++++++++++++++++++++++++++++++++++++++++- 1 file changed, 73 insertions(+), 1 deletion(-) diff --git a/queries/injections.scm b/queries/injections.scm index 30749c0..75dac07 100644 --- a/queries/injections.scm +++ b/queries/injections.scm @@ -2,10 +2,26 @@ ((sigil (sigil_name) @_sigil_name (quoted_content) @injection.content) - (#any-of? @_sigil_name "H" "LVN") + (#any-of? @_sigil_name "H" "LVN" "HOLO") (#set! injection.language "heex") (#set! injection.combined)) +; Regex +((sigil + (sigil_name) @_sigil_name + (quoted_content) @injection.content) + (#any-of? @_sigil_name "r" "R") + (#set! injection.language "regex") + (#set! injection.combined)) + +; Json +((sigil + (sigil_name) @_sigil_name + (quoted_content) @injection.content) + (#any-of? @_sigil_name "j" "J") + (#set! injection.language "json") + (#set! injection.combined)) + ; SQL injection ((sigil (sigil_name) @_sigil_name @@ -13,3 +29,59 @@ (#eq? @_sigil_name "SQL") (#set! injection.language "sql") (#set! injection.combined)) + +; Surface +((sigil + (sigil_name) @_sigil_name + (quoted_content) @injection.content) + (#eq? @_sigil_name "F") + (#set! injection.language "surface") + (#set! injection.combined)) + +; Markdown +((sigil + (sigil_name) @_sigil_name + (quoted_content) @injection.content) + (#eq? @_sigil_name "MD") + (#set! injection.language "markdown") + (#set! injection.combined)) + +; Zig +((sigil + (sigil_name) @_sigil_name + (quoted_content) @injection.content) + (#any-of? @_sigil_name "z" "Z") + (#set! injection.language "zig") + (#set! injection.combined)) + +; Python +((sigil + (sigil_name) @_sigil_name + (quoted_content) @injection.content) + (#eq? @_sigil_name "PY") + (#set! injection.language "python") + (#set! injection.combined)) + +; JavaScript +((sigil + (sigil_name) @_sigil_name + (quoted_content) @injection.content) + (#eq? @_sigil_name "JS") + (#set! injection.language "javascript") + (#set! injection.combined)) + +; Svelte +((sigil + (sigil_name) @_sigil_name + (quoted_content) @injection.content) + (#eq? @_sigil_name "V") + (#set! injection.language "svelte") + (#set! injection.combined)) + +; Vue +((sigil + (sigil_name) @_sigil_name + (quoted_content) @injection.content) + (#eq? @_sigil_name "VUE") + (#set! injection.language "vue") + (#set! injection.combined)) From e0a5574dc7bddc13bceb42f907b8122950545bf2 Mon Sep 17 00:00:00 2001 From: Leandro Pereira Date: Wed, 20 Aug 2025 08:59:03 -0400 Subject: [PATCH 2/2] remove 3rd-party single letter sigils --- queries/injections.scm | 32 -------------------------------- 1 file changed, 32 deletions(-) diff --git a/queries/injections.scm b/queries/injections.scm index 75dac07..0138d24 100644 --- a/queries/injections.scm +++ b/queries/injections.scm @@ -14,14 +14,6 @@ (#set! injection.language "regex") (#set! injection.combined)) -; Json -((sigil - (sigil_name) @_sigil_name - (quoted_content) @injection.content) - (#any-of? @_sigil_name "j" "J") - (#set! injection.language "json") - (#set! injection.combined)) - ; SQL injection ((sigil (sigil_name) @_sigil_name @@ -30,14 +22,6 @@ (#set! injection.language "sql") (#set! injection.combined)) -; Surface -((sigil - (sigil_name) @_sigil_name - (quoted_content) @injection.content) - (#eq? @_sigil_name "F") - (#set! injection.language "surface") - (#set! injection.combined)) - ; Markdown ((sigil (sigil_name) @_sigil_name @@ -46,14 +30,6 @@ (#set! injection.language "markdown") (#set! injection.combined)) -; Zig -((sigil - (sigil_name) @_sigil_name - (quoted_content) @injection.content) - (#any-of? @_sigil_name "z" "Z") - (#set! injection.language "zig") - (#set! injection.combined)) - ; Python ((sigil (sigil_name) @_sigil_name @@ -70,14 +46,6 @@ (#set! injection.language "javascript") (#set! injection.combined)) -; Svelte -((sigil - (sigil_name) @_sigil_name - (quoted_content) @injection.content) - (#eq? @_sigil_name "V") - (#set! injection.language "svelte") - (#set! injection.combined)) - ; Vue ((sigil (sigil_name) @_sigil_name