From 9978d421fe7237c74932c34263d91445728d65d1 Mon Sep 17 00:00:00 2001 From: Jaakko Paju Date: Sun, 28 Jan 2024 11:12:07 +0200 Subject: [PATCH] Include interpolated SQL strings in Scala injection queries (#9428) * Change Scala injection queries to include SQL strings * Include block comments in comment injection * Change #match predicate to #any-of Co-authored-by: Kirawi <67773714+kirawi@users.noreply.github.com> --------- Co-authored-by: Kirawi <67773714+kirawi@users.noreply.github.com> --- runtime/queries/scala/injections.scm | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/runtime/queries/scala/injections.scm b/runtime/queries/scala/injections.scm index 321c90add..1ad68557e 100644 --- a/runtime/queries/scala/injections.scm +++ b/runtime/queries/scala/injections.scm @@ -1,2 +1,16 @@ -((comment) @injection.content +([(comment) (block_comment)] @injection.content (#set! injection.language "comment")) + + +; TODO for some reason multiline string (triple quotes) interpolation works only if it contains interpolated value +; Matches these SQL interpolators: +; - Doobie: 'sql', 'fr' +; - Quill: 'sql', 'infix' +; - Slick: 'sql', 'sqlu' +(interpolated_string_expression + interpolator: + ((identifier) @interpolator + (#any-of? @interpolator "fr" "infix" "sql" "sqlu")) + (interpolated_string) @injection.content + (#set! injection.language "sql")) +