Commit Graph
100 Commits
Author SHA1 Message Date
Austin Horstman c6a99bb41f modules/nixpkgs: warn about platform specs
Document that fully elaborated platform attrsets from another Nixpkgs instance can be unsafe when Nixvim imports a different nixpkgs.source.
2026-06-29 04:20:49 +00:00
Austin Horstman adfa139f94 wrappers: inherit platform config tuples
Nixvim wrapper modules passed the host nixpkgs' fully elaborated stdenv.{host,build}Platform attrsets into Nixvim's own nixpkgs import.

When the host and Nixvim nixpkgs revisions disagreed, those platform attrsets could be re-elaborated by a different lib.systems, causing eval recursion or platform-schema errors.

Pass only { config = ...; } as the inherited platform spec instead. This keeps ABI/libc details while letting Nixvim's selected nixpkgs elaborate the platform itself.
2026-06-29 04:20:49 +00:00
Austin Horstman d43c763fd9 plugins/efmls-configs: map available packagings
Move newly available efmls formatters and linters from unpackaged to
explicit package mappings.
2026-06-16 19:23:42 +00:00
Austin Horstman 5dddd55a12 plugins/none-ls: map packaged tools
Promote additional formatter/linter names from nullAttrs to explicit
package mappings in none-ls.
2026-06-16 19:23:42 +00:00
Austin Horstman d40cfe3ab4 plugins/conform-nvim: map available formatter packages
Use nixpkgs-packaged formatters from formatter-packages instead of
unpackaged list.
2026-06-16 19:23:42 +00:00
Austin Horstman 157cbcb47b modules/lsp/packages: map newly packaged servers
Move servers from unpackaged list to direct nixpkgs packages where
binary names are now available so auto-install can resolve them.
2026-06-16 19:23:42 +00:00
Austin Horstman 1d91fc6f88 modules/lsp/packages: add dexter packaged 2026-06-15 19:17:02 +00:00
Austin Horstman 19a4e5efa1 modules/output: reject vim plugins in extraPackages
Prevent Vim plugin derivations from being silently treated as PATH packages and point users to extraPlugins instead.
2026-06-13 17:52:26 +00:00
Austin Horstman 7259329db1 flake/dev/new-plugin: type scaffold script 2026-05-24 11:19:50 +00:00
Austin Horstman 9032ffde3c flake/dev/new-plugin: reuse plugin template in scaffold
Closes #3722
2026-05-24 11:19:50 +00:00
Austin Horstman 06a19e0783 modules/output: assert pure rtp needs wrapper 2026-05-24 04:27:26 +00:00
Austin Horstman d82f383100 modules/output: load wrapped config via VIMINIT
Wrapped Nixvim configs previously passed the generated init.lua with -u. Neovim treats that startup path as an explicit user config and skips exrc processing, so project-local .nvim.lua files were not sourced even when users enabled the exrc option.

Load the generated config through a forced VIMINIT instead. This preserves the current wrapped-config precedence while allowing Neovim's normal exrc startup path to run for trusted project config files.

When impureRtp is disabled, clear XDG_CONFIG_DIRS and VIM from an early --cmd before sysinit is checked, then restore them before loading the generated config so runtime code and child processes see the original environment.

Keep the saved startup environment in a short-lived global Lua table shared between the --cmd and VIMINIT chunks, then clear it after restore.

Add a modules-output regression test that checks the wrapper args no longer include -u, verifies VIMINIT is set, confirms trusted .nvim.lua is sourced, blocks sysinit.vim, verifies XDG_CONFIG_DIRS and VIM are restored, and ensures the saved startup state is cleared.

Closes #3506
2026-05-24 04:27:26 +00:00
Austin Horstman 4503b3c5e9 plugins/vectorcode: add codecompanion integration 2026-05-22 02:10:12 +00:00
Austin Horstman 291ae38d9e plugins/claudecode: add module
Closes #3500
2026-05-22 01:47:53 +00:00
Austin HorstmanandMatt Sturgeon 7f6f92a3c9 modules/lsp/onAttach: preserve event scope
Pass the LspAttach autocmd event into the shared onAttach helper so existing configs can still read event.buf and event.data.client_id after dynamic registration support moved the user body out of the autocmd callback.

For registerCapability reruns, provide a synthetic event with the fields Neovim documents for LspAttach that nixvim can still know: buf and data.client_id.

Fixes #4335
2026-05-21 21:32:05 +00:00
Austin Horstman 28eb36007c plugins/cspell: add module
Closes #2812
2026-05-21 21:00:09 +00:00
Austin Horstman a5a46c9447 dependencies: add cspell package 2026-05-21 21:00:09 +00:00
Austin Horstman 3ab66a1b06 plugins/trailblazer: add module
Closes #3453
2026-05-21 21:00:06 +00:00
Austin Horstman 8236161d3b plugins/live-share: add module
Closes #3650
2026-05-21 21:00:02 +00:00
Austin Horstman 0ae783996f plugins/codecompanion-history: add module
Closes #3325
2026-05-21 20:59:58 +00:00
Austin Horstman b2f6193e4e plugins/justice: add module
Closes #4205
2026-05-21 20:59:54 +00:00
Austin Horstman b680cf0ba3 plugins/just: add module
Closes #4204
2026-05-21 20:59:54 +00:00
Austin Horstman aa6fe35cff dependencies: add just package 2026-05-21 20:59:54 +00:00
Austin Horstman 60cbd020f6 plugins/sioyek-highlights: add module
Closes #4259
2026-05-21 20:59:41 +00:00
Austin Horstman fb7de4e724 dependencies: add sioyek package deps 2026-05-21 20:59:41 +00:00
Austin HorstmanandGaétan Lepage 2d7cf9616b plugins/vectorcode: add module
Closes #3326
2026-05-20 22:55:13 +00:00
Austin HorstmanandGaétan Lepage 5f2f6cecca dependencies: add vectorcode package 2026-05-20 22:55:13 +00:00
Austin HorstmanandGaétan Lepage d633eb629f plugins/lsp-progress: add module
Closes https://github.com/nix-community/nixvim/issues/4296
2026-05-20 22:46:46 +00:00
Austin HorstmanandGaétan Lepage e690fa934f plugins/neotab: add module
Closes #4186
2026-05-20 22:39:02 +00:00
Austin HorstmanandGaétan Lepage 30e1116b64 plugins/codex: add module
Closes #4220
2026-05-20 22:33:52 +00:00
Austin HorstmanandGaétan Lepage 31613daf87 dependencies: add codex package 2026-05-20 22:33:52 +00:00
Austin Horstman aeec62d406 contributing: fix table breaking syntax 2026-05-20 19:49:47 +00:00
Austin Horstman cfa19cd47e contributing: fix inaccurate suggested path
Doesn't match current repo layout or ci check.
2026-05-20 19:49:47 +00:00
Austin Horstman 50dc4dc10f contributing: notes about creating/testing plugin
Specify more clearly how to create a new plugin and test just that
plugin to avoid large nixvim eval and closure sizes.
2026-05-20 19:49:47 +00:00
Austin Horstman c7e82d37c2 modules/lsp/onAttach: handle dynamic registrations
Some LSP servers register capabilities after LspAttach, so the global onAttach body must also run from client/registerCapability for buffers already attached to that client.

Keep the initial LspAttach autocmd for servers that advertise capabilities up front, and preserve the wrapped handler's return value.

Closes #3323
2026-05-20 17:06:06 +00:00
Austin Horstman 13ba3f7ca9 plugins/jdtls: prefer vim.lsp config registration
nvim-jdtls 0.11+ can be initialized through native Vim LSP config, so explicit FileType start_or_attach is no longer needed.

This avoids passing an empty table into start_or_attach, which triggers the runtime assertion when cmd is unset.

Instead, map plugins.jdtls.settings to lsp.servers.jdtls.config and keep the server enabled by default.

close #4165
2026-05-19 13:59:41 +00:00
Austin HorstmanandGaétan Lepage 1f472636ff tests/all-package-defaults: disable darwin failures 2026-05-04 11:46:50 +00:00
Austin HorstmanandGaétan Lepage 08d30da9a2 plugins/lint: add clj-kondo 2026-05-04 11:46:50 +00:00
Austin HorstmanandGaétan Lepage a4ab30928b modules/editorconfig: remove concatLines usage
Related https://github.com/NixOS/nixpkgs/pull/506077 and
https://github.com/NixOS/nixpkgs/pull/514350
2026-05-04 11:46:50 +00:00
Austin HorstmanandGaétan Lepage d4f718bb02 plugins/refactoring: migrate to ui-select
Upstream changed behavior.
2026-05-04 11:46:50 +00:00
Austin HorstmanandGaétan Lepage 687be63e7f plugins/lint: vacuum -> vacuum-go 2026-05-04 11:46:50 +00:00
Austin Horstman a67d9cd6ff modules/top-level/output: add autowrapRuntimeDeps
Support user's overriding the wrapper behavior for wrapping runtime deps
from nixpkgs. Default to enabled, matching the wrapper.
2026-04-26 20:45:45 +00:00
Austin Horstman e61a31b597 plugins/lz-n: support importing plugin specs 2026-04-25 23:58:09 +00:00
Austin Horstman f6fd130ad3 lib/plugins: add public callSetup override
Expose a user-facing callSetup option for mkNeovimPlugin users while keeping plugin defaults internal. Preserve optional setup semantics, document the override, and cover the new behavior with unit and failure tests.
2026-04-25 01:23:51 +00:00
Austin Horstman 53d9c3c50b plugins/blink-indent: use optional setup 2026-04-25 01:23:51 +00:00
Austin Horstman 92ec3b4c3e plugins/fff: use optional setup 2026-04-25 01:23:51 +00:00
Austin Horstman 3f710c0440 lib/plugins: add optional setup plumbing 2026-04-25 01:23:51 +00:00
Austin Horstman 0f6b022322 modules/commands: support command preview
Expose nvim_create_user_command preview callbacks through userCommands so command previews can be configured declaratively instead of requiring raw setup Lua.
2026-04-24 21:59:51 +00:00
Austin Horstman 02bf85b6d4 tests: skip builds for warning-only cases 2026-04-24 21:51:09 +00:00
Austin Horstman 494348a800 modules/lazyload: fix provider warning formatting
First item indentation was off, update warning test to cover case.
2026-04-24 21:36:31 +00:00
Austin HorstmanandGaétan Lepage 3a831afd07 modules/lazyload: fix provider warning detection
Check the existing lazyLoad option when collecting plugins that request lazy loading without an enabled provider. The previous lowercase lookup skipped the warning entirely.

Add a regression test that expects the missing-provider warning.
2026-04-24 21:17:45 +00:00
Austin HorstmanandGaétan Lepage b684241888 plugins/spring-boot: add module and java warning 2026-04-24 17:30:18 +00:00
Austin Horstman fcb1d4b95f plugins/treesitter: add highlight disable option 2026-04-24 15:55:42 +00:00
Austin Horstman ee8269e46f plugins/lint: add auto-install support 2026-04-24 12:00:37 +00:00
Austin Horstman f63fae1335 ci: generate nvim-lint linter list 2026-04-24 12:00:37 +00:00
Austin HorstmanandMatt Sturgeon 948b6c0125 plugins/lsp: add capabilities example 2026-04-24 06:12:39 +00:00
Austin Horstman 53aad7a9aa CONTRIBUTING: explain common test attrset names 2026-04-22 04:06:52 +00:00
Austin Horstman 27414212a2 modules/top-level/files: use localOpts in example 2026-04-22 04:02:09 +00:00
Austin Horstman 8846a4f232 plugins/dropbar: align name_regex with upstream
Replace the copied wrapper form with the final Vim regex string and
update the test fixture to match. This preserves upstream regex behavior
while still avoiding the broken Nix string escape warning.
2026-04-22 01:19:39 +00:00
b95b90f8c9 ci: add nix and lix parse checks
Co-authored-by: Wolfgang Walther <walther@technowledgy.de>
Co-authored-by: piegames <git@piegames.de>
2026-04-22 01:19:39 +00:00
Austin Horstman 4efe04e747 treewide: fix incorrect string escapes
Done with help of lix parsing for warnings.
2026-04-22 01:19:39 +00:00
Austin Horstman a587a96a48 plugins/treesitter-textobjects: keymaps update
Breaking changes recently introduced in all the nvim-treesitter rewrite.
Just make it more known that the `settings` keymaps will have no effect
in newer versions.
2026-04-10 16:11:37 +00:00
Austin Horstman 8f634488bc plugins/sidekick: don't bundle providers default
Default to no providers installed, opt-in vs opt-out to reduce closure
size by default. Most of these require subscriptions or familiarity with
anyways and doesn't make sense to default enable everything.
2026-04-10 15:59:54 +00:00
Austin Horstman 8e608496d9 plugins/dap: add configuration examples to docs 2026-04-10 15:40:45 +00:00
Austin Horstman 47844a7f6b plugins/treesitter: recommend configured package
Recommend accessing the configured package instead of the upstream
generic package from nixpkgs.
2026-04-10 15:19:57 +00:00
Austin HorstmanandGaétan Lepage cfd9affcf9 tests/all-package-defaults: disable flow and fstar on darwin 2026-04-09 22:47:18 +00:00
Austin HorstmanandGaétan Lepage c050ddce29 tests/all-package-defaults: disable fortitude on darwin 2026-04-09 22:47:18 +00:00
Austin HorstmanandGaétan Lepage 61876f3936 tests/nvim-surround: drop removed keymaps setting
default> As of nvim-surround v4, keymaps are no longer set up using the
setup function. Please see `:h nvim-surround.migrating.v3_to_v4`.
2026-04-09 22:47:18 +00:00
Austin HorstmanandGaétan Lepage e5393a55e9 tests/pylsp: skip broken memestra build on python3.13 2026-04-09 22:47:18 +00:00
Austin HorstmanandGaétan Lepage 5690a3ea1f plugins/mkdnflow: update examples for upstream config changes 2026-04-09 22:47:18 +00:00
Austin HorstmanandGaétan Lepage 0d5e1973f8 tests/minuet: update deprecated lsp completion keys 2026-04-09 22:47:18 +00:00
Austin HorstmanandGaétan Lepage 2ef7a4a82a tests/kitty-navigator: skip runtime execution without kitty 2026-04-09 22:47:18 +00:00
Austin HorstmanandGaétan Lepage cdcfe3f2ff tests/origami: update renamed foldtext padding key 2026-04-09 22:47:18 +00:00
Austin HorstmanandGaétan Lepage 9db4ae75fc modules/performance: preserve lua deps in combined plugin pack 2026-04-09 22:47:18 +00:00
Austin HorstmanandGaétan Lepage 3056067b55 plugins/rhubarb: update maintainer attr
Follow the nixpkgs maintainer rename in NixOS/nixpkgs#499817, which moved Santosh Shrestha from santosh to vimlinuz.
2026-04-09 22:47:18 +00:00
Austin HorstmanandGaétan Lepage 1e05ad24e0 plugins/rest: add temporary docs URL workaround
Keep an explicit plugin URL until the upstream package homepage metadata is fixed again.
2026-04-09 22:47:18 +00:00
Austin HorstmanandGaétan Lepage 989b3633d9 plugins/colorizer: enable termguicolors by default
Set termguicolors for the colorizer module so its tests and startup path continue to work with the plugin's current runtime requirement.
2026-04-09 22:47:18 +00:00
Austin HorstmanandGaétan Lepage b0d5d9320d modules/lsp/servers: declare new generated server entries
Add package mappings for newly generated lspconfig servers that are packaged in nixpkgs, and mark the remaining generated entries as unpackaged so the generated-sources check stays in sync.
2026-04-09 22:47:18 +00:00
Austin HorstmanandGaétan Lepage 637f4ef832 colorschemes/modus: replace deprecated variant option
Update the Modus settings schema, example, and test fixture to use the upstream variants table instead of the deprecated variant key.
2026-04-09 22:47:18 +00:00
Austin HorstmanandGaétan Lepage 4825cfe656 tests/modules/output: adapt provider checks to upstream changes
Update the with-providers and without-providers cases to validate the provider globals exposed by the Neovim wrapper instead of the legacy nvim-* helper executables.
2026-04-09 22:47:18 +00:00
Austin HorstmanandGaétan Lepage cbd8536a05 modules/output: restore plugin lua dependencies
With the newer nixpkgs Neovim wrapper, plugin Lua dependencies are surfaced through neovimUtils.makeVimPackageInfo as vimPackageInfo.luaDependencies. Nixvim was still only feeding explicit extraLuaPackages into its wrapper Lua environment, so plugin-provided Lua modules stopped reaching the runtime search path after the flake.lock bump.

That showed up as real runtime failures: Telescope could not load plenary.strings and Neorg could not load lua-utils, even though explicit extraLuaPackages still worked.

Fix that by computing vimPackageInfo from config.build.plugins and appending vimPackageInfo.luaDependencies to the wrapper's extraLuaPackages. That keeps Nixvim aligned with the nixpkgs/Home Manager dependency resolution path instead of maintaining a separate recursive Lua dependency collector.

Add focused regression coverage for the two reported plugin cases:
- telescope -> plenary.strings
- neorg -> lua-utils
2026-03-29 16:40:02 +00:00
Austin HorstmanandGaétan Lepage f6f985ce53 modules/output: drop deprecated makeNeovimConfig
nixpkgs deprecated neovimUtils.makeNeovimConfig in favor of
wrapNeovimUnstable. Keep Nixvim's current generated init.lua startup
model, but stop routing wrapper construction through the deprecated
helper.

Switch modules/top-level/output.nix to call wrapNeovimUnstable
directly and preserve the existing wrappedNeovim.initRc -> generated
init.lua composition. This aligns Nixvim with the upstream wrapper API
change without changing our current bootstrap behavior yet.

Also update CONTRIBUTING to point contributors at
wrapNeovimUnstable instead of the deprecated helper.
2026-03-29 16:40:02 +00:00
Austin Horstman 21ae25e13b plugins/conform: add linuxOnly state
Just make it easier to gate linux state eventually, similar to darwin
state.
2026-03-01 21:57:38 +00:00
Austin Horstman 5a6eda5aa1 tests/conform: add darwinOnly test 2026-03-01 21:57:38 +00:00
Austin Horstman 9077e2f2bc plugins/conform: change state semantics
Didn't realize `darwinOnly` didn't actually warn/fail install on linux
only. It just passes a state message to the auto-install function.
Change the state function to automatically handle the expected
condition.
2026-03-01 21:57:38 +00:00
Austin Horstman e49b8deda7 plugins/mkdnflow: properly handle old mappings
Migrate user's with old mappings to new format and warn about change.
2026-02-13 03:40:48 +00:00
Austin HorstmanandGaétan Lepage d354487c46 plugins/conform: unbreak misc more packages 2026-02-09 08:51:23 +00:00
Austin HorstmanandGaétan Lepage d569264c28 tests/dependencies: disable skim dependency
Also check package names to block specific packages.
2026-02-09 08:51:23 +00:00
Austin HorstmanandGaétan Lepage a0e12d8113 tests/openscad: disable skim test 2026-02-09 08:51:23 +00:00
Austin HorstmanandGaétan Lepage 255c7a6c39 tests/fzf-lua: disable skim test 2026-02-09 08:51:23 +00:00
Austin HorstmanandGaétan Lepage 97f93f6c19 tests/all-package-defaults: disable skim
Broken on linux too
2026-02-09 08:51:23 +00:00
Austin HorstmanandGaétan Lepage 6085624c3e plugins/conform: unbreak gdformat 2026-02-09 08:51:23 +00:00
Austin HorstmanandGaétan Lepage f368cf7bb3 plugins/conform: sort packages for formatters
Don't need them sporadically listed, makes it harder to pin down where
to find a package in the whole list.
2026-02-09 08:51:23 +00:00
Austin HorstmanandGaétan Lepage 1295ddf004 plugins/conform: unbreak swift packages 2026-02-09 08:51:23 +00:00
Austin HorstmanandGaétan Lepage e8cf40ac5c plugins/conform: mark opa_fmt broken on darwin 2026-02-09 08:51:23 +00:00
Austin HorstmanandGaétan Lepage dd4646a916 plugins/conform: mark racketfmt linux only
Getting failure to eval on darwin due to unsupported platform.
2026-02-09 08:51:23 +00:00
Austin HorstmanandMatt Sturgeon 0dd35171c8 tests/all-package-defaults: skip x86_64-darwin failures 2026-01-24 06:08:49 +00:00
Austin HorstmanandMatt Sturgeon bb0d555610 tests/all-package-defaults: skip aarch64-darwin failures 2026-01-24 06:08:49 +00:00
Austin HorstmanandMatt Sturgeon 22dd228f36 tests/plugins/lz-n: resolve treesitter conflict
Just remove the dependency on treesitter for testing lz-n.
2026-01-24 06:08:49 +00:00
Austin HorstmanandMatt Sturgeon edbd483f08 tests/lsp-servers: disable shopify_theme_ls 2026-01-24 06:08:49 +00:00