47 Commits

Author SHA1 Message Date
Austin Horstman
79a57dd996 tests/neovim: give the stub a real license
Nixpkgs resolves an unrecognized license to unknown and then refuses the
package as unfree. The wrapper inherits license from the stub, so
test-all failed on a free package.
2026-08-19 10:14:55 -05:00
Kelton Bassingthwaite
4625f26228 neovim: Support configuring plugins using Fennel
PR #2637 added a 'type' field denoting the language used to configure
neovim plugins. However, when the type is set to "fennel" or "teal"
the configuration is silently ignored.

This commit enables support for Fennel by transpiling it to Lua before
appending the generated code to `init.lua`.

This commit __does not__ provide spport for configs written in Teal;
they are still silently ignored.
2026-05-04 00:10:59 +02:00
Austin Horstman
5bfbc1f6ca tests: fix neovim program test 2026-04-26 09:55:25 -05:00
Veselin Ivanov
565e534920 neovim: expose sideloadInitLua option to control the generation of init.lua
Add option to control generation of `init.lua` to allow opting out of the automatic generation. Add news entry about changed behavior and new option.
2026-04-17 14:27:57 -05:00
Austin Horstman
0eddb2cc1a neovim: use improved submodule deprecation detection
Prevent false positives with deprecation warning.
2026-04-09 19:09:46 -05:00
Matthieu Coudron
f21d8ebbc9 neovim: test pure lua dependencies (#8991)
a revert of https://github.com/nix-community/home-manager/pull/8959 since we now relies on nixpkgs wrapper for that.

adding a test to avoid regressions. Choosing  telescope as starting point is https://github.com/nix-community/home-manager/issues/8787

I find the nmt test setup lacking: it doesnt set $PATH or $HOME (nvim
will error when it can't write into $HOME).
2026-04-01 22:27:03 +02:00
teto
6569d9e171 neovim: attempt at reusing nixpkgs upstream config 2026-03-28 18:41:26 +01:00
teto
9670de2921 neovim: reuse more of upstream logic 2026-03-20 12:59:40 +01:00
teto
1c10e6596f neovim: now include nixpkgs wrapper generated lua
now that home-manager always generates an init.lua we can take the
wrapper output instead of reimplemnting stuff in HM (notwithstanding rtp
changes that are not needed in HM).
This is necessary to keep the provider configuration available after
this change https://github.com/NixOS/nixpkgs/pull/487390

Also updated test to reflect ruby disabling
2026-03-19 18:24:53 -05:00
teto
4aeef1941f neovim: update tests to work with latest nixpkgs
Since https://github.com/NixOS/nixpkgs/pull/495392, the wrapper doesn't
create provider executables along with the neovim wrapper. They still
exist but at locations indicated by the g:XXX_provider_host variable.
2026-03-12 17:17:57 +01:00
teto
f9482fd109 neovim: fix test
package.path (mkOrder 100) is expected to be before `vim.cmd` (mkBegin -> mkOrder 500).
Not sure how the error was not detected before ?
2026-03-12 14:49:18 +01:00
teto
27b93804fb neovim: adapt provider tests
This checks the final provider value instead of the wrapper implementation.
This requires to run the real neovim so I removed the stub.

The providers at home-path/bin/nvim-X will disappear from nixpkgs
hopefully so I simplified the pattern to "X".

Probably in future we want to check "assertFileExists" against the
returned value node_host_prog
2026-03-06 19:05:25 -06:00
teto
356a88a574 neovim: rename extraLuaConfig to initLua
Now that the whole lua config is exposed via the extraLuaConfig option,
it's not "extra" anymore but the whole content. Renaming it to "initLua"
is more adequate and it makes the option more understandable I hope.
2026-01-23 17:41:46 +01:00
Austin Horstman
0b435f768e tests/neovim: add default/empty tests
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-01-22 19:39:50 -06:00
teto
b0491fe556 neovim: move LUA_(C)PATH setup from wrapping to init.lua
so alternative GUIs can find lua dependencies that are not plugins (for instance nio).
Some plugins depend on lua packages that are not vim plugins and thus
become "invisible" to nixpkgs as it stands.
For now they need to be specified manually via `extraLuaPackages` but
hopefully we can autodiscover those in nixpkgs.
2026-01-22 18:24:33 +01:00
teto
3c71ea724c neovim: refactor to use neovimUtils.makeVimPackageInfo 2026-01-16 21:41:35 +01:00
Austin Horstman
fa6de26b4d treewide: nixf-diagnose cleanup
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-01-08 16:30:04 -05:00
Austin Horstman
61fcc9de76 tests/neovim: add test to catch config eval
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-12-20 19:55:46 -06:00
Austin Horstman
0a583021ea tests/neovim: add wrapper args test
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-12-20 17:11:31 -06:00
Austin Horstman
7c35504839 tests/neovim: fix expected config
Use normalized store paths to not have to maintain the hash

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-06-22 12:47:26 -05:00
Austin Horstman
85e68c6a38 tests/neovim: stub meta.teams
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-06-18 11:12:29 -05:00
Evgeny Zislis
1df816c407 fix: ensure newline after vim.cmd[[source...]] in neovim init.lua (#7219)
Fix an issue where the generated ~/.config/nvim/init.lua lacks a newline after the vim.cmd [[source ...]] directive. Without this newline, subsequent lua configuration is concatenated onto the same line, breaking lua syntax.

init.lua Before:

vim.cmd [[source /nix/store/...]]vim.opt.rtp:prepend(...)

After:

vim.cmd [[source /nix/store/...]]
vim.opt.rtp:prepend(...)
2025-06-09 22:10:54 +02:00
Austin Horstman
cba2f9ce95 treewide: reformat nixfmt-rfc-style
Reformat repository using new nixfmt-rfc-style.
2025-04-08 08:50:05 -07:00
Austin Horstman
3ade654257 tests/neovide: fix deprecation 2025-03-08 00:03:41 -06:00
Austin Horstman
12e26a74e5 tests/neovim: resolve deprecation (#6522)
Assigning a plain list to extraLuaPackages is deprecated.
                           Please assign a function taking a package set
as argument, so
                             extraLuaPackages = [ pkgs.lua51Packages.xxx
];
                           should become
                             extraLuaPackages = ps: [ ps.xxx ];
2025-02-23 15:53:17 -06:00
Robert Helgesson
0f9e92302a neovim: re-enable test 2025-02-10 23:32:14 +01:00
Robert Helgesson
947eef9e99 neovim: disable neovim-coc-config test 2025-02-08 09:17:02 +01:00
Robert Helgesson
7a3f0b3b8d tests: rework derivation stubbing
Instead of having to manually stub packages that should not be
downloaded we instead automatically stub all packages (except a small
list of whitelisted ones). Tests can re-introduce the real package by
using the `realPkgs` module argument.
2025-02-04 23:58:20 +01:00
Robert Helgesson
b93e17c73c neovim: fix flaky test
Seems the nvim command sometimes fails with error code 1.
2025-01-24 22:31:21 +01:00
MiSumiSumi
8fdf329526 neovim: enable use of external package manager (#5225)
* neovim: add extraWrapperArgs option

pass external arguments to neovim-unwrapper
this gives users more flexibility in managing neovim configuration

* neovim: add test for `extraWrapperArgs`
2024-04-13 16:50:15 +02:00
Guillaume Desforges
9621e9ab80 programs.neovim: add extraLuaConfig (#3639)
* programs.neovim: add extraLuaConfig

Add a configuration option to add custom lua configuration lines to
`lua.init`.

* apply review: formatting

* apply review: fix test
2023-02-05 12:09:26 +01:00
Ramses
a993eac106 neovim: fix extraLuaPackages type. (#3533)
Assigning to `programs.neovim.extraLuaPackages` a function taking a lua package set as input
and returning a list of packages, as described in the documentation,
threw an error because the rest of the code assumed that the value was always a plain list.
Using `lib.types.coercedTo`, we can accept such functions, as per the documentation,
as well as plain lists, which we then convert to a function ignoring its input argument.
We print a warning when a plain list is assigned, since the function
form is preferred, as it ensures that the right lua package set is used.

For the lua packages, we also get the lua package set from the
finalPackage, to make sure that we are always using the same package set
as the actual unwrapped neovim package being built.

For `programs.neovim.extraPythonPackages` I did the same.

I updated the test case so that we test both ways of setting these options.
2022-12-29 01:48:45 +01:00
Robert Helgesson
848ae0d6bb neovim: avoid aliased package 2022-12-04 13:13:19 +01:00
Andrew Marshall
478610aa37 neovim: Source neovimRcContent directly from store (#3444)
The previous version linked the file into home, then sourced that. Since
nothing else expects that file to be there, this is unnecessary.
Additionally, doing so made it impossible to test a built config without
switching, e.g. using `XDG_CONFIG_HOME=… nvim` or `nvim -u`. This
remedies that, at least for this particular reference.

To test this, change from asserting contents of the config file to
actually starting nvim, outputting sentinel values, and then asserting
their values are present. This way it’s tested that nvim loaded the
config, rather than that some config is in a specific place.

This is all in one commit as the test, as written now, would not have
worked before since the previously hard-coded home path was not an
actual file in the test environment.
2022-11-30 17:19:31 +01:00
Joosep Jääger
de3758e31a neovim: fix a typo in the generated init.lua (#3252)
neovim complains when having both an init.lua and an init.vim
2022-09-23 13:33:17 +02:00
Matthieu Coudron
bd83eab622 programs.neovim: default to init.lua (#3233)
We change the current logic: instead of writing an init.vim which loads
lua/init-home-manager.lua, we write an init.lua that sources init.vim

This commit also avoids writing any of these files if the plugins have
no config.
2022-09-22 10:39:55 +02:00
Matthieu Coudron
353d21e108 neovim runtime (#3168) 2022-08-23 22:02:05 +02:00
Sumner Evans
688e5c85b7 neovim: fix tests (#3147)
https://github.com/NixOS/nixpkgs/pull/184364 broke the tests

Closes #3146

Signed-off-by: Sumner Evans <me@sumnerevans.com>
2022-08-15 08:41:57 -06:00
Artem Shinkarov
a3c18a60d5 neovim: add extraLuaPackages to neovim, fixes #1964. (#2617)
Similarly to extraPytonPackages, we add extraLuaPackages that make
lua libraries available at runtime.
2022-02-16 16:38:10 +01:00
t4ccer
addc78bea0 neovim: Add coc support (#2154)
This adds two new options: 'programs.neovim.coc.{enable,settings}`.

These settings offer a simple interface over `xdg.configFile."nvim/coc-settings.json`,
using the standard Nix' syntax instead of a multiline string.
2021-07-25 22:40:07 -04:00
Robert Helgesson
f4998f0adc tests: bump nmt 2021-06-27 14:20:13 +02:00
Robert Helgesson
ab0e6c3e0e tests: bump nmt 2021-06-24 22:47:21 +02:00
Matthieu Coudron
c7e79b5337 programs.neovim: dont wrap init.vim (#2058)
since we want to write it ourself in ~/.config/nvim/init.vim
2021-06-03 21:37:53 +02:00
Matthieu Coudron
2a4ab0d891 programs.neovim: fix tests + swap extraConfig and pluginconfig (#2053)
makes more sense to have extraConfig afterwards in case use want to override config
2021-05-31 19:32:21 +02:00
Sumner Evans
839645caf3 programs.neovim: fix failing test (#1943)
Updated the expected plugin-config.vim to match what is actually
returned by the neovim utils from upstream.
2021-04-23 20:19:26 +02:00
Matthieu Coudron
8e0c1c55fb programs.neovim: write config in $XDG_CONFIG_HOME/init.vim (#1652)
* neovim: write config in $XDG_CONFIG_HOME/init.vim

instead of wrapping the configuration, which has sideeffects
https://github.com/NixOS/nixpkgs/issues/55376

* fix: update test accordingly
2020-12-29 20:26:02 +01:00
Joe Hermaszewski
abfb4cde51 vim: Allow setting init.vim config alongside plugins + neovim test (#876)
* neovim: allow setting init.vim config alongside plugins
* neovim: add test for neovim plugins
* neovim: make pluginWithConfigType a have type submodule
2020-09-25 02:08:39 +02:00