From f75d71844f27a13b313603af42c58a5c6d6b608e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kristoffer=20Plagborg=20Bak=20S=C3=B8rensen?= <57013304+kpbaks@users.noreply.github.com> Date: Sun, 29 Jun 2025 00:00:58 +0200 Subject: [PATCH] queries: inject nix into `lib.literalExression` string contents (#13851) --- runtime/queries/nix/injections.scm | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/runtime/queries/nix/injections.scm b/runtime/queries/nix/injections.scm index ce53d39e3..f9e0267bf 100644 --- a/runtime/queries/nix/injections.scm +++ b/runtime/queries/nix/injections.scm @@ -255,4 +255,18 @@ (#set! injection.combined)) ((indented_string_expression (string_fragment) @injection.shebang @injection.content) - (#set! injection.combined)) \ No newline at end of file + (#set! injection.combined)) + +; string contents of lib.literalExpression is nix code +((apply_expression + function: [ + (select_expression) ; `lib.literalExpression` + (variable_expression) ; `literalExpression` this is the case when the symbol is brougth into scope e.g. `let inherit (lib) literalExpression; in` + ] @_func + argument: [ + (indented_string_expression (string_fragment) @injection.content) ; lib.literalExpression ''...'' + (string_expression (string_fragment) @injection.content) ; lib.literalExpression "..." + ]) + (#any-of? @_func "lib.literalExpression" "literalExpression") + (#set! injection.language "nix") + (#set! injection.combined))