diff --git a/flake.lock b/flake.lock index 9a13b214..f2ae236e 100644 --- a/flake.lock +++ b/flake.lock @@ -19,9 +19,198 @@ "type": "github" } }, + "blink-cmp": { + "inputs": { + "devenv": "devenv", + "fenix": "fenix", + "flake-parts": "flake-parts_2", + "nixpkgs": "nixpkgs_5" + }, + "locked": { + "lastModified": 1728879229, + "narHash": "sha256-bvhLOM0NMx5S069uX2OecEpzYaR3hV4r8nCIPD0f0XQ=", + "owner": "saghen", + "repo": "blink.cmp", + "rev": "af68874f1b2e628e0c72ec27f5225d0c6b2d6820", + "type": "github" + }, + "original": { + "owner": "saghen", + "repo": "blink.cmp", + "type": "github" + } + }, + "cachix": { + "inputs": { + "devenv": "devenv_2", + "flake-compat": [ + "blink-cmp", + "devenv", + "flake-compat" + ], + "git-hooks": [ + "blink-cmp", + "devenv", + "pre-commit-hooks" + ], + "nixpkgs": [ + "blink-cmp", + "devenv", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1726520618, + "narHash": "sha256-jOsaBmJ/EtX5t/vbylCdS7pWYcKGmWOKg4QKUzKr6dA=", + "owner": "cachix", + "repo": "cachix", + "rev": "695525f9086542dfb09fde0871dbf4174abbf634", + "type": "github" + }, + "original": { + "owner": "cachix", + "repo": "cachix", + "type": "github" + } + }, + "cachix_2": { + "inputs": { + "devenv": "devenv_3", + "flake-compat": [ + "blink-cmp", + "devenv", + "cachix", + "devenv", + "flake-compat" + ], + "nixpkgs": [ + "blink-cmp", + "devenv", + "cachix", + "devenv", + "nixpkgs" + ], + "pre-commit-hooks": [ + "blink-cmp", + "devenv", + "cachix", + "devenv", + "pre-commit-hooks" + ] + }, + "locked": { + "lastModified": 1712055811, + "narHash": "sha256-7FcfMm5A/f02yyzuavJe06zLa9hcMHsagE28ADcmQvk=", + "owner": "cachix", + "repo": "cachix", + "rev": "02e38da89851ec7fec3356a5c04bc8349cae0e30", + "type": "github" + }, + "original": { + "owner": "cachix", + "repo": "cachix", + "type": "github" + } + }, + "devenv": { + "inputs": { + "cachix": "cachix", + "flake-compat": "flake-compat_2", + "nix": "nix_3", + "nixpkgs": "nixpkgs_4", + "pre-commit-hooks": "pre-commit-hooks_2" + }, + "locked": { + "lastModified": 1728113618, + "narHash": "sha256-oJj1d2VlFksl/45nBUtoM+lxxaWD3Z6yXBLR9vOp+2E=", + "owner": "cachix", + "repo": "devenv", + "rev": "a8495abab31ce52cd45d343caa760046c0c7ee74", + "type": "github" + }, + "original": { + "owner": "cachix", + "repo": "devenv", + "type": "github" + } + }, + "devenv_2": { + "inputs": { + "cachix": "cachix_2", + "flake-compat": [ + "blink-cmp", + "devenv", + "cachix", + "flake-compat" + ], + "nix": "nix_2", + "nixpkgs": [ + "blink-cmp", + "devenv", + "cachix", + "nixpkgs" + ], + "pre-commit-hooks": [ + "blink-cmp", + "devenv", + "cachix", + "git-hooks" + ] + }, + "locked": { + "lastModified": 1723156315, + "narHash": "sha256-0JrfahRMJ37Rf1i0iOOn+8Z4CLvbcGNwa2ChOAVrp/8=", + "owner": "cachix", + "repo": "devenv", + "rev": "ff5eb4f2accbcda963af67f1a1159e3f6c7f5f91", + "type": "github" + }, + "original": { + "owner": "cachix", + "repo": "devenv", + "type": "github" + } + }, + "devenv_3": { + "inputs": { + "flake-compat": [ + "blink-cmp", + "devenv", + "cachix", + "devenv", + "cachix", + "flake-compat" + ], + "nix": "nix", + "nixpkgs": "nixpkgs_2", + "poetry2nix": "poetry2nix", + "pre-commit-hooks": [ + "blink-cmp", + "devenv", + "cachix", + "devenv", + "cachix", + "pre-commit-hooks" + ] + }, + "locked": { + "lastModified": 1708704632, + "narHash": "sha256-w+dOIW60FKMaHI1q5714CSibk99JfYxm0CzTinYWr+Q=", + "owner": "cachix", + "repo": "devenv", + "rev": "2ee4450b0f4b95a1b90f2eb5ffea98b90e48c196", + "type": "github" + }, + "original": { + "owner": "cachix", + "ref": "python-rewrite", + "repo": "devenv", + "type": "github" + } + }, "devshell": { "inputs": { - "nixpkgs": "nixpkgs_2" + "nixpkgs": "nixpkgs_6" }, "locked": { "lastModified": 1722113426, @@ -60,9 +249,9 @@ }, "emacs-overlay": { "inputs": { - "flake-utils": "flake-utils", - "nixpkgs": "nixpkgs_3", - "nixpkgs-stable": "nixpkgs-stable" + "flake-utils": "flake-utils_3", + "nixpkgs": "nixpkgs_7", + "nixpkgs-stable": "nixpkgs-stable_2" }, "locked": { "lastModified": 1728205869, @@ -78,7 +267,46 @@ "type": "github" } }, + "fenix": { + "inputs": { + "nixpkgs": [ + "blink-cmp", + "nixpkgs" + ], + "rust-analyzer-src": "rust-analyzer-src" + }, + "locked": { + "lastModified": 1728196311, + "narHash": "sha256-JoDDlmjPj0sGo1beOo3bRh7BDppm0Kuet7I7BqTmSl4=", + "owner": "nix-community", + "repo": "fenix", + "rev": "26971356e387b5ec0578f52be1bbd82ecf6dbad4", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "fenix", + "type": "github" + } + }, "flake-compat": { + "flake": false, + "locked": { + "lastModified": 1673956053, + "narHash": "sha256-4gtG9iQuiKITOjNQQeQIpoIB6b16fm+504Ch3sNKLd8=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "35bb57c0c8d8b62bbfd284272c928ceb64ddbde9", + "type": "github" + }, + "original": { + "owner": "edolstra", + "repo": "flake-compat", + "type": "github" + } + }, + "flake-compat_2": { + "flake": false, "locked": { "lastModified": 1696426674, "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=", @@ -93,7 +321,22 @@ "type": "github" } }, - "flake-compat_2": { + "flake-compat_3": { + "locked": { + "lastModified": 1696426674, + "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33", + "type": "github" + }, + "original": { + "owner": "edolstra", + "repo": "flake-compat", + "type": "github" + } + }, + "flake-compat_4": { "locked": { "lastModified": 1696426674, "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=", @@ -108,6 +351,47 @@ } }, "flake-parts": { + "inputs": { + "nixpkgs-lib": [ + "blink-cmp", + "devenv", + "nix", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1712014858, + "narHash": "sha256-sB4SWl2lX95bExY2gMFG5HIzvva5AVMJd4Igm+GpZNw=", + "owner": "hercules-ci", + "repo": "flake-parts", + "rev": "9126214d0a59633752a136528f5f3b9aa8565b7d", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "flake-parts", + "type": "github" + } + }, + "flake-parts_2": { + "inputs": { + "nixpkgs-lib": "nixpkgs-lib" + }, + "locked": { + "lastModified": 1727826117, + "narHash": "sha256-K5ZLCyfO/Zj9mPFldf3iwS6oZStJcU4tSpiXTMYaaL0=", + "owner": "hercules-ci", + "repo": "flake-parts", + "rev": "3d04084d54bedc3d6b8b736c70ef449225c361b1", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "flake-parts", + "type": "github" + } + }, + "flake-parts_3": { "inputs": { "nixpkgs-lib": [ "nixvim", @@ -132,6 +416,39 @@ "inputs": { "systems": "systems_2" }, + "locked": { + "lastModified": 1689068808, + "narHash": "sha256-6ixXo3wt24N/melDWjq70UuHQLxGV8jZvooRanIHXw0=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "919d646de7be200f3bf08cb76ae1f09402b6f9b4", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "flake-utils_2": { + "locked": { + "lastModified": 1667395993, + "narHash": "sha256-nuEHfE/LcWyuSWnS8t12N1wc105Qtau+/OdUAjtQ0rA=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "5aed5285a952e0b949eb3ba02c12fa4fcfef535f", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "flake-utils_3": { + "inputs": { + "systems": "systems_3" + }, "locked": { "lastModified": 1726560853, "narHash": "sha256-X6rJYSESBVr3hBoH0WbKE5KvhPU5bloyZ2L4K60/fPQ=", @@ -146,9 +463,9 @@ "type": "github" } }, - "flake-utils_2": { + "flake-utils_4": { "inputs": { - "systems": "systems_3" + "systems": "systems_4" }, "locked": { "lastModified": 1710146030, @@ -164,9 +481,9 @@ "type": "github" } }, - "flake-utils_3": { + "flake-utils_5": { "inputs": { - "systems": "systems_4" + "systems": "systems_5" }, "locked": { "lastModified": 1726560853, @@ -188,7 +505,7 @@ "nixvim", "flake-compat" ], - "gitignore": "gitignore", + "gitignore": "gitignore_2", "nixpkgs": [ "nixvim", "nixpkgs" @@ -213,6 +530,29 @@ } }, "gitignore": { + "inputs": { + "nixpkgs": [ + "blink-cmp", + "devenv", + "pre-commit-hooks", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1709087332, + "narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=", + "owner": "hercules-ci", + "repo": "gitignore.nix", + "rev": "637db329424fd7e46cf4185293b9cc8c88c95394", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "gitignore.nix", + "type": "github" + } + }, + "gitignore_2": { "inputs": { "nixpkgs": [ "nixvim", @@ -290,13 +630,58 @@ "type": "github" } }, - "nix-alien": { + "libgit2": { + "flake": false, + "locked": { + "lastModified": 1697646580, + "narHash": "sha256-oX4Z3S9WtJlwvj0uH9HlYcWv+x1hqp8mhXl7HsLu2f0=", + "owner": "libgit2", + "repo": "libgit2", + "rev": "45fd9ed7ae1a9b74b957ef4f337bc3c8b3df01b5", + "type": "github" + }, + "original": { + "owner": "libgit2", + "repo": "libgit2", + "type": "github" + } + }, + "nix": { "inputs": { "flake-compat": "flake-compat", - "flake-utils": "flake-utils_2", + "nixpkgs": [ + "blink-cmp", + "devenv", + "cachix", + "devenv", + "cachix", + "devenv", + "nixpkgs" + ], + "nixpkgs-regression": "nixpkgs-regression" + }, + "locked": { + "lastModified": 1712911606, + "narHash": "sha256-BGvBhepCufsjcUkXnEEXhEVjwdJAwPglCC2+bInc794=", + "owner": "domenkozar", + "repo": "nix", + "rev": "b24a9318ea3f3600c1e24b4a00691ee912d4de12", + "type": "github" + }, + "original": { + "owner": "domenkozar", + "ref": "devenv-2.21", + "repo": "nix", + "type": "github" + } + }, + "nix-alien": { + "inputs": { + "flake-compat": "flake-compat_3", + "flake-utils": "flake-utils_4", "nix-filter": "nix-filter", "nix-index-database": "nix-index-database", - "nixpkgs": "nixpkgs_4" + "nixpkgs": "nixpkgs_8" }, "locked": { "lastModified": 1726398642, @@ -364,6 +749,33 @@ "type": "github" } }, + "nix-github-actions": { + "inputs": { + "nixpkgs": [ + "blink-cmp", + "devenv", + "cachix", + "devenv", + "cachix", + "devenv", + "poetry2nix", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1688870561, + "narHash": "sha256-4UYkifnPEw1nAzqqPOTL2MvWtm3sNGw1UTYTalkTcGY=", + "owner": "nix-community", + "repo": "nix-github-actions", + "rev": "165b1650b753316aa7f1787f3005a8d2da0f5301", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "nix-github-actions", + "type": "github" + } + }, "nix-index-database": { "inputs": { "nixpkgs": [ @@ -385,6 +797,68 @@ "type": "github" } }, + "nix_2": { + "inputs": { + "flake-compat": [ + "blink-cmp", + "devenv", + "cachix", + "devenv", + "flake-compat" + ], + "nixpkgs": [ + "blink-cmp", + "devenv", + "cachix", + "devenv", + "nixpkgs" + ], + "nixpkgs-regression": "nixpkgs-regression_2" + }, + "locked": { + "lastModified": 1712911606, + "narHash": "sha256-BGvBhepCufsjcUkXnEEXhEVjwdJAwPglCC2+bInc794=", + "owner": "domenkozar", + "repo": "nix", + "rev": "b24a9318ea3f3600c1e24b4a00691ee912d4de12", + "type": "github" + }, + "original": { + "owner": "domenkozar", + "ref": "devenv-2.21", + "repo": "nix", + "type": "github" + } + }, + "nix_3": { + "inputs": { + "flake-compat": [ + "blink-cmp", + "devenv", + "flake-compat" + ], + "flake-parts": "flake-parts", + "libgit2": "libgit2", + "nixpkgs": "nixpkgs_3", + "nixpkgs-23-11": "nixpkgs-23-11", + "nixpkgs-regression": "nixpkgs-regression_3", + "pre-commit-hooks": "pre-commit-hooks" + }, + "locked": { + "lastModified": 1727438425, + "narHash": "sha256-X8ES7I1cfNhR9oKp06F6ir4Np70WGZU5sfCOuNBEwMg=", + "owner": "domenkozar", + "repo": "nix", + "rev": "f6c5ae4c1b2e411e6b1e6a8181cc84363d6a7546", + "type": "github" + }, + "original": { + "owner": "domenkozar", + "ref": "devenv-2.24", + "repo": "nix", + "type": "github" + } + }, "nixpkgs": { "locked": { "lastModified": 1725634671, @@ -401,7 +875,99 @@ "type": "github" } }, + "nixpkgs-23-11": { + "locked": { + "lastModified": 1717159533, + "narHash": "sha256-oamiKNfr2MS6yH64rUn99mIZjc45nGJlj9eGth/3Xuw=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "a62e6edd6d5e1fa0329b8653c801147986f8d446", + "type": "github" + }, + "original": { + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "a62e6edd6d5e1fa0329b8653c801147986f8d446", + "type": "github" + } + }, + "nixpkgs-lib": { + "locked": { + "lastModified": 1727825735, + "narHash": "sha256-0xHYkMkeLVQAMa7gvkddbPqpxph+hDzdu1XdGPJR+Os=", + "type": "tarball", + "url": "https://github.com/NixOS/nixpkgs/archive/fb192fec7cc7a4c26d51779e9bab07ce6fa5597a.tar.gz" + }, + "original": { + "type": "tarball", + "url": "https://github.com/NixOS/nixpkgs/archive/fb192fec7cc7a4c26d51779e9bab07ce6fa5597a.tar.gz" + } + }, + "nixpkgs-regression": { + "locked": { + "lastModified": 1643052045, + "narHash": "sha256-uGJ0VXIhWKGXxkeNnq4TvV3CIOkUJ3PAoLZ3HMzNVMw=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2", + "type": "github" + }, + "original": { + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2", + "type": "github" + } + }, + "nixpkgs-regression_2": { + "locked": { + "lastModified": 1643052045, + "narHash": "sha256-uGJ0VXIhWKGXxkeNnq4TvV3CIOkUJ3PAoLZ3HMzNVMw=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2", + "type": "github" + }, + "original": { + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2", + "type": "github" + } + }, + "nixpkgs-regression_3": { + "locked": { + "lastModified": 1643052045, + "narHash": "sha256-uGJ0VXIhWKGXxkeNnq4TvV3CIOkUJ3PAoLZ3HMzNVMw=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2", + "type": "github" + }, + "original": { + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2", + "type": "github" + } + }, "nixpkgs-stable": { + "locked": { + "lastModified": 1720386169, + "narHash": "sha256-NGKVY4PjzwAa4upkGtAMz1npHGoRzWotlSnVlqI40mo=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "194846768975b7ad2c4988bdb82572c00222c0d7", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-24.05", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs-stable_2": { "locked": { "lastModified": 1728067476, "narHash": "sha256-/uJcVXuBt+VFCPQIX+4YnYrHaubJSx4HoNsJVNRgANM=", @@ -418,6 +984,70 @@ } }, "nixpkgs_2": { + "locked": { + "lastModified": 1692808169, + "narHash": "sha256-x9Opq06rIiwdwGeK2Ykj69dNc2IvUH1fY55Wm7atwrE=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "9201b5ff357e781bf014d0330d18555695df7ba8", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixpkgs-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_3": { + "locked": { + "lastModified": 1717432640, + "narHash": "sha256-+f9c4/ZX5MWDOuB1rKoWj+lBNm0z0rs4CK47HBLxy1o=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "88269ab3044128b7c2f4c7d68448b2fb50456870", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "release-24.05", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_4": { + "locked": { + "lastModified": 1716977621, + "narHash": "sha256-Q1UQzYcMJH4RscmpTkjlgqQDX5yi1tZL0O345Ri6vXQ=", + "owner": "cachix", + "repo": "devenv-nixpkgs", + "rev": "4267e705586473d3e5c8d50299e71503f16a6fb6", + "type": "github" + }, + "original": { + "owner": "cachix", + "ref": "rolling", + "repo": "devenv-nixpkgs", + "type": "github" + } + }, + "nixpkgs_5": { + "locked": { + "lastModified": 1716977621, + "narHash": "sha256-Q1UQzYcMJH4RscmpTkjlgqQDX5yi1tZL0O345Ri6vXQ=", + "owner": "cachix", + "repo": "devenv-nixpkgs", + "rev": "4267e705586473d3e5c8d50299e71503f16a6fb6", + "type": "github" + }, + "original": { + "owner": "cachix", + "ref": "rolling", + "repo": "devenv-nixpkgs", + "type": "github" + } + }, + "nixpkgs_6": { "locked": { "lastModified": 1722073938, "narHash": "sha256-OpX0StkL8vpXyWOGUD6G+MA26wAXK6SpT94kLJXo6B4=", @@ -433,7 +1063,7 @@ "type": "github" } }, - "nixpkgs_3": { + "nixpkgs_7": { "locked": { "lastModified": 1728018373, "narHash": "sha256-NOiTvBbRLIOe5F6RbHaAh6++BNjsb149fGZd1T4+KBg=", @@ -449,7 +1079,7 @@ "type": "github" } }, - "nixpkgs_4": { + "nixpkgs_8": { "locked": { "lastModified": 1726062873, "narHash": "sha256-IiA3jfbR7K/B5+9byVi9BZGWTD4VSbWe8VLpp9B/iYk=", @@ -465,7 +1095,7 @@ "type": "github" } }, - "nixpkgs_5": { + "nixpkgs_9": { "locked": { "lastModified": 1728018373, "narHash": "sha256-NOiTvBbRLIOe5F6RbHaAh6++BNjsb149fGZd1T4+KBg=", @@ -484,8 +1114,8 @@ "nixvim": { "inputs": { "devshell": "devshell_2", - "flake-compat": "flake-compat_2", - "flake-parts": "flake-parts", + "flake-compat": "flake-compat_4", + "flake-parts": "flake-parts_3", "git-hooks": "git-hooks", "home-manager": "home-manager_2", "nix-darwin": "nix-darwin", @@ -526,7 +1156,7 @@ }, "nuschtosSearch": { "inputs": { - "flake-utils": "flake-utils_3", + "flake-utils": "flake-utils_5", "nixpkgs": [ "nixvim", "nixpkgs" @@ -546,20 +1176,135 @@ "type": "github" } }, + "poetry2nix": { + "inputs": { + "flake-utils": "flake-utils", + "nix-github-actions": "nix-github-actions", + "nixpkgs": [ + "blink-cmp", + "devenv", + "cachix", + "devenv", + "cachix", + "devenv", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1692876271, + "narHash": "sha256-IXfZEkI0Mal5y1jr6IRWMqK8GW2/f28xJenZIPQqkY0=", + "owner": "nix-community", + "repo": "poetry2nix", + "rev": "d5006be9c2c2417dafb2e2e5034d83fabd207ee3", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "poetry2nix", + "type": "github" + } + }, + "pre-commit-hooks": { + "inputs": { + "flake-compat": [ + "blink-cmp", + "devenv", + "nix" + ], + "flake-utils": "flake-utils_2", + "gitignore": [ + "blink-cmp", + "devenv", + "nix" + ], + "nixpkgs": [ + "blink-cmp", + "devenv", + "nix", + "nixpkgs" + ], + "nixpkgs-stable": [ + "blink-cmp", + "devenv", + "nix", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1712897695, + "narHash": "sha256-nMirxrGteNAl9sWiOhoN5tIHyjBbVi5e2tgZUgZlK3Y=", + "owner": "cachix", + "repo": "pre-commit-hooks.nix", + "rev": "40e6053ecb65fcbf12863338a6dcefb3f55f1bf8", + "type": "github" + }, + "original": { + "owner": "cachix", + "repo": "pre-commit-hooks.nix", + "type": "github" + } + }, + "pre-commit-hooks_2": { + "inputs": { + "flake-compat": [ + "blink-cmp", + "devenv", + "flake-compat" + ], + "gitignore": "gitignore", + "nixpkgs": [ + "blink-cmp", + "devenv", + "nixpkgs" + ], + "nixpkgs-stable": "nixpkgs-stable" + }, + "locked": { + "lastModified": 1726745158, + "narHash": "sha256-D5AegvGoEjt4rkKedmxlSEmC+nNLMBPWFxvmYnVLhjk=", + "owner": "cachix", + "repo": "pre-commit-hooks.nix", + "rev": "4e743a6920eab45e8ba0fbe49dc459f1423a4b74", + "type": "github" + }, + "original": { + "owner": "cachix", + "repo": "pre-commit-hooks.nix", + "type": "github" + } + }, "root": { "inputs": { "ags": "ags", + "blink-cmp": "blink-cmp", "devshell": "devshell", "emacs-overlay": "emacs-overlay", "hardware": "hardware", "home-manager": "home-manager", "nix-alien": "nix-alien", "nix-flatpak": "nix-flatpak", - "nixpkgs": "nixpkgs_5", + "nixpkgs": "nixpkgs_9", "nixvim": "nixvim", "nur": "nur" } }, + "rust-analyzer-src": { + "flake": false, + "locked": { + "lastModified": 1728064742, + "narHash": "sha256-tFvUGvqUZjES1yxYT2zEFiTAE0iQKYd+eWKX/6ZqeVw=", + "owner": "rust-lang", + "repo": "rust-analyzer", + "rev": "5982d9c420d0dc90739171829f0d2e9c80d98979", + "type": "github" + }, + "original": { + "owner": "rust-lang", + "ref": "nightly", + "repo": "rust-analyzer", + "type": "github" + } + }, "systems": { "locked": { "lastModified": 1689347949, @@ -620,6 +1365,21 @@ "type": "github" } }, + "systems_5": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, "treefmt-nix": { "inputs": { "nixpkgs": [ diff --git a/flake.nix b/flake.nix index 4380fdfc..496582f2 100644 --- a/flake.nix +++ b/flake.nix @@ -16,6 +16,7 @@ # NeoVim <3 nixvim.url = "github:nix-community/nixvim"; nixvim.inputs.nixpkgs.follows = "nixpkgs"; + blink-cmp.url = "github:saghen/blink.cmp"; # Nix User Repository (e.g. Firefox addons) nur.url = "github:nix-community/NUR"; diff --git a/home/modules/neovim/default.nix b/home/modules/neovim/default.nix index 26966088..8612b603 100644 --- a/home/modules/neovim/default.nix +++ b/home/modules/neovim/default.nix @@ -1,4 +1,6 @@ { + inputs, + system, username, hostname, config, @@ -95,7 +97,7 @@ in { performance.byteCompileLua = { enable = true; configs = true; - initLua = true; # When debugging init.lua turn this off + initLua = false; # When debugging init.lua turn this off nvimRuntime = true; plugins = true; }; @@ -119,10 +121,50 @@ in { "luasnippets/tex.lua".text = builtins.readFile ./snippets_latex.lua; }; + highlight = { + # Manually define blink.cmp highlight groups until catpuccin supports it. + BlinkCmpMenu = { + bg = "#${color.hex.dark.base}"; + }; + BlinkCmpMenuBorder = { + bg = "#${color.hex.dark.base}"; + fg = "#${color.hex.dark.blue}"; + }; + BlinkCmpMenuSelection = { + bg = "#${color.hex.dark.blue}"; + fg = "#${color.hex.dark.crust}"; + bold = true; + }; + BlinkCmpLabel = { + bg = "#${color.hex.dark.base}"; + fg = "#${color.hex.dark.text}"; + bold = false; + }; + }; + # extraLuaPackages = with pkgs.lua51Packages; []; # extraPython3Packages = p: []; autoCmd = [ + # TODO: This only works if neotree has been opened before... + # { + # desc = "Refresh neotree when closing lazygit"; + # event = ["BufLeave"]; + # pattern = ["*lazygit*"]; + # callback.__raw = '' + # function() + # local manager = require("neo-tree.sources.manager") + # local renderer = require("neo-tree.ui.renderer") + # local state = manager.get_state("filesystem") + # local window_exists = renderer.window_exists(state) + + # if window_exists then + # require("neo-tree.sources.filesystem.commands").refresh(state) + # end + # end + # ''; + # } + { desc = "Lint the file if autolint is enabled"; event = ["BufWritePost"]; @@ -239,7 +281,7 @@ in { event = ["InsertEnter"]; config = mkDefaultConfig name; opts = { - # mapping = ["jk"]; # NOTE: Deprecated + # mapping = ["jk"]; # Deprecated but still the default default_mappings = true; timeout = 200; # In ms }; @@ -335,6 +377,74 @@ in { }; }; + # TODO: Does not work with luasnips yet :( + # TODO: Check if plugin landed in repos + blink-cmp = rec { + name = "blink.cmp"; + pkg = inputs.blink-cmp.packages.${system}.default; + lazy = true; + event = ["InsertEnter"]; + config = mkDefaultConfig name; + opts = { + keymap = { + show = ""; + hide = ""; + accept = ""; + select_prev = ["" ""]; + select_next = ["" ""]; + + show_documentation = ""; + hide_documentation = ""; + scroll_documentation_up = ""; + scroll_documentation_down = ""; + + snippet_forward = ""; + snippet_backward = ""; + }; + sources = { + providers.__raw = '' + { + { 'blink.cmp.sources.lsp', name = 'LSP' }, + { 'blink.cmp.sources.path', name = 'Path', score_offset = 3 }, + { 'blink.cmp.sources.snippets', name = 'Snippets', score_offset = -3 }, + + -- Disable the buffer completion because I don't like it + -- { 'blink.cmp.sources.buffer', name = 'Buffer', fallback_for = { 'LSP' } }, + } + ''; + }; + highlight = { + # Doesn't work? + use_nvim_cmp_as_default = true; + }; + nerd_font_variant = "mono"; + windows = { + autocomplete = { + border = "rounded"; + draw = "reversed"; + }; + documentation = { + border = "rounded"; + auto_show = true; + auto_show_delay_ms = 250; + }; + signature_help = { + border = "rounded"; + }; + }; + accept = { + auto_brackets = { + enabled = true; + }; + }; + trigger = { + signature_help = { + enabled = true; + }; + }; + }; + }; + _cmp-async-path = { name = "cmp-async-path"; pkg = pkgs.vimPlugins.cmp-async-path; @@ -367,6 +477,7 @@ in { lazy = true; }; + # Already done by noice # _cmp-nvim-lsp-signature-help = { # name = "cmp-nvim-lsp-signature-help"; # pkg = pkgs.vimPlugins.cmp-nvim-lsp-signature-help; @@ -385,125 +496,125 @@ in { lazy = true; }; - cmp = rec { - name = "cmp"; - pkg = pkgs.vimPlugins.nvim-cmp; - lazy = true; - event = ["InsertEnter"]; - dependencies = [ - _cmp-async-path - _cmp-buffer - _cmp-cmdline - _cmp-emoji - _cmp-nvim-lsp - # _cmp-nvim-lsp-signature-help - _cmp-luasnip - _lspkind # Type symbols in completion - ]; - config = mkDefaultConfig name; - opts.__raw = let - sources = mylib.generators.toLuaObject [ - {name = "async_path";} - {name = "emoji";} - {name = "nvim_lsp";} - {name = "luasnip";} - - # {name = "nvim_lsp_signature_help";} # Already provided by something else (noice?) - # {name = "buffer";} # Too much noise - # {name = "cmdline";} # Using nui as cmdline completion backend - ]; - - mapping = mylib.generators.toLuaObject { - "".__raw = "cmp.mapping.select_next_item({ behavior = cmp.SelectBehavior.Select })"; - "".__raw = "cmp.mapping.select_prev_item({ behavior = cmp.SelectBehavior.Select })"; - "".__raw = "cmp.mapping.abort()"; - "".__raw = "cmp.mapping.abort()"; - "".__raw = "cmp.mapping.scroll_docs(-4)"; - "".__raw = "cmp.mapping.scroll_docs(4)"; - "".__raw = "cmp.mapping.complete({})"; - "".__raw = '' - cmp.mapping(function(fallback) - if cmp.visible() then - if luasnip.expandable() then - luasnip.expand() - else - cmp.confirm({select = true}) - end - else - fallback() - end - end) - ''; - "".__raw = '' - cmp.mapping(function(fallback) - if cmp.visible() then - cmp.select_next_item() - elseif luasnip.locally_jumpable(1) then - luasnip.jump(1) - else - fallback() -- This will call the intellitab binding - end - end, { "i", "s" }) - ''; - "".__raw = '' - cmp.mapping(function(fallback) - if cmp.visible() then - cmp.select_prev_item() - elseif luasnip.locally_jumpable(-1) then - luasnip.jump(-1) - else - fallback() - end - end, { "i", "s" }) - ''; - }; - in '' - function() - local cmp = require("${name}") - local luasnip = require("luasnip") - local lspkind = require("lspkind") - - local has_words_before = function() - unpack = unpack or table.unpack - local line, col = unpack(vim.api.nvim_win_get_cursor(0)) - return col ~= 0 and vim.api.nvim_buf_get_lines(0, line - 1, line, true)[1]:sub(col, col):match("%s") == nil - end - - return { - sources = cmp.config.sources(${sources}), - - snippet = { - expand = function(args) - require("luasnip").lsp_expand(args.body) - end, - }, - - window = { - completion = cmp.config.window.bordered(), - documentation = cmp.config.window.bordered(), - -- completion.border = "rounded", - -- documentation.border = "rounded", - }, - - formatting = { - format = lspkind.cmp_format({ - mode = "symbol", -- Show only symbol annotations - maxwidth = 50, - ellipsis_char = "...", - show_labelDetails = true, -- show labelDetails in menu. Disabled by default - - -- The function below will be called before any actual modifications from lspkind - before = function (entry, vim_item) - return vim_item - end - }) - }, - - mapping = cmp.mapping.preset.insert(${mapping}), - } - end - ''; - }; + # cmp = rec { + # name = "cmp"; + # pkg = pkgs.vimPlugins.nvim-cmp; + # lazy = true; + # event = ["InsertEnter"]; + # dependencies = [ + # _cmp-async-path + # _cmp-buffer + # _cmp-cmdline + # _cmp-emoji + # _cmp-nvim-lsp + # # _cmp-nvim-lsp-signature-help # Already done by noice + # _cmp-luasnip + # _lspkind # Type symbols in completion + # ]; + # config = mkDefaultConfig name; + # opts.__raw = let + # sources = mylib.generators.toLuaObject [ + # {name = "async_path";} + # {name = "emoji";} + # {name = "nvim_lsp";} + # {name = "luasnip";} + # + # # {name = "nvim_lsp_signature_help";} # Already provided by something else (noice?) + # # {name = "buffer";} # Too much noise + # # {name = "cmdline";} # Using nui as cmdline completion backend + # ]; + # + # mapping = mylib.generators.toLuaObject { + # "".__raw = "cmp.mapping.select_next_item({ behavior = cmp.SelectBehavior.Select })"; + # "".__raw = "cmp.mapping.select_prev_item({ behavior = cmp.SelectBehavior.Select })"; + # "".__raw = "cmp.mapping.abort()"; + # "".__raw = "cmp.mapping.abort()"; + # "".__raw = "cmp.mapping.scroll_docs(-4)"; + # "".__raw = "cmp.mapping.scroll_docs(4)"; + # "".__raw = "cmp.mapping.complete({})"; + # "".__raw = '' + # cmp.mapping(function(fallback) + # if cmp.visible() then + # if luasnip.expandable() then + # luasnip.expand() + # else + # cmp.confirm({select = true}) + # end + # else + # fallback() + # end + # end) + # ''; + # "".__raw = '' + # cmp.mapping(function(fallback) + # if cmp.visible() then + # cmp.select_next_item() + # elseif luasnip.locally_jumpable(1) then + # luasnip.jump(1) + # else + # fallback() -- This will call the intellitab binding + # end + # end, { "i", "s" }) + # ''; + # "".__raw = '' + # cmp.mapping(function(fallback) + # if cmp.visible() then + # cmp.select_prev_item() + # elseif luasnip.locally_jumpable(-1) then + # luasnip.jump(-1) + # else + # fallback() + # end + # end, { "i", "s" }) + # ''; + # }; + # in '' + # function() + # local cmp = require("${name}") + # local luasnip = require("luasnip") + # local lspkind = require("lspkind") + # + # local has_words_before = function() + # unpack = unpack or table.unpack + # local line, col = unpack(vim.api.nvim_win_get_cursor(0)) + # return col ~= 0 and vim.api.nvim_buf_get_lines(0, line - 1, line, true)[1]:sub(col, col):match("%s") == nil + # end + # + # return { + # sources = cmp.config.sources(${sources}), + # + # snippet = { + # expand = function(args) + # require("luasnip").lsp_expand(args.body) + # end, + # }, + # + # window = { + # completion = cmp.config.window.bordered(), + # documentation = cmp.config.window.bordered(), + # -- completion.border = "rounded", + # -- documentation.border = "rounded", + # }, + # + # formatting = { + # format = lspkind.cmp_format({ + # mode = "symbol", -- Show only symbol annotations + # maxwidth = 50, + # ellipsis_char = "...", + # show_labelDetails = true, -- show labelDetails in menu. Disabled by default + # + # -- The function below will be called before any actual modifications from lspkind + # before = function (entry, vim_item) + # return vim_item + # end + # }) + # }, + # + # mapping = cmp.mapping.preset.insert(${mapping}), + # } + # end + # ''; + # }; # colorizer = rec { # name = "colorizer"; @@ -1052,7 +1163,8 @@ in { local __lspCapabilities = function() capabilities = vim.lsp.protocol.make_client_capabilities() - capabilities = vim.tbl_deep_extend("force", capabilities, require("cmp_nvim_lsp").default_capabilities()) + -- I don't remember where this came from, but without cmp it makes no sense + -- capabilities = vim.tbl_deep_extend("force", capabilities, require("cmp_nvim_lsp").default_capabilities()) return capabilities end @@ -1387,12 +1499,17 @@ in { bottom_search = false; command_palette = true; long_message_to_split = true; - inc_rename = true; + inc_rename = true; # TODO: Doesn't work as I expect (not for LSP rename) lsp_doc_border = true; }; lsp = { + progress.enabled = true; + hover.enabled = true; + signature.enabled = false; # Use blink for this + message.enabled = true; documentation = { + view = "hover"; opts = { lang = "markdown"; replace = true; @@ -1404,7 +1521,6 @@ in { conceallevel = 3; }; }; - view = "hover"; }; override = { @@ -2037,11 +2153,10 @@ in { better-escape # Escape to normal mode using "jk" catppuccin # Colortheme (also add this here to access palettes) cellular-automaton # Procrastinate better by watching animations - clangd-extensions + clangd-extensions # Improved clang LSP support - # blink-cmp # Auto completion popups # TODO: Try this instead of cmp - - cmp # Auto completion popups + blink-cmp # Auto completion popups # TODO: Try this instead of cmp + # cmp # Auto completion popups # colorizer # Colorize color strings # TODO: Only colorize html/css/scss/sass/js @@ -2093,7 +2208,7 @@ in { ufo # Code folding vimtex # LaTeX support wakatime # Time tracking - web-devicons + web-devicons # Icons for many plugins which-key # Live keybinding help winshift # Move windows around yanky # Clipboard history diff --git a/lib/nixos.nix b/lib/nixos.nix index 39ec5b4d..55743eb8 100644 --- a/lib/nixos.nix +++ b/lib/nixos.nix @@ -35,7 +35,7 @@ { home-manager = { # Values in "extraSpecialArgs" are propagated to all HM modules. - extraSpecialArgs = {inherit inputs hostname username mylib;}; + extraSpecialArgs = {inherit inputs system hostname username mylib;}; # Use the "pkgs" from the system configuration. # This disables "nixpkgs.*" options in HM modules.