Unnamed repository; edit this file 'description' to name the repository.
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 <[email protected]> --------- Co-authored-by: Kirawi <[email protected]>
Jaakko Paju 2024-01-28
parent f0be0c6 · commit 9978d42
-rw-r--r--runtime/queries/scala/injections.scm16
1 files changed, 15 insertions, 1 deletions
diff --git a/runtime/queries/scala/injections.scm b/runtime/queries/scala/injections.scm
index 321c90ad..1ad68557 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"))
+