aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--queries/nix/injections.scm29
-rw-r--r--tests/query/injections/nix/test-nix-injections.nix70
2 files changed, 99 insertions, 0 deletions
diff --git a/queries/nix/injections.scm b/queries/nix/injections.scm
index d5e8483f4..26ba6e2da 100644
--- a/queries/nix/injections.scm
+++ b/queries/nix/injections.scm
@@ -188,3 +188,32 @@
])
(#match? @_func "(^|\\.)writeRust(Bin)?$")
(#set! injection.combined))
+
+; (nixosTest) testScript
+((binding
+ attrpath: (attrpath) @_attr_name
+ (#eq? @_attr_name "nodes"))
+ (binding
+ attrpath: (attrpath) @_func_name
+ (#eq? @_func_name "testScript")
+ (_
+ (string_fragment) @injection.content
+ (#set! injection.language "python")))
+ (#set! injection.combined))
+
+; home-manager Neovim plugin config
+(attrset_expression
+ (binding_set
+ (binding
+ attrpath: (attrpath) @_ty_attr
+ (_
+ (string_fragment) @_ty)
+ (#eq? @_ty_attr "type")
+ (#eq? @_ty "lua"))
+ (binding
+ attrpath: (attrpath) @_cfg_attr
+ (_
+ (string_fragment) @injection.content
+ (#set! injection.language "lua"))
+ (#eq? @_cfg_attr "config")))
+ (#set! injection.combined))
diff --git a/tests/query/injections/nix/test-nix-injections.nix b/tests/query/injections/nix/test-nix-injections.nix
new file mode 100644
index 000000000..86e9f975d
--- /dev/null
+++ b/tests/query/injections/nix/test-nix-injections.nix
@@ -0,0 +1,70 @@
+{ pkgs, stdenv }:
+# NOTE: This file is for testing queries. If evaluated with nix, this will probably error.
+{
+ regex = builtins.match "^.*[{](.+)[}].*$" "blahblah {something} blahblah" [ "something" ];
+
+ drv1 = stdenv.mkDerivation {
+ buildPhase = "mkdir $out";
+ installPhase = ''
+ echo "bar" > $out/foo.txt
+ '';
+ };
+
+ drv2 = pkgs.writeShellApplication {
+ name = "shellApp";
+ buildInputs = [];
+ text = ''
+ echo "Hello world!"
+ '';
+ };
+
+ drv3 = pkgs.runCommand "foo-bar" {} ''
+ mkir $out
+ echo "bar" > $out/foo.txt
+ '';
+
+ drv4 = pkgs.writeShellScriptBin "hello" ''
+ echo "Hello world!"
+ '';
+
+ drv5 = pkgs.writeFishBin "hello" ''
+ echo "Hello world!"
+ '';
+
+ drv6 = pkgs.writeHaskellBin "hello" ''
+ main :: IO ()
+ main = putStrLn "Hello world!"
+ '';
+
+ drv7 = pkgs.writeJSBin "hello" ''
+ console.log('Hello world!');
+ '';
+
+ drv8 = pkgs.writePerlBin "hello" ''
+ print("Hello world!\n");
+ '';
+
+ drv9 = pkgs.writePythonBin "hello" ''
+ print("Hello world!");
+ '';
+
+ drv10 = pkgs.writeRustBin "hello" ''
+ fn main() {
+ println!("Hello world!");
+ }
+ '';
+
+ drv11 = {
+ nodes = null;
+ testScript = ''
+ print("Hello world!");
+ '';
+ };
+
+ mod1 = {
+ type = "lua";
+ config = ''
+ require('nvim-treesitter.configs').setup()
+ '';
+ };
+}