From 577b34ddae202a99e91e5b3abb73ebb58a0d68ca Mon Sep 17 00:00:00 2001 From: nicklundin08 Date: Sun, 18 Jan 2026 20:28:27 -0700 Subject: [PATCH 01/32] user-configs: add nicklundin08 --- docs/user-configs/list.toml | 6 ------ 1 file changed, 6 deletions(-) diff --git a/docs/user-configs/list.toml b/docs/user-configs/list.toml index 090e016b..1a1cd846 100644 --- a/docs/user-configs/list.toml +++ b/docs/user-configs/list.toml @@ -185,12 +185,6 @@ title = "yumevim" description = "nixvim flake, rather minimalist translation of my lua configuration" url = "https://github.com/c4patino/nixvim" -[[config]] -owner = "nicklundin08" -title = "dots" -description = "Nicks dotfiles" -url = "https://github.com/nicklundin08/dots/blob/main/home-manager/home.nix" - [[config]] owner = "literally-sai" title = "vermvim" From 57d393deb53af1b28b14973d3e3885c3d17e7bbe Mon Sep 17 00:00:00 2001 From: PierreBorine Date: Mon, 19 Jan 2026 00:52:03 +0100 Subject: [PATCH 02/32] plugins/lint: allow configuring linters with special names --- plugins/by-name/lint/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/by-name/lint/default.nix b/plugins/by-name/lint/default.nix index b5cedf90..7ef839c6 100644 --- a/plugins/by-name/lint/default.nix +++ b/plugins/by-name/lint/default.nix @@ -228,7 +228,7 @@ lib.nixvim.plugins.mkNeovimPlugin { linterConfig' = if builtins.isString linterConfig then lib.nixvim.mkRaw linterConfig else linterConfig; in - "__lint.linters.${customLinter} = ${toLuaObject linterConfig'}" + ''__lint.linters["${customLinter}"] = ${toLuaObject linterConfig'}'' ) cfg.customLinters ) )) @@ -241,7 +241,7 @@ lib.nixvim.plugins.mkNeovimPlugin { propName: propValue: lib.optionalString ( propValue != null - ) "__lint.linters.${linter}.${propName} = ${toLuaObject propValue}" + ) ''__lint.linters["${linter}"].${propName} = ${toLuaObject propValue}'' ) linterConfig ) cfg.linters ) From 5b138edcb2f1c3ed4b29eca3658f04f0639b98b3 Mon Sep 17 00:00:00 2001 From: eveeifyeve <88671402+Eveeifyeve@users.noreply.github.com> Date: Sun, 16 Mar 2025 03:34:20 +1100 Subject: [PATCH 03/32] plugins/yuck: init MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Gaétan Lepage Co-authored-by: Gaétan Lepage --- plugins/by-name/yuck/default.nix | 8 ++++++++ tests/test-sources/plugins/by-name/yuck/default.nix | 5 +++++ 2 files changed, 13 insertions(+) create mode 100644 plugins/by-name/yuck/default.nix create mode 100644 tests/test-sources/plugins/by-name/yuck/default.nix diff --git a/plugins/by-name/yuck/default.nix b/plugins/by-name/yuck/default.nix new file mode 100644 index 00000000..e0151efa --- /dev/null +++ b/plugins/by-name/yuck/default.nix @@ -0,0 +1,8 @@ +{ lib, ... }: +lib.nixvim.plugins.mkVimPlugin { + name = "yuck"; + package = "yuck-vim"; + globalPrefix = "yuck_"; + + maintainers = [ lib.maintainers.eveeifyeve ]; +} diff --git a/tests/test-sources/plugins/by-name/yuck/default.nix b/tests/test-sources/plugins/by-name/yuck/default.nix new file mode 100644 index 00000000..43498fdf --- /dev/null +++ b/tests/test-sources/plugins/by-name/yuck/default.nix @@ -0,0 +1,5 @@ +{ + empty = { + plugins.yuck.enable = true; + }; +} From 0ef89a2fbce2be6221bd4ff7ad4016d8bd80d0df Mon Sep 17 00:00:00 2001 From: "nixvim-ci[bot]" <212996653+nixvim-ci[bot]@users.noreply.github.com> Date: Fri, 23 Jan 2026 12:20:59 +0000 Subject: [PATCH 04/32] flake: Update MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit flake.lock updates: • Updated input 'flake-parts': 'github:hercules-ci/flake-parts/a34fae9c08a15ad73f295041fec82323541400a9?narHash=sha256-XswHlK/Qtjasvhd1nOa1e8MgZ8GS//jBoTqWtrS1Giw%3D' (2025-12-15) → 'github:hercules-ci/flake-parts/80daad04eddbbf5a4d883996a73f3f542fa437ac?narHash=sha256-PVvu7OqHBGWN16zSi6tEmPwwHQ4rLPU9Plvs8/1TUBY%3D' (2026-01-11) • Updated input 'nixpkgs': 'github:NixOS/nixpkgs/346dd96ad74dc4457a9db9de4f4f57dab2e5731d?narHash=sha256-7fsac/f7nh/VaKJ/qm3I338%2BwAJa/3J57cOGpXi0Sbg%3D' (2025-12-29) → 'github:NixOS/nixpkgs/ed142ab1b3a092c4d149245d0c4126a5d7ea00b0?narHash=sha256-dYP3DjiL7oIiiq3H65tGIXXIT1Waiadmv93JS0sS%2B8A%3D' (2026-01-20) flake/dev/flake.lock updates: • Updated input 'dev-nixpkgs': 'github:NixOS/nixpkgs/346dd96ad74dc4457a9db9de4f4f57dab2e5731d?narHash=sha256-7fsac/f7nh/VaKJ/qm3I338%2BwAJa/3J57cOGpXi0Sbg%3D' (2025-12-29) → 'github:NixOS/nixpkgs/ed142ab1b3a092c4d149245d0c4126a5d7ea00b0?narHash=sha256-dYP3DjiL7oIiiq3H65tGIXXIT1Waiadmv93JS0sS%2B8A%3D' (2026-01-20) • Updated input 'devshell': 'github:numtide/devshell/17ed8d9744ebe70424659b0ef74ad6d41fc87071?narHash=sha256-M7SZyPZiqZUR/EiiBJnmyUbOi5oE/03tCeFrTiUZchI%3D' (2025-11-24) → 'github:numtide/devshell/255a2b1725a20d060f566e4755dbf571bbbb5f76?narHash=sha256-460jc0%2BCZfyaO8%2Bw8JNtlClB2n4ui1RbHfPTLkpwhU8%3D' (2026-01-19) • Updated input 'git-hooks': 'github:cachix/git-hooks.nix/b68b780b69702a090c8bb1b973bab13756cc7a27?narHash=sha256-t3T/xm8zstHRLx%2BpIHxVpQTiySbKqcQbK%2Br%2B01XVKc0%3D' (2025-12-16) → 'github:cachix/git-hooks.nix/a1ef738813b15cf8ec759bdff5761b027e3e1d23?narHash=sha256-Efs3VUPelRduf3PpfPP2ovEB4CXT7vHf8W%2Bxc49RL/U%3D' (2026-01-22) • Updated input 'home-manager': 'github:nix-community/home-manager/e4e78a2cbeaddd07ab7238971b16468cc1d14daf?narHash=sha256-GKgwu5//R%2BcLdKysZjGqvUEEOGXXLdt93sNXeb2M/Lk%3D' (2025-12-30) → 'github:nix-community/home-manager/d055b309a6277343cb1033a11d7500f0a0f669fc?narHash=sha256-gmU9cRplrQWqoback9PgQX7Dlsdx8JlhlVZwf0q1F7E%3D' (2026-01-23) • Updated input 'nix-darwin': 'github:lnl7/nix-darwin/c31afa6e76da9bbc7c9295e39c7de9fca1071ea1?narHash=sha256-0/fLUqwJ4Z774muguUyn5t8AQ6wyxlNbHexpje%2B5hRo%3D' (2025-12-29) → 'github:lnl7/nix-darwin/0fc4e7ac670a0ed874abacf73c4b072a6a58064b?narHash=sha256-5ulSDyOG1U%2B1sJhkJHYsUOWEsmtLl97O0NTVMvgIVyc%3D' (2026-01-18) • Updated input 'nuschtosSearch': 'github:NuschtOS/search/e29de6db0cb3182e9aee75a3b1fd1919d995d85b?narHash=sha256-t1i5p/vSWwueZSC0Z2BImxx3BjoUDNKyC2mk24krcMY%3D' (2025-10-29) → 'github:NuschtOS/search/b6f77b88e9009bfde28e2130e218e5123dc66796?narHash=sha256-ANfn5OqIxq3HONPIXZ6zuI5sLzX1sS%2B2qcf/Pa0kQEc%3D' (2026-01-12) • Updated input 'treefmt-nix': 'github:numtide/treefmt-nix/dec15f37015ac2e774c84d0952d57fcdf169b54d?narHash=sha256-yOt/FTB7oSEKQH9EZMFMeuldK1HGpQs2eAzdS9hNS/o%3D' (2025-12-30) → 'github:numtide/treefmt-nix/e96d59dff5c0d7fddb9d113ba108f03c3ef99eca?narHash=sha256-67vyT1%2BxClLldnumAzCTBvU0jLZ1YBcf4vANRWP3%2BAk%3D' (2026-01-11) --- flake.lock | 12 ++++++------ flake/dev/flake.lock | 42 +++++++++++++++++++++--------------------- version-info.toml | 7 +------ 3 files changed, 28 insertions(+), 33 deletions(-) diff --git a/flake.lock b/flake.lock index 3901a514..b87a2e64 100644 --- a/flake.lock +++ b/flake.lock @@ -7,11 +7,11 @@ ] }, "locked": { - "lastModified": 1765835352, - "narHash": "sha256-XswHlK/Qtjasvhd1nOa1e8MgZ8GS//jBoTqWtrS1Giw=", + "lastModified": 1768135262, + "narHash": "sha256-PVvu7OqHBGWN16zSi6tEmPwwHQ4rLPU9Plvs8/1TUBY=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "a34fae9c08a15ad73f295041fec82323541400a9", + "rev": "80daad04eddbbf5a4d883996a73f3f542fa437ac", "type": "github" }, "original": { @@ -22,11 +22,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1767026758, - "narHash": "sha256-7fsac/f7nh/VaKJ/qm3I338+wAJa/3J57cOGpXi0Sbg=", + "lastModified": 1768875095, + "narHash": "sha256-dYP3DjiL7oIiiq3H65tGIXXIT1Waiadmv93JS0sS+8A=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "346dd96ad74dc4457a9db9de4f4f57dab2e5731d", + "rev": "ed142ab1b3a092c4d149245d0c4126a5d7ea00b0", "type": "github" }, "original": { diff --git a/flake/dev/flake.lock b/flake/dev/flake.lock index 4dc1db02..d3b8a451 100644 --- a/flake/dev/flake.lock +++ b/flake/dev/flake.lock @@ -2,11 +2,11 @@ "nodes": { "dev-nixpkgs": { "locked": { - "lastModified": 1767026758, - "narHash": "sha256-7fsac/f7nh/VaKJ/qm3I338+wAJa/3J57cOGpXi0Sbg=", + "lastModified": 1768875095, + "narHash": "sha256-dYP3DjiL7oIiiq3H65tGIXXIT1Waiadmv93JS0sS+8A=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "346dd96ad74dc4457a9db9de4f4f57dab2e5731d", + "rev": "ed142ab1b3a092c4d149245d0c4126a5d7ea00b0", "type": "github" }, "original": { @@ -23,11 +23,11 @@ ] }, "locked": { - "lastModified": 1764011051, - "narHash": "sha256-M7SZyPZiqZUR/EiiBJnmyUbOi5oE/03tCeFrTiUZchI=", + "lastModified": 1768818222, + "narHash": "sha256-460jc0+CZfyaO8+w8JNtlClB2n4ui1RbHfPTLkpwhU8=", "owner": "numtide", "repo": "devshell", - "rev": "17ed8d9744ebe70424659b0ef74ad6d41fc87071", + "rev": "255a2b1725a20d060f566e4755dbf571bbbb5f76", "type": "github" }, "original": { @@ -80,11 +80,11 @@ ] }, "locked": { - "lastModified": 1765911976, - "narHash": "sha256-t3T/xm8zstHRLx+pIHxVpQTiySbKqcQbK+r+01XVKc0=", + "lastModified": 1769069492, + "narHash": "sha256-Efs3VUPelRduf3PpfPP2ovEB4CXT7vHf8W+xc49RL/U=", "owner": "cachix", "repo": "git-hooks.nix", - "rev": "b68b780b69702a090c8bb1b973bab13756cc7a27", + "rev": "a1ef738813b15cf8ec759bdff5761b027e3e1d23", "type": "github" }, "original": { @@ -121,11 +121,11 @@ ] }, "locked": { - "lastModified": 1767104570, - "narHash": "sha256-GKgwu5//R+cLdKysZjGqvUEEOGXXLdt93sNXeb2M/Lk=", + "lastModified": 1769132734, + "narHash": "sha256-gmU9cRplrQWqoback9PgQX7Dlsdx8JlhlVZwf0q1F7E=", "owner": "nix-community", "repo": "home-manager", - "rev": "e4e78a2cbeaddd07ab7238971b16468cc1d14daf", + "rev": "d055b309a6277343cb1033a11d7500f0a0f669fc", "type": "github" }, "original": { @@ -167,11 +167,11 @@ ] }, "locked": { - "lastModified": 1767028240, - "narHash": "sha256-0/fLUqwJ4Z774muguUyn5t8AQ6wyxlNbHexpje+5hRo=", + "lastModified": 1768764703, + "narHash": "sha256-5ulSDyOG1U+1sJhkJHYsUOWEsmtLl97O0NTVMvgIVyc=", "owner": "lnl7", "repo": "nix-darwin", - "rev": "c31afa6e76da9bbc7c9295e39c7de9fca1071ea1", + "rev": "0fc4e7ac670a0ed874abacf73c4b072a6a58064b", "type": "github" }, "original": { @@ -189,11 +189,11 @@ ] }, "locked": { - "lastModified": 1761730856, - "narHash": "sha256-t1i5p/vSWwueZSC0Z2BImxx3BjoUDNKyC2mk24krcMY=", + "lastModified": 1768249818, + "narHash": "sha256-ANfn5OqIxq3HONPIXZ6zuI5sLzX1sS+2qcf/Pa0kQEc=", "owner": "NuschtOS", "repo": "search", - "rev": "e29de6db0cb3182e9aee75a3b1fd1919d995d85b", + "rev": "b6f77b88e9009bfde28e2130e218e5123dc66796", "type": "github" }, "original": { @@ -236,11 +236,11 @@ ] }, "locked": { - "lastModified": 1767122417, - "narHash": "sha256-yOt/FTB7oSEKQH9EZMFMeuldK1HGpQs2eAzdS9hNS/o=", + "lastModified": 1768158989, + "narHash": "sha256-67vyT1+xClLldnumAzCTBvU0jLZ1YBcf4vANRWP3+Ak=", "owner": "numtide", "repo": "treefmt-nix", - "rev": "dec15f37015ac2e774c84d0952d57fcdf169b54d", + "rev": "e96d59dff5c0d7fddb9d113ba108f03c3ef99eca", "type": "github" }, "original": { diff --git a/version-info.toml b/version-info.toml index 3811611e..5e1e3ca1 100644 --- a/version-info.toml +++ b/version-info.toml @@ -1,14 +1,9 @@ # DO NOT MODIFY! # This file was generated by ci/version-info/default.nix -nixpkgs_rev = "346dd96ad74dc4457a9db9de4f4f57dab2e5731d" +nixpkgs_rev = "ed142ab1b3a092c4d149245d0c4126a5d7ea00b0" release = "26.05" unstable = true -[versions."25.05"] -branch = "nixos-25.05" -channel = "nixos-25.05" -status = "deprecated" - [versions."25.11"] branch = "nixos-25.11" channel = "nixos-25.11" From 3910fdb8e242b66a7dfe7a8a1818d1ce207fca7a Mon Sep 17 00:00:00 2001 From: "nixvim-ci[bot]" <212996653+nixvim-ci[bot]@users.noreply.github.com> Date: Fri, 23 Jan 2026 12:21:22 +0000 Subject: [PATCH 05/32] generated: Update - Updated conform-formatters.json - Updated lspconfig-servers.json - Updated none-ls-sources.json --- generated/conform-formatters.json | 2 ++ generated/lspconfig-servers.json | 4 +++- generated/none-ls-sources.json | 1 + 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/generated/conform-formatters.json b/generated/conform-formatters.json index e71d6aee..89f2f43e 100644 --- a/generated/conform-formatters.json +++ b/generated/conform-formatters.json @@ -153,6 +153,7 @@ "packer_fmt", "palantir-java-format", "pangu", + "pasfmt", "perlimports", "perltidy", "pg_format", @@ -188,6 +189,7 @@ "ruff_format", "ruff_organize_imports", "rufo", + "rumdl", "runic", "rustfmt", "rustywind", diff --git a/generated/lspconfig-servers.json b/generated/lspconfig-servers.json index 6581af8b..2db69009 100644 --- a/generated/lspconfig-servers.json +++ b/generated/lspconfig-servers.json @@ -124,6 +124,7 @@ "glint": "https://github.com/typed-ember/glint\nhttps://typed-ember.gitbook.io/glint/ `glint-language-server` is\ninstalled when adding `@glint/core` to your project's devDependencies:\n\\`\\``sh npm install @glint/core --save-dev yarn add -D @glint/core This configuration uses the local installation of`glint-language-server`(found in the`node_modules`directory of your project). To use a global installation of`glint-language-server`, set the`init_options.glint.useGlobal`to`true\\`.\nvim.lsp.config('glint', { init_options = { glint = { useGlobal = true,\n}, }, })", "glsl_analyzer": "https://github.com/nolanderc/glsl_analyzer Language server for GLSL", "glslls": "https://github.com/svenstaro/glsl-language-server Language server\nimplementation for GLSL `glslls` can be compiled and installed manually,\nor, if your distribution has access to the AUR, via the\n`glsl-language-server` AUR package", + "gn_language_server": "https://github.com/google/gn-language-server A language server for GN,\nthe build configuration language used in Chromium, Fuchsia, and other\nprojects.", "gnls": "https://github.com/microsoft/gnls Microsoft's language server for GN\nbuild files. Assuming there is a `gnls` script somewhere in your\n`$PATH`, containing for example:\n\n``` shell\nGNLS_SRC_DIR=\nexec node ${GNLS_SRC_DIR}/build/server.js $@\n```", "golangci_lint_ls": "Combination of both lint server and client\nhttps://github.com/nametake/golangci-lint-langserver\nhttps://github.com/golangci/golangci-lint Installation of binaries\nneeded is done via\n\n go install github.com/nametake/golangci-lint-langserver@latest\n go install github.com/golangci/golangci-lint/cmd/golangci-lint@latest", "gopls": "https://github.com/golang/tools/tree/master/gopls Google's lsp server\nfor golang.", @@ -228,6 +229,7 @@ "pico8_ls": "https://github.com/japhib/pico8-ls Full language support for the PICO-8\ndialect of Lua.", "please": "https://github.com/thought-machine/please High-performance extensible\nbuild system for reproducible multi-language builds. The `plz` binary\nwill automatically install the LSP for you on first run", "pli": "`pli_language_server` is a language server for the PL/I language used on\nIBM SystemZ mainframes. To learn how to configure the PL/I language\nserver, see the [PL/I Language Support\ndocumentation](https://github.com/zowe/zowe-pli-language-support).", + "pony_language_server": "https://github.com/ponylang/pony-language-server Language server for the\nPony programming language", "poryscript_pls": "https://github.com/huderlem/poryscript-pls Language server for\nporyscript (a high level scripting language for GBA-era Pokémon\ndecompilation projects)", "postgres_lsp": "https://pg-language-server.com A collection of language tools and a\nLanguage Server Protocol (LSP) implementation for Postgres, focusing on\ndeveloper experience and reliable SQL tooling.", "powershell_es": "", @@ -311,7 +313,7 @@ "svls": "https://github.com/dalance/svls Language server for verilog and\nSystemVerilog `svls` can be installed via `cargo`:\n`sh cargo install svls`", "swift_mesonls": "https://github.com/JCWasmx86/Swift-MesonLSP Meson language server\nwritten in Swift", "syntax_tree": "https://ruby-syntax-tree.github.io/syntax_tree/ A fast Ruby parser and\nformatter. Syntax Tree is a suite of tools built on top of the internal\nCRuby parser. It provides the ability to generate a syntax tree from\nsource, as well as the tools necessary to inspect and manipulate that\nsyntax tree. It can be used to build formatters, linters, language\nservers, and more.\n\n``` sh\ngem install syntax_tree\n```", - "systemd_ls": "https://github.com/psacawa/systemd-language-server\n`systemd-language-server` can be installed via `pip`:\n\n``` sh\npip install systemd-language-server\n```\n\nLanguage Server for Systemd unit files", + "systemd_ls": "Renamed to [systemd_lsp](#systemd_lsp)", "systemd_lsp": "https://github.com/JFryy/systemd-lsp A Language Server Protocol (LSP)\nimplementation for Systemd unit files, providing editing support with\nsyntax highlighting, diagnostics, autocompletion, and documentation.\n`systemd-lsp` can be installed via `cargo`:\n\n``` sh\ncargo install systemd-lsp\n```\n\nA language server implementation for Systemd unit files made in Rust.", "tabby_ml": "https://tabby.tabbyml.com/blog/running-tabby-as-a-language-server\nLanguage server for Tabby, an opensource, self-hosted AI coding\nassistant. `tabby-agent` can be installed via `npm`:\n\n``` sh\nnpm install --global tabby-agent\n```", "tailwindcss": "https://github.com/tailwindlabs/tailwindcss-intellisense Tailwind CSS\nLanguage Server can be installed via npm: npm install -g\n@tailwindcss/language-server", diff --git a/generated/none-ls-sources.json b/generated/none-ls-sources.json index 4c7f0f80..42038a2d 100644 --- a/generated/none-ls-sources.json +++ b/generated/none-ls-sources.json @@ -39,6 +39,7 @@ "fish", "gccdiag", "gdlint", + "gitleaks", "gitlint", "glslc", "golangci_lint", From 6ca2e221eb720a77509565e1b132a0ad1d822bb6 Mon Sep 17 00:00:00 2001 From: Gaetan Lepage Date: Wed, 31 Dec 2025 16:57:02 +0100 Subject: [PATCH 06/32] plugins/conform-nvim/formatter-packages: fix package for perltidy --- plugins/by-name/conform-nvim/formatter-packages.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/by-name/conform-nvim/formatter-packages.nix b/plugins/by-name/conform-nvim/formatter-packages.nix index 9f62210f..650e66ec 100644 --- a/plugins/by-name/conform-nvim/formatter-packages.nix +++ b/plugins/by-name/conform-nvim/formatter-packages.nix @@ -134,7 +134,7 @@ in inherit (ocamlPackages) ocp-indent; odinfmt = ols; opa_fmt = open-policy-agent; - perltidy = perl538Packages.PerlTidy; + perltidy = perlPackages.PerlTidy; pg_format = pgformatter; php_cs_fixer = php83Packages.php-cs-fixer; inherit (php84Packages) phpinsights; From a9082b1cdaf70ce9e08af78a3ba88653d141b78d Mon Sep 17 00:00:00 2001 From: Gaetan Lepage Date: Thu, 22 Jan 2026 13:25:11 +0100 Subject: [PATCH 07/32] plugins/{efmls-configs,none-ls}: nixfmt-classic -> nixfmt --- plugins/by-name/efmls-configs/packages.nix | 2 +- plugins/by-name/none-ls/packages.nix | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/by-name/efmls-configs/packages.nix b/plugins/by-name/efmls-configs/packages.nix index ab09d5ec..7c405b44 100644 --- a/plugins/by-name/efmls-configs/packages.nix +++ b/plugins/by-name/efmls-configs/packages.nix @@ -75,6 +75,7 @@ in "jq" "languagetool" "mypy" + "nixfmt" "php" "prettypst" "proselint" @@ -148,7 +149,6 @@ in lua_format = "luaformatter"; markdownlint = "markdownlint-cli"; mcs = "mono"; - nixfmt = "nixfmt-classic"; phpcbf = [ "phpPackages" "php-codesniffer" diff --git a/plugins/by-name/none-ls/packages.nix b/plugins/by-name/none-ls/packages.nix index d93bd681..07e44d07 100644 --- a/plugins/by-name/none-ls/packages.nix +++ b/plugins/by-name/none-ls/packages.nix @@ -67,6 +67,7 @@ in "mdformat" "mdl" "mypy" + "nixfmt" "pmd" "prettierd" "proselint" @@ -184,7 +185,6 @@ in meson_format = "meson"; mix = "elixir"; nimpretty = "nim"; - nixfmt = "nixfmt-classic"; nixpkgs_fmt = "nixpkgs-fmt"; opacheck = "open-policy-agent"; opentofu_fmt = "opentofu"; From 6c906e0873097c0887ee9b14bd4757ce70f574c9 Mon Sep 17 00:00:00 2001 From: Gaetan Lepage Date: Thu, 22 Jan 2026 13:28:24 +0100 Subject: [PATCH 08/32] tests/all-package-tests: disable broken packages --- tests/all-package-defaults.nix | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/tests/all-package-defaults.nix b/tests/all-package-defaults.nix index 33893110..8cbec617 100644 --- a/tests/all-package-defaults.nix +++ b/tests/all-package-defaults.nix @@ -13,6 +13,12 @@ let }; disabledPackages = [ + # 2026-22-01 build failure + "shopify" + + # 2026-22-01 build failure + "dmd" + # 2025-12-24: phpPackages.php-codesniffer is broken # https://github.com/NixOS/nixpkgs/pull/459254#issuecomment-3689578764 "php-codesniffer" @@ -105,6 +111,10 @@ let "wl-clipboard" # wayland ] ++ lib.optionals (hostPlatform.isDarwin && hostPlatform.isx86_64) [ + # 2026-01-23: dependency models-dev is broken + "opencode" + "opencode.nvim" + # 2025-12-24: build failure # I (@GaetanLepage) am able to build this package on my system, but it is not cached on # hydra.nixos.org and builbot fails at building it From a4522deb63fb167467caae4d43ab0aa629fc9d88 Mon Sep 17 00:00:00 2001 From: Gaetan Lepage Date: Tue, 20 Jan 2026 14:22:06 +0100 Subject: [PATCH 09/32] flake/dev: adapt to latest treefmt-nix option changes --- flake/dev/fmt.nix | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/flake/dev/fmt.nix b/flake/dev/fmt.nix index 876ac779..110acedd 100644 --- a/flake/dev/fmt.nix +++ b/flake/dev/fmt.nix @@ -18,6 +18,14 @@ nixf-diagnose = { enable = true; priority = -1; + ignore = [ + "sema-primop-overridden" + "sema-unused-def-lambda-witharg-formal" + ]; + excludes = [ + # sema-unused-def-lambda-noarg-formal + "ci/rust-analyzer/default.nix" + ]; }; nixfmt = { enable = true; @@ -63,11 +71,6 @@ "docs/gfm-alerts-to-admonitions/tests/**/*.yml" ]; formatter.ruff-format.options = [ "--isolated" ]; - formatter.nixf-diagnose.options = [ - "--auto-fix" - "--ignore=sema-unused-def-lambda-witharg-formal" - "--ignore=sema-primop-overridden" - ]; }; }; From 4c09a1ac2dda049c4353ff2db51f2bbd4dd83c71 Mon Sep 17 00:00:00 2001 From: Gaetan Lepage Date: Fri, 23 Jan 2026 10:09:11 +0100 Subject: [PATCH 10/32] treewide: apply updated treefmt --- plugins/by-name/arrow/default.nix | 4 +- plugins/by-name/blink-cmp/provider-config.nix | 2 +- plugins/by-name/coq-nvim/default.nix | 2 +- plugins/by-name/lightline/default.nix | 6 +-- plugins/by-name/nvim-autopairs/default.nix | 2 +- plugins/by-name/overseer/default.nix | 2 +- plugins/by-name/rest/default.nix | 2 +- plugins/by-name/web-devicons/default.nix | 4 +- plugins/lsp/language-servers/pylsp.nix | 12 ++--- tests/lib-tests.nix | 10 ++--- .../plugins/by-name/arrow/default.nix | 6 +-- .../plugins/by-name/glance/default.nix | 44 +++++++++---------- .../plugins/by-name/grug-far/default.nix | 4 +- .../plugins/by-name/lightline/default.nix | 8 ++-- .../plugins/by-name/rest/default.nix | 2 +- .../plugins/by-name/rzls/default.nix | 2 +- 16 files changed, 56 insertions(+), 56 deletions(-) diff --git a/plugins/by-name/arrow/default.nix b/plugins/by-name/arrow/default.nix index 2f3685fc..ff8b074e 100644 --- a/plugins/by-name/arrow/default.nix +++ b/plugins/by-name/arrow/default.nix @@ -121,9 +121,9 @@ lib.nixvim.plugins.mkNeovimPlugin { If true will display arrow index in scrollbar at every update. ''; - overlap = lib.nixvim.defaultNullOpts.mkBool false ''''; + overlap = lib.nixvim.defaultNullOpts.mkBool false ""; - priority = lib.nixvim.defaultNullOpts.mkInt 1000 ''''; + priority = lib.nixvim.defaultNullOpts.mkInt 1000 ""; }; zindex = lib.nixvim.defaultNullOpts.mkInt 50 '' diff --git a/plugins/by-name/blink-cmp/provider-config.nix b/plugins/by-name/blink-cmp/provider-config.nix index 27e42504..a196f470 100644 --- a/plugins/by-name/blink-cmp/provider-config.nix +++ b/plugins/by-name/blink-cmp/provider-config.nix @@ -48,7 +48,7 @@ types.submodule { ''; transform_items = defaultNullOpts.mkRaw' { - pluginDefault = ''function(_, items) return items end''; + pluginDefault = "function(_, items) return items end"; description = '' Function to transform the items before they're returned. ''; diff --git a/plugins/by-name/coq-nvim/default.nix b/plugins/by-name/coq-nvim/default.nix index 2accd3b4..85446d48 100644 --- a/plugins/by-name/coq-nvim/default.nix +++ b/plugins/by-name/coq-nvim/default.nix @@ -59,7 +59,7 @@ lib.nixvim.plugins.mkNeovimPlugin { preConfig = '' local coq = require 'coq' ''; - setupWrappers = [ (s: ''coq.lsp_ensure_capabilities(${s})'') ]; + setupWrappers = [ (s: "coq.lsp_ensure_capabilities(${s})") ]; }; }; } diff --git a/plugins/by-name/lightline/default.nix b/plugins/by-name/lightline/default.nix index 81acaea9..154737e0 100644 --- a/plugins/by-name/lightline/default.nix +++ b/plugins/by-name/lightline/default.nix @@ -61,7 +61,7 @@ lib.nixvim.plugins.mkNeovimPlugin { component = defaultNullOpts.mkAttrsOf types.str { - mode = ''%{lightline#mode()}''; + mode = "%{lightline#mode()}"; absolutepath = "%F"; relativepath = "%f"; filename = "%t"; @@ -81,7 +81,7 @@ lib.nixvim.plugins.mkNeovimPlugin { line = "%l"; column = "%c"; close = "%999X X "; - winnr = ''%{winnr()}''; + winnr = "%{winnr()}"; } '' Lightline component definitions. Uses 'statusline' syntax. @@ -151,7 +151,7 @@ lib.nixvim.plugins.mkNeovimPlugin { "filename" "modified" ]; - } ''A dictionary to store the tab components in each tabs.''; + } "A dictionary to store the tab components in each tabs."; mode_map = defaultNullOpts.mkAttrsOf types.str diff --git a/plugins/by-name/nvim-autopairs/default.nix b/plugins/by-name/nvim-autopairs/default.nix index 8545c321..df9d3cfc 100644 --- a/plugins/by-name/nvim-autopairs/default.nix +++ b/plugins/by-name/nvim-autopairs/default.nix @@ -128,7 +128,7 @@ lib.nixvim.plugins.mkNeovimPlugin { Whether the cursor should be placed before or after the substitution. ''; - keys = lib.nixvim.defaultNullOpts.mkStr "qwertyuiopzxcvbnmasdfghjkl" ''''; + keys = lib.nixvim.defaultNullOpts.mkStr "qwertyuiopzxcvbnmasdfghjkl" ""; highlight = lib.nixvim.defaultNullOpts.mkStr "Search" '' Which highlight group to use for the match. diff --git a/plugins/by-name/overseer/default.nix b/plugins/by-name/overseer/default.nix index 50197685..f6c7522d 100644 --- a/plugins/by-name/overseer/default.nix +++ b/plugins/by-name/overseer/default.nix @@ -77,7 +77,7 @@ lib.nixvim.plugins.mkNeovimPlugin { "q" = "Close"; }; } - ''The task list displays all tasks that have been created. It shows the task status, name, and a summary of the task output.''; + "The task list displays all tasks that have been created. It shows the task status, name, and a summary of the task output."; task_editor = { bindings = diff --git a/plugins/by-name/rest/default.nix b/plugins/by-name/rest/default.nix index 1ad57f6a..f7602bd4 100644 --- a/plugins/by-name/rest/default.nix +++ b/plugins/by-name/rest/default.nix @@ -83,7 +83,7 @@ lib.nixvim.plugins.mkNeovimPlugin { set_compressed = false; }; }; - } ''Table of client configurations.''; + } "Table of client configurations."; cookies = { enable = defaultNullOpts.mkBool true '' diff --git a/plugins/by-name/web-devicons/default.nix b/plugins/by-name/web-devicons/default.nix index 90ddab9b..4db3d82f 100644 --- a/plugins/by-name/web-devicons/default.nix +++ b/plugins/by-name/web-devicons/default.nix @@ -27,7 +27,7 @@ lib.nixvim.plugins.mkNeovimPlugin { cterm_color = defaultNullOpts.mkStr null "Cterm color of the icon."; name = defaultNullOpts.mkStr null "Name to replace with icon."; }; - }) { } ''Custom overrides for icons.''; + }) { } "Custom overrides for icons."; defaultIcon = mkNullOrOption (lib.types.submodule { options = { @@ -35,7 +35,7 @@ lib.nixvim.plugins.mkNeovimPlugin { color = defaultNullOpts.mkStr null "Color of the icon."; cterm_color = defaultNullOpts.mkStr null "Cterm color of the icon."; }; - }) ''Set the default icon when none is found.''; + }) "Set the default icon when none is found."; }; extraConfig = cfg: { diff --git a/plugins/lsp/language-servers/pylsp.nix b/plugins/lsp/language-servers/pylsp.nix index 074aa2d9..a5086a00 100644 --- a/plugins/lsp/language-servers/pylsp.nix +++ b/plugins/lsp/language-servers/pylsp.nix @@ -548,35 +548,35 @@ in with cfg.pythonPackage.pkgs; { pylsp_mypy = pylsp-mypy.overridePythonAttrs (old: { - postPatch = old.postPatch or '''' + '' + postPatch = old.postPatch or "" + '' substituteInPlace setup.cfg \ --replace-fail "python-lsp-server >=1.7.0" "" ''; }); isort = pyls-isort.overridePythonAttrs (old: { - postPatch = old.postPatch or '''' + '' + postPatch = old.postPatch or "" + '' substituteInPlace setup.py \ --replace-fail 'install_requires=["python-lsp-server", "isort"],' 'install_requires=["isort"],' ''; }); black = python-lsp-black.overridePythonAttrs (old: { - postPatch = old.postPatch or '''' + '' + postPatch = old.postPatch or "" + '' substituteInPlace setup.cfg \ --replace-fail "python-lsp-server>=1.4.0" "" ''; }); memestra = pyls-memestra.overridePythonAttrs (old: { - postPatch = old.postPatch or '''' + '' + postPatch = old.postPatch or "" + '' sed -i '/python-lsp-server/d' requirements.txt ''; }); rope = pylsp-rope.overridePythonAttrs (old: { - postPatch = old.postPatch or '''' + '' + postPatch = old.postPatch or "" + '' sed -i '/python-lsp-server/d' setup.cfg ''; }); ruff = python-lsp-ruff.overridePythonAttrs (old: { - postPatch = old.postPatch or '''' + '' + postPatch = old.postPatch or "" + '' sed -i '/python-lsp-server/d' pyproject.toml ''; diff --git a/tests/lib-tests.nix b/tests/lib-tests.nix index 27732228..83c65615 100644 --- a/tests/lib-tests.nix +++ b/tests/lib-tests.nix @@ -105,7 +105,7 @@ let }; }; }; - expected = ''{ a = { b = 1, c = 2, d = { e = 3 } } }''; + expected = "{ a = { b = 1, c = 2, d = { e = 3 } } }"; }; testToLuaObjectNestedList = { @@ -133,7 +133,7 @@ let d = false; e = null; }; - expected = ''{ a = 1.0, b = 2, c = true, d = false }''; + expected = "{ a = 1.0, b = 2, c = true, d = false }"; }; testToLuaObjectNilPrim = { @@ -175,7 +175,7 @@ let f = { }; }; }; - expected = ''{ }''; + expected = "{ }"; }; testToLuaObjectAttrListFilters = { @@ -224,7 +224,7 @@ let ] ]; }; - expected = ''{ { { }, { }, { { }, { } } }, g = { { }, { } } }''; + expected = "{ { { }, { }, { { }, { } } }, g = { { }, { } } }"; }; testToLuaObjectEmptyTable = { @@ -240,7 +240,7 @@ let g = helpers.emptyTable; }; }; - expected = ''{ c = { }, d = { g = { } } }''; + expected = "{ c = { }, d = { g = { } } }"; }; testToLuaObjectEmptyListEntries = { diff --git a/tests/test-sources/plugins/by-name/arrow/default.nix b/tests/test-sources/plugins/by-name/arrow/default.nix index 268b665e..22343649 100644 --- a/tests/test-sources/plugins/by-name/arrow/default.nix +++ b/tests/test-sources/plugins/by-name/arrow/default.nix @@ -30,9 +30,9 @@ prev_item = "["; }; custom_actions = { - open = ''function(target_file_name, current_file_name) end''; - split_vertical = ''function(target_file_name, current_file_name) end''; - split_horizontal = ''function(target_file_name, current_file_name) end''; + open = "function(target_file_name, current_file_name) end"; + split_vertical = "function(target_file_name, current_file_name) end"; + split_horizontal = "function(target_file_name, current_file_name) end"; }; window = { width = "auto"; diff --git a/tests/test-sources/plugins/by-name/glance/default.nix b/tests/test-sources/plugins/by-name/glance/default.nix index f8a9aa1d..6d62a403 100644 --- a/tests/test-sources/plugins/by-name/glance/default.nix +++ b/tests/test-sources/plugins/by-name/glance/default.nix @@ -37,31 +37,31 @@ }; mappings = { list = { - "j".__raw = ''require('glance').actions.next''; - "k".__raw = ''require('glance').actions.previous''; - "".__raw = ''require('glance').actions.next''; - "".__raw = ''require('glance').actions.previous''; - "".__raw = ''require('glance').actions.next_location''; - "".__raw = ''require('glance').actions.previous_location''; - "".__raw = ''require('glance').actions.preview_scroll_win(5)''; - "".__raw = ''require('glance').actions.preview_scroll_win(-5)''; - "v".__raw = ''require('glance').actions.jump_vsplit''; - "s".__raw = ''require('glance').actions.jump_split''; - "t".__raw = ''require('glance').actions.jump_tab''; - "".__raw = ''require('glance').actions.jump''; - "o".__raw = ''require('glance').actions.jump''; - "l".__raw = ''require('glance').actions.open_fold''; - "h".__raw = ''require('glance').actions.close_fold''; + "j".__raw = "require('glance').actions.next"; + "k".__raw = "require('glance').actions.previous"; + "".__raw = "require('glance').actions.next"; + "".__raw = "require('glance').actions.previous"; + "".__raw = "require('glance').actions.next_location"; + "".__raw = "require('glance').actions.previous_location"; + "".__raw = "require('glance').actions.preview_scroll_win(5)"; + "".__raw = "require('glance').actions.preview_scroll_win(-5)"; + "v".__raw = "require('glance').actions.jump_vsplit"; + "s".__raw = "require('glance').actions.jump_split"; + "t".__raw = "require('glance').actions.jump_tab"; + "".__raw = "require('glance').actions.jump"; + "o".__raw = "require('glance').actions.jump"; + "l".__raw = "require('glance').actions.open_fold"; + "h".__raw = "require('glance').actions.close_fold"; "l".__raw = ''require('glance').actions.enter_win("preview")''; - "q".__raw = ''require('glance').actions.close''; - "Q".__raw = ''require('glance').actions.close''; - "".__raw = ''require('glance').actions.close''; - "".__raw = ''require('glance').actions.quickfix''; + "q".__raw = "require('glance').actions.close"; + "Q".__raw = "require('glance').actions.close"; + "".__raw = "require('glance').actions.close"; + "".__raw = "require('glance').actions.quickfix"; }; preview = { - "Q".__raw = ''require('glance').actions.close''; - "".__raw = ''require('glance').actions.next_location''; - "".__raw = ''require('glance').actions.previous_location''; + "Q".__raw = "require('glance').actions.close"; + "".__raw = "require('glance').actions.next_location"; + "".__raw = "require('glance').actions.previous_location"; "l".__raw = ''require('glance').actions.enter_win("list")''; }; }; diff --git a/tests/test-sources/plugins/by-name/grug-far/default.nix b/tests/test-sources/plugins/by-name/grug-far/default.nix index f1dd9ee0..3273a584 100644 --- a/tests/test-sources/plugins/by-name/grug-far/default.nix +++ b/tests/test-sources/plugins/by-name/grug-far/default.nix @@ -23,9 +23,9 @@ placeholders = { enabled = true; search = "ex: foo foo([a-z0-9]*) fun\\("; - replacement = ''ex: bar $${1}_foo $$MY_ENV_VAR''; + replacement = "ex: bar $${1}_foo $$MY_ENV_VAR"; replacement_lua = ''ex: if vim.startsWith(match; "use") \\n then return "employ" .. match \\n else return match end''; - filesFilter = ''ex: *.lua *.{css;js} **/docs/*.md (specify one per line)''; + filesFilter = "ex: *.lua *.{css;js} **/docs/*.md (specify one per line)"; flags = "ex: --help --ignore-case (-i) --replace= (empty replace) --multiline (-U)"; paths = "ex: /foo/bar ../ ./hello\\ world/ ./src/foo.lua ~/.config"; }; diff --git a/tests/test-sources/plugins/by-name/lightline/default.nix b/tests/test-sources/plugins/by-name/lightline/default.nix index 382f513e..284419b8 100644 --- a/tests/test-sources/plugins/by-name/lightline/default.nix +++ b/tests/test-sources/plugins/by-name/lightline/default.nix @@ -11,7 +11,7 @@ colorscheme = "default"; component_function.__raw = "nil"; component = { - mode = ''%{lightline#mode()}''; + mode = "%{lightline#mode()}"; absolutepath = "%F"; relativepath = "%f"; filename = "%t"; @@ -22,16 +22,16 @@ charvalue = "%b"; charvaluehex = "%B"; fileencoding = ''%{&fenc!=#""?&fenc:&enc}''; - fileformat = ''%{&ff}''; + fileformat = "%{&ff}"; filetype = ''%{&ft!=#""?&ft:"no ft"}''; percent = "%3p%%"; percentwin = "%P"; spell = ''%{&spell?&spelllang:""}''; - lineinfo = ''%3l=%-2c''; + lineinfo = "%3l=%-2c"; line = "%l"; column = "%c"; close = "%999X X "; - winnr = ''%{winnr()}''; + winnr = "%{winnr()}"; }; active = { left = [ diff --git a/tests/test-sources/plugins/by-name/rest/default.nix b/tests/test-sources/plugins/by-name/rest/default.nix index 77050905..d8a3a558 100644 --- a/tests/test-sources/plugins/by-name/rest/default.nix +++ b/tests/test-sources/plugins/by-name/rest/default.nix @@ -66,7 +66,7 @@ enable = true; timeout = 750; }; - _log_level.__raw = ''vim.log.levels.WARN''; + _log_level.__raw = "vim.log.levels.WARN"; }; }; }; diff --git a/tests/test-sources/plugins/by-name/rzls/default.nix b/tests/test-sources/plugins/by-name/rzls/default.nix index b001267e..70be8be0 100644 --- a/tests/test-sources/plugins/by-name/rzls/default.nix +++ b/tests/test-sources/plugins/by-name/rzls/default.nix @@ -14,7 +14,7 @@ return nil end ''; - capabilities.__raw = ''vim.lsp.protocol.make_client_capabilities()''; + capabilities.__raw = "vim.lsp.protocol.make_client_capabilities()"; }; }; }; From c82140ffe050cd588ab6cd46f2f5b39c60648172 Mon Sep 17 00:00:00 2001 From: Gaetan Lepage Date: Fri, 23 Jan 2026 10:10:06 +0100 Subject: [PATCH 11/32] treewide: nixfmt-rfc-style -> nixfmt --- flake/dev/fmt.nix | 1 - tests/test-sources/plugins/by-name/conform-nvim/default.nix | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/flake/dev/fmt.nix b/flake/dev/fmt.nix index 110acedd..07bad833 100644 --- a/flake/dev/fmt.nix +++ b/flake/dev/fmt.nix @@ -29,7 +29,6 @@ }; nixfmt = { enable = true; - package = pkgs.nixfmt-rfc-style; }; prettier = { enable = true; diff --git a/tests/test-sources/plugins/by-name/conform-nvim/default.nix b/tests/test-sources/plugins/by-name/conform-nvim/default.nix index 68fad05e..e4c9ca77 100644 --- a/tests/test-sources/plugins/by-name/conform-nvim/default.nix +++ b/tests/test-sources/plugins/by-name/conform-nvim/default.nix @@ -83,7 +83,7 @@ notify_no_formatters = false; formatters = { nixfmt = { - command = lib.getExe pkgs.nixfmt-rfc-style; + command = lib.getExe pkgs.nixfmt; }; myFormatter = { command = "myCmd"; From 68fd38bfa7c477b6cfcd3fc8a82caa850e2b3ab9 Mon Sep 17 00:00:00 2001 From: Gaetan Lepage Date: Fri, 23 Jan 2026 10:19:02 +0100 Subject: [PATCH 12/32] docs/mdbook: remove mdbook-alerts (deprecated and unnecessary) 'mdbook-alerts' has been removed from nixpkgs because it is deprecated and natively supported by mdbook since version 0.5.0 --- docs/mdbook/default.nix | 1 - 1 file changed, 1 deletion(-) diff --git a/docs/mdbook/default.nix b/docs/mdbook/default.nix index c75cbd01..ac3a5e3b 100644 --- a/docs/mdbook/default.nix +++ b/docs/mdbook/default.nix @@ -334,7 +334,6 @@ pkgs.stdenv.mkDerivation (finalAttrs: { buildInputs = [ pkgs.mdbook - pkgs.mdbook-alerts ]; # Build a source from the fileset containing the following paths, From 311377dd8f06063c99da28ee66d69b597c29fce7 Mon Sep 17 00:00:00 2001 From: Gaetan Lepage Date: Fri, 23 Jan 2026 10:22:01 +0100 Subject: [PATCH 13/32] plugins/vscode-diff: update package to codediff-nvim --- plugins/by-name/vscode-diff/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/by-name/vscode-diff/default.nix b/plugins/by-name/vscode-diff/default.nix index a9aa1b11..63a57db1 100644 --- a/plugins/by-name/vscode-diff/default.nix +++ b/plugins/by-name/vscode-diff/default.nix @@ -1,7 +1,7 @@ { lib, ... }: lib.nixvim.plugins.mkNeovimPlugin { name = "vscode-diff"; - package = "vscode-diff-nvim"; + package = "codediff-nvim"; maintainers = [ lib.maintainers.GaetanLepage ]; From dc9a0eb81bd4632f010aa3a156e485d8ebc9da15 Mon Sep 17 00:00:00 2001 From: Austin Horstman Date: Fri, 23 Jan 2026 09:26:04 -0600 Subject: [PATCH 14/32] tests/plugins/vscode-diff: disable until plugin update Currently failing due to a linux bug in recent update. Fixed upstream and will be available in next flake.lock update. --- .../test-sources/plugins/by-name/vscode-diff/default.nix | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/tests/test-sources/plugins/by-name/vscode-diff/default.nix b/tests/test-sources/plugins/by-name/vscode-diff/default.nix index f731ad91..46dbf7c4 100644 --- a/tests/test-sources/plugins/by-name/vscode-diff/default.nix +++ b/tests/test-sources/plugins/by-name/vscode-diff/default.nix @@ -1,9 +1,15 @@ { empty = { + # TODO: re-enable after next flake lock update (nixpkgs PR #482779) + # Plugin tries to download libgomp from GitHub during setup + test.runNvim = false; plugins.vscode-diff.enable = true; }; defaults = { + # TODO: re-enable after next flake lock update (nixpkgs PR #482779) + # Plugin tries to download libgomp from GitHub during setup + test.runNvim = false; plugins.vscode-diff = { enable = true; @@ -32,6 +38,9 @@ }; example = { + # TODO: re-enable after next flake lock update (nixpkgs PR #482779) + # Plugin tries to download libgomp from GitHub during setup + test.runNvim = false; plugins.vscode-diff = { enable = true; From 1d9e19a8b8ec9ee34ce52ae2aeb16fd2207aa202 Mon Sep 17 00:00:00 2001 From: Austin Horstman Date: Fri, 23 Jan 2026 09:29:00 -0600 Subject: [PATCH 15/32] tests/plugins/dap-view: fix deprecated/removed settings --- .../plugins/by-name/dap-view/default.nix | 67 ++++++++++++------- 1 file changed, 42 insertions(+), 25 deletions(-) diff --git a/tests/test-sources/plugins/by-name/dap-view/default.nix b/tests/test-sources/plugins/by-name/dap-view/default.nix index 045c9bcb..e9e29af6 100644 --- a/tests/test-sources/plugins/by-name/dap-view/default.nix +++ b/tests/test-sources/plugins/by-name/dap-view/default.nix @@ -25,42 +25,34 @@ breakpoints = { keymap = "B"; label = "Breakpoints [B]"; - short_label = " [B]"; }; scopes = { keymap = "S"; label = "Scopes [S]"; - short_label = "󰂥 [S]"; }; exceptions = { keymap = "E"; label = "Exceptions [E]"; - short_label = "󰢃 [E]"; }; watches = { keymap = "W"; label = "Watches [W]"; - short_label = "󰛐 [W]"; }; threads = { keymap = "T"; label = "Threads [T]"; - short_label = "󱉯 [T]"; }; repl = { keymap = "R"; label = "REPL [R]"; - short_label = "󰯃 [R]"; }; sessions = { keymap = "K"; label = "Sessions [K]"; - short_label = " [K]"; }; console = { keymap = "C"; label = "Console [C]"; - short_label = "󰆍 [C]"; }; }; custom_sections.__empty = { }; @@ -81,34 +73,60 @@ }; }; windows = { - height = 0.25; + size = 0.25; position = "below"; terminal = { - width = 0.5; + size = 0.5; position = "left"; hide.__empty = { }; - start_hidden = false; }; }; icons = { - disabled = ""; - disconnect = ""; - enabled = ""; + disabled = ""; + disconnect = ""; + enabled = ""; filter = "󰈲"; - negate = " "; - pause = ""; - play = ""; - run_last = ""; - step_back = ""; - step_into = ""; - step_out = ""; - step_over = ""; - terminate = ""; + negate = " "; + pause = ""; + play = ""; + run_last = ""; + step_back = ""; + step_into = ""; + step_out = ""; + step_over = ""; + terminate = ""; }; help = { border.__raw = "nil"; }; - switchbuf = "usetab"; + render = { + sort_variables.__raw = "nil"; + threads = { + format.__raw = '' + function(name, lnum, path) + return { + { part = name, separator = " " }, + { part = path, hl = "FileName", separator = ":" }, + { part = lnum, hl = "LineNumber" }, + } + end + ''; + align = false; + }; + breakpoints = { + format.__raw = '' + function(line, lnum, path) + return { + { part = path, hl = "FileName" }, + { part = lnum, hl = "LineNumber" }, + { part = line, hl = true }, + } + end + ''; + align = false; + }; + }; + switchbuf = "usetab,uselast"; auto_toggle = false; follow_tab = false; }; @@ -126,7 +144,6 @@ }; windows.terminal = { position = "right"; - start_hidden = true; }; }; }; From 60d72ae1871ee570100282545b87ed8de24ed5d6 Mon Sep 17 00:00:00 2001 From: Austin Horstman Date: Fri, 23 Jan 2026 09:41:06 -0600 Subject: [PATCH 16/32] tests/plugins/indent-tools: skip tests Upstream needs to be updated to be compatible with latest nvim-treesitter-textobjects main branch. --- .../plugins/by-name/indent-tools/default.nix | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/tests/test-sources/plugins/by-name/indent-tools/default.nix b/tests/test-sources/plugins/by-name/indent-tools/default.nix index 3223eec6..f5e2e609 100644 --- a/tests/test-sources/plugins/by-name/indent-tools/default.nix +++ b/tests/test-sources/plugins/by-name/indent-tools/default.nix @@ -1,9 +1,15 @@ { empty = { + # TODO: upstream needs update to support nvim-treesitter-textobjects namespace: + # local ts_repeat_move = require "nvim-treesitter-textobjects.repeatable_move" + test.runNvim = false; plugins.indent-tools.enable = true; }; defaults = { + # TODO: upstream needs update to support nvim-treesitter-textobjects namespace: + # local ts_repeat_move = require "nvim-treesitter-textobjects.repeatable_move" + test.runNvim = false; plugins.indent-tools = { enable = true; @@ -22,6 +28,9 @@ }; example = { + # TODO: upstream needs update to support nvim-treesitter-textobjects namespace: + # local ts_repeat_move = require "nvim-treesitter-textobjects.repeatable_move" + test.runNvim = false; plugins.indent-tools = { enable = true; From 5ccb57eab75c79e0dd130f5a2507b25318acfacf Mon Sep 17 00:00:00 2001 From: Austin Horstman Date: Fri, 23 Jan 2026 09:41:29 -0600 Subject: [PATCH 17/32] tests/plugins/efmls-configs: skip broken tools --- tests/test-sources/plugins/by-name/efmls-configs/default.nix | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/tests/test-sources/plugins/by-name/efmls-configs/default.nix b/tests/test-sources/plugins/by-name/efmls-configs/default.nix index 39494981..52cc5175 100644 --- a/tests/test-sources/plugins/by-name/efmls-configs/default.nix +++ b/tests/test-sources/plugins/by-name/efmls-configs/default.nix @@ -22,6 +22,10 @@ ]; brokenTools = [ + # TODO: 2026-01-23: dmd build failure with gcc 15 (nullptr identifier) + "dfmt" + "dmd" + # 2025-12-24: phpPackages.php-codesniffer is broken # https://github.com/NixOS/nixpkgs/pull/459254#issuecomment-3689578764 "phpcbf" From c01132cd90f1a94643f561bf6045d147e9c7394b Mon Sep 17 00:00:00 2001 From: Austin Horstman Date: Fri, 23 Jan 2026 09:53:00 -0600 Subject: [PATCH 18/32] tests/plugins/origami: fix deprecated settings --- tests/test-sources/plugins/by-name/origami/default.nix | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/tests/test-sources/plugins/by-name/origami/default.nix b/tests/test-sources/plugins/by-name/origami/default.nix index 25e7cb16..8a43cc2c 100644 --- a/tests/test-sources/plugins/by-name/origami/default.nix +++ b/tests/test-sources/plugins/by-name/origami/default.nix @@ -8,7 +8,10 @@ enable = true; settings = { - useLspFoldsWithTreesitterFallback = true; + useLspFoldsWithTreesitterFallback = { + enabled = true; + foldmethodIfNeitherIsAvailable = "indent"; + }; pauseFoldsOnSearch = true; foldtext = { enabled = true; @@ -29,7 +32,7 @@ }; foldKeymaps = { setup = true; - hOnlyOpensOnFirstColumn = false; + closeOnlyOnFirstColumn = false; }; }; }; From fd05c80865d3abdbd749e9c016b59b20e55e9431 Mon Sep 17 00:00:00 2001 From: Austin Horstman Date: Fri, 23 Jan 2026 10:37:16 -0600 Subject: [PATCH 19/32] plugins/conform-nvim: mark packages broken --- plugins/by-name/conform-nvim/formatter-packages.nix | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/plugins/by-name/conform-nvim/formatter-packages.nix b/plugins/by-name/conform-nvim/formatter-packages.nix index 650e66ec..e2300d22 100644 --- a/plugins/by-name/conform-nvim/formatter-packages.nix +++ b/plugins/by-name/conform-nvim/formatter-packages.nix @@ -36,6 +36,9 @@ in # 2025-10-08 build failure (haskellPackages.hindent) hindent = states.broken haskellPackages.hindent; + # TODO: 2026-01-23 docstrfmt test failure in nixpkgs + docstrfmt = states.broken python313Packages.docstrfmt; + format-queries = null; # Uses neovim itself init = null; # Internal thingamajig injected = null; # Internal formatter @@ -112,7 +115,8 @@ in fish_indent = fishMinimal; forge_fmt = foundry; format-dune-file = dune_3; - gdformat = gdtoolkit_4; + # TODO: 2026-01-23 gdscript-formatter hash mismatch in nixpkgs + gdformat = states.broken gdtoolkit_4; gofmt = go; goimports = gotools; hcl = hclfmt; From a7df38160c299f37e96ab5f3ad0b3794ccac4575 Mon Sep 17 00:00:00 2001 From: Austin Horstman Date: Fri, 23 Jan 2026 10:37:43 -0600 Subject: [PATCH 20/32] tests/plugins/conform-nvim: skip broken packages We don't need to try testing things we know are broken. --- .../plugins/by-name/conform-nvim/default.nix | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/tests/test-sources/plugins/by-name/conform-nvim/default.nix b/tests/test-sources/plugins/by-name/conform-nvim/default.nix index e4c9ca77..f57ba11f 100644 --- a/tests/test-sources/plugins/by-name/conform-nvim/default.nix +++ b/tests/test-sources/plugins/by-name/conform-nvim/default.nix @@ -6,7 +6,19 @@ all-formatters = let - allFormatters = lib.importJSON ../../../../../generated/conform-formatters.json; + inherit + (import ../../../../../plugins/by-name/conform-nvim/formatter-packages.nix { inherit pkgs; }) + formatter-packages + states + ; + stateList = map (state: lib.fix (lib.toFunction state)) (builtins.attrValues states); + allFormatters = builtins.filter ( + name: + let + maybePackage = formatter-packages.${name} or null; + in + maybePackage != null && !builtins.elem maybePackage stateList + ) (lib.importJSON ../../../../../generated/conform-formatters.json); in { plugins.conform-nvim = { From 65ff8ffbe4460f0da6f5e897708b5127e56b1711 Mon Sep 17 00:00:00 2001 From: Austin Horstman Date: Fri, 23 Jan 2026 11:40:40 -0600 Subject: [PATCH 21/32] tests/plugins/treesitter-refactor: fix duplicate treesitter test Plugin is abandoned and only supports legacy. Update test to reflect that. --- .../plugins/by-name/treesitter-refactor/default.nix | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/tests/test-sources/plugins/by-name/treesitter-refactor/default.nix b/tests/test-sources/plugins/by-name/treesitter-refactor/default.nix index e4421c71..83ea58e1 100644 --- a/tests/test-sources/plugins/by-name/treesitter-refactor/default.nix +++ b/tests/test-sources/plugins/by-name/treesitter-refactor/default.nix @@ -1,14 +1,21 @@ +{ pkgs, ... }: { empty = { plugins = { - treesitter.enable = true; + treesitter = { + enable = true; + package = pkgs.vimPlugins.nvim-treesitter-legacy; + }; treesitter-refactor.enable = true; }; }; example = { plugins = { - treesitter.enable = true; + treesitter = { + enable = true; + package = pkgs.vimPlugins.nvim-treesitter-legacy; + }; treesitter-refactor = { enable = true; From abf20426cd573063e4268a0132a040508e676c7a Mon Sep 17 00:00:00 2001 From: Austin Horstman Date: Fri, 23 Jan 2026 11:57:17 -0600 Subject: [PATCH 22/32] modules/lsp/servers: add new unpackaged deps --- modules/lsp/servers/packages.nix | 2 ++ 1 file changed, 2 insertions(+) diff --git a/modules/lsp/servers/packages.nix b/modules/lsp/servers/packages.nix index 4f0abcb5..eaa4526a 100644 --- a/modules/lsp/servers/packages.nix +++ b/modules/lsp/servers/packages.nix @@ -63,6 +63,7 @@ "glasgow" "glint" "gnls" + "gn_language_server" "gradle_ls" "grammarly" "graphql" # nodePackages.graphql-language-service-cli was removed in https://github.com/NixOS/nixpkgs/pull/382557 @@ -120,6 +121,7 @@ "prolog_ls" "prosemd_lsp" "pug" + "pony_language_server" "puppet" "purescriptls" "pyre" From 0554e89cdf878cafba3d48e92209ed0a6309d275 Mon Sep 17 00:00:00 2001 From: Austin Horstman Date: Fri, 23 Jan 2026 11:57:29 -0600 Subject: [PATCH 23/32] plugins/none-ls: add gitleaks --- plugins/by-name/none-ls/packages.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/plugins/by-name/none-ls/packages.nix b/plugins/by-name/none-ls/packages.nix index 07e44d07..b492fef3 100644 --- a/plugins/by-name/none-ls/packages.nix +++ b/plugins/by-name/none-ls/packages.nix @@ -55,6 +55,7 @@ in "fprettify" "gersemi" "gitlint" + "gitleaks" "gofumpt" "golines" "hadolint" From a4c3066e025cf0d65497767d6f26993155c46fac Mon Sep 17 00:00:00 2001 From: Austin Horstman Date: Fri, 23 Jan 2026 12:01:58 -0600 Subject: [PATCH 24/32] tests/plugins/venv-selector: remove outdated setting --- tests/test-sources/plugins/by-name/venv-selector/default.nix | 1 - 1 file changed, 1 deletion(-) diff --git a/tests/test-sources/plugins/by-name/venv-selector/default.nix b/tests/test-sources/plugins/by-name/venv-selector/default.nix index b754d3d6..9b732bc8 100644 --- a/tests/test-sources/plugins/by-name/venv-selector/default.nix +++ b/tests/test-sources/plugins/by-name/venv-selector/default.nix @@ -38,7 +38,6 @@ notify_user_on_venv_activation = false; search_timeout = 5; debug = false; - fd_binary_name = lib.nixvim.mkRaw "require('venv-selector.config').find_fd_command_name()"; require_lsp_activation = true; on_telescope_result_callback.__raw = "nil"; picker_filter_type = "substring"; From a704c5ac0b2de9cd4519e3f99398892ebfaaaa39 Mon Sep 17 00:00:00 2001 From: Austin Horstman Date: Fri, 23 Jan 2026 12:03:57 -0600 Subject: [PATCH 25/32] docs/mdbook: remove invalid multilingual setting https://github.com/rust-lang/mdBook/pull/2775 --- docs/mdbook/book.toml | 1 - 1 file changed, 1 deletion(-) diff --git a/docs/mdbook/book.toml b/docs/mdbook/book.toml index c022e426..79dd7c26 100644 --- a/docs/mdbook/book.toml +++ b/docs/mdbook/book.toml @@ -1,7 +1,6 @@ [book] authors = [] language = "en" -multilingual = false src = "." title = "nixvim docs" From 5278f01d0cee87d2d69b71b5997d9ff87df33359 Mon Sep 17 00:00:00 2001 From: Austin Horstman Date: Fri, 23 Jan 2026 12:10:45 -0600 Subject: [PATCH 26/32] docs/mdbook: remove redundant alerts Says it's included by default in latest version we have in nixpkgs. --- docs/mdbook/book.toml | 2 -- 1 file changed, 2 deletions(-) diff --git a/docs/mdbook/book.toml b/docs/mdbook/book.toml index 79dd7c26..06a94c4a 100644 --- a/docs/mdbook/book.toml +++ b/docs/mdbook/book.toml @@ -17,5 +17,3 @@ git-repository-url = "https://github.com/nix-community/nixvim" [output.html.fold] enable = true level = 0 - -[preprocessor.alerts] From c807eb762bfd47011ab242922509e287fb00d756 Mon Sep 17 00:00:00 2001 From: Austin Horstman Date: Fri, 23 Jan 2026 12:13:40 -0600 Subject: [PATCH 27/32] plugins/obsidian: include git dependency Fixes tests because of package change that calls git --- plugins/by-name/obsidian/default.nix | 3 +++ 1 file changed, 3 insertions(+) diff --git a/plugins/by-name/obsidian/default.nix b/plugins/by-name/obsidian/default.nix index 26355020..1c38744f 100644 --- a/plugins/by-name/obsidian/default.nix +++ b/plugins/by-name/obsidian/default.nix @@ -10,6 +10,9 @@ lib.nixvim.plugins.mkNeovimPlugin { maintainers = [ lib.maintainers.GaetanLepage ]; + # TODO: upstream inclusion/patch + dependencies = [ "git" ]; + settingsExample = { workspaces = [ { From edbd483f08dbb0a0c08a212ad05dc60e29217fec Mon Sep 17 00:00:00 2001 From: Austin Horstman Date: Fri, 23 Jan 2026 12:18:38 -0600 Subject: [PATCH 28/32] tests/lsp-servers: disable shopify_theme_ls --- tests/lsp-servers.nix | 3 +++ 1 file changed, 3 insertions(+) diff --git a/tests/lsp-servers.nix b/tests/lsp-servers.nix index 2408b123..fbb2f7b1 100644 --- a/tests/lsp-servers.nix +++ b/tests/lsp-servers.nix @@ -48,6 +48,9 @@ let # See https://github.com/neovim/nvim-lspconfig/blob/master/lua/lspconfig.lua "ruff_lsp" "typst_lsp" + + # TODO: 2026-01-23 build failure + "shopify_theme_ls" ]; in { From 22dd228f3676476eec39026de26154c8b4ce126e Mon Sep 17 00:00:00 2001 From: Austin Horstman Date: Fri, 23 Jan 2026 12:47:52 -0600 Subject: [PATCH 29/32] tests/plugins/lz-n: resolve treesitter conflict Just remove the dependency on treesitter for testing lz-n. --- tests/test-sources/plugins/pluginmanagers/lz-n.nix | 13 ------------- 1 file changed, 13 deletions(-) diff --git a/tests/test-sources/plugins/pluginmanagers/lz-n.nix b/tests/test-sources/plugins/pluginmanagers/lz-n.nix index 0d830491..73af5a39 100644 --- a/tests/test-sources/plugins/pluginmanagers/lz-n.nix +++ b/tests/test-sources/plugins/pluginmanagers/lz-n.nix @@ -74,12 +74,9 @@ in dial-nvim vimtex telescope-nvim - nvim-biscuits crates-nvim ]); - plugins.treesitter.enable = true; - plugins.lz-n = { enable = true; plugins = [ @@ -130,16 +127,6 @@ in end ''; } - # On event - { - __unkeyed-1 = "nvim-biscuits"; - event.__raw = "{ 'BufEnter *.lua' }"; - after.__raw = '' - function() - require('nvim-biscuits').setup({}) - end - ''; - } # On command no setup function, priority { __unkeyed-1 = "telescope.nvim"; From bb0d555610d8bc8a2f4d0150c83ca288447bf932 Mon Sep 17 00:00:00 2001 From: Austin Horstman Date: Fri, 23 Jan 2026 12:50:53 -0600 Subject: [PATCH 30/32] tests/all-package-defaults: skip aarch64-darwin failures --- tests/all-package-defaults.nix | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/tests/all-package-defaults.nix b/tests/all-package-defaults.nix index 8cbec617..0998d23d 100644 --- a/tests/all-package-defaults.nix +++ b/tests/all-package-defaults.nix @@ -168,12 +168,18 @@ let # 2025-10-20: dependency mlton build failure "smlfmt" + # 2026-01-23: build failure on aarch64-darwin + "github-copilot-cli" + # As of 2025-07-25, zig-zlint is failing on aarch64-darwin "zig-zlint" # 2025-09-08, build failure # https://github.com/NixOS/nixpkgs/pull/441058 "verible" + + # 2025-09-16 zig/zig-hook is marked as broken on x86_64-darwin; also fails on aarch64-darwin + "zf" ]; isEnabled = p: !(builtins.elem (lib.getName p) disabledPackages); From 0dd35171c808dbb31846d41a762a9264b87aa6be Mon Sep 17 00:00:00 2001 From: Austin Horstman Date: Fri, 23 Jan 2026 12:53:53 -0600 Subject: [PATCH 31/32] tests/all-package-defaults: skip x86_64-darwin failures --- tests/all-package-defaults.nix | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/tests/all-package-defaults.nix b/tests/all-package-defaults.nix index 0998d23d..884d3ef5 100644 --- a/tests/all-package-defaults.nix +++ b/tests/all-package-defaults.nix @@ -153,6 +153,19 @@ let "zf" "zls" + # 2026-01-23: build failures on x86_64-darwin + "arrow-cpp" + "azurite" + "basedpyright" + "ccls" + "dbee-bin" + "gemini-cli" + "github-copilot-cli" + "nvim-dbee" + "odin" + "ols" + "thrift" + # luau-lsp is marked as broken on x86_64-darwin "luau-lsp.nvim" ] From 34a7d94cdcd2b034eb06202992bed1345aa046c9 Mon Sep 17 00:00:00 2001 From: Carlos Henrique Date: Wed, 21 Jan 2026 15:08:35 -0300 Subject: [PATCH 32/32] user-configs: add @carl0xs config --- docs/user-configs/list.toml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/docs/user-configs/list.toml b/docs/user-configs/list.toml index 1a1cd846..7e0e71ae 100644 --- a/docs/user-configs/list.toml +++ b/docs/user-configs/list.toml @@ -190,3 +190,9 @@ owner = "literally-sai" title = "vermvim" description = "nixvim flake, with custom base16 loader" url = "https://github.com/literally-sai/vermvim" + +[[config]] +owner = "carl0xs" +title = "nixcfg" +description = "Nix configuration setup, including nixvim" +url = "https://github.com/carl0xs/nixcfg/blob/main/modules/workstation/neovim.nix"