Commit Graph
392 Commits
Author SHA1 Message Date
Gaetan LepageandAustin Horstman 1d333fc92e treewide: apply linter suggestions 2025-12-28 04:26:49 +00:00
Matt Sturgeon 8486f9144e lib/modules: init testNixvim and testNixvimWith
Introduce thin wrappers around the `<configuration>.config.build.test`
option, intended to replace the legacy `mkTestDerivationFromNvim` and
`mkTestDerivationFromNixvimModule` functions.
2025-12-12 09:38:29 +00:00
Matt Sturgeon 2695bef079 lib/modules: init buildNixvim and buildNixvimWith
Introduce thin wrappers around the `<configuration>.config.build.package`,
option intended to replace the legacy `makeNixvim` and
`makeNixvimWithModule` functions.
2025-12-12 09:38:29 +00:00
fwastringandGaétan Lepage 91288dfdfb maintainers: add fwastring 2025-12-11 09:29:13 +00:00
Matt Sturgeon cc57493853 lib/options: drop old mkDesc deprecation stub 2025-12-05 13:00:50 +00:00
Matt Sturgeon 59ebcf91e4 lib/top-level: drop old deprecations 2025-12-05 13:00:50 +00:00
Matt Sturgeon 085f50eac5 lib: reimplement call; drop .override
Using `callPackageWith` adds `override` and `overrideDerivation`
attributes to the result, which are not relevant to subsections of
Nixvim's lib section.

Implement our own, simplified, `call` using `intersectAttrs` and
`functionArgs`.

If users wish to modify parts of our lib section, they should extend the
top-level fixpoint to ensure everything stays in sync.
2025-12-05 12:19:52 +00:00
saygo-pngandMatt Sturgeon 03a51dbf3d treewide: NixVim/nixvim -> Nixvim
Signed-off-by: saygo-png <saygo.mail@proton.me>
2025-12-04 23:22:21 +00:00
Heitor AugustoandMatt Sturgeon 1d345d4b25 lib/options/mkSettingsOption: use nestedLiteralLua 2025-11-24 10:48:20 +00:00
ArneandGaétan Lepage 318f27bf4d maintainers: add Arne-Zillhardt 2025-11-22 09:28:42 +00:00
Matt Sturgeon c53e0161c3 lib: simplify bootstrapping
Previously, `lib/top-level.nix` used an `_isExtended` flag to indicate
whether the provided `lib` was already extended. This made bootstrapping
unclear and introduced the possibility of circular construction.

All construction now flows through the lib-overlay, removing
`_isExtended`. As a result, `lib/top-level.nix` always receives the
final extended lib.

The `<flake>.lib.nixvim` output is now defined as:

    (lib.extend <nixvim>.lib.overlay).nixvim

The overlay now imports `top-level.nix` directly, making it the
canonical entrypoint for constructing Nixvim's section of the lib.

A clarifying doccomment was added to `lib/top-level.nix`.
2025-11-20 20:57:10 +00:00
Matt Sturgeon f11c43612f lib/overlay: rename and document overlay arguments
Rename the overlay arguments from the conventional `final: prev:` to the
more explicit `lib: prevLib:`, reflecting that this overlay operates
only on the Nixpkgs lib, rather than a full package set.

Add a doccomment explaining how the overlay is intended to be applied
(via `lib.extend`) and what each argument represents.

Improved inline comments in the overlay.
2025-11-20 20:57:10 +00:00
Matt Sturgeon f5235d311e lib: rename default.nix to top-level.nix
Rename `lib/default.nix` to `lib/top-level.nix` to make its purpose
explicit and discourage importing it directly. Consumers should obtain
the extended lib via flake outputs or the overlay, rather than bypassing
the required bootstrapping logic.

This clarifies the file's role and avoids suggesting it is the primary
entrypoint to Nixvim's lib subsection.
2025-11-20 20:57:10 +00:00
Matt Sturgeon 8d0ca9abc4 lib: move enableExceptInTests impl to build.test option
Simplify the `enableExceptInTests` attribute, removing the
`_nixvimTests` argument.

We now do a full re-eval of the nixvim configuration before building the
test, giving us a central place to implement `enableExceptInTests` and
its eventual replacement(s).

This extends support for `enableExceptInTests` to all methods of getting
a nixvim test derivation. Previously, it only worked when using `mkTestDerivationFromNixvimModule`.

In `tests/main.nix`, we avoid the re-eval by doing the initial eval with
a "test mode" lib from the start.
2025-11-20 00:22:57 +00:00
Matt Sturgeon 82bc02466c lib/evalNixvim: deprecate specialArgs.helpers
This has been soft-deprecated for several releases. Now that we have
removed our internal usage, we can introduce an eval warning.
2025-11-19 15:22:27 +00:00
Paul HinzeandGaétan Lepage d5b0cacdfb maintainers: add phinze 2025-11-14 22:10:52 +00:00
Gaetan Lepage ecb75f49d1 lib/options (mkSettingsOption): allow more types for settingsOption when no sub-options are explicitly declared 2025-10-24 10:28:17 +00:00
Gaetan Lepage 4439dd85cd lib/options (mkSettingsOption): use lua-types.anything for the freeform type of the settings option 2025-10-24 10:28:17 +00:00
Gaetan Lepage 2a21f0c326 lib/maintainers: remove insipx (already in nixpkgs maintainers) 2025-10-22 17:03:05 +00:00
FovirandMatt Sturgeon 9e56d5cc59 maintainers: add Fovir 2025-10-07 21:59:51 +00:00
saygo-pngandMatt Sturgeon 4cec67651a lib/plugins: infer packPathName
Signed-off-by: saygo-png <saygo.mail@proton.me>
2025-09-27 23:49:59 +00:00
Gaetan Lepage 384ea7aeaf maintainers: remove santosh (already in nixpkgs) 2025-09-26 20:30:52 +00:00
santoshxshresthaandMatt Sturgeon 80cdf28db4 maintainers: add santosh 2025-09-25 13:26:44 +00:00
Matt SturgeonandGaétan Lepage 79533f91c1 lib/plugins: use the module system to merge URLs
This asserts that we don't accidentally end up with conflicting
definitions.

Such conflicts must be made explicit, e.g. using `mkForce` or `mkDefault`.
2025-09-10 09:56:41 +00:00
Matt Sturgeon 7b53322d75 maintainers: update JanKremer's github 2025-08-11 14:19:11 +00:00
Matt Sturgeon 286895f9d7 maintainers: update DanielLaing's github 2025-08-11 14:19:11 +00:00
Gaetan LepageandGaétan Lepage 8529f1c86b treewide: format with new treefmt 2025-07-25 16:18:00 +00:00
Chelsea WilkinsonandAustin Horstman cebc5458ce maintainers: add ChelseaWilkinson 2025-07-19 17:06:46 +00:00
saygo-pngandGaétan Lepage d80d42f066 maintainers: add saygo-png
Signed-off-by: saygo-png <saygo.mail@proton.me>
2025-07-14 11:27:56 +00:00
Aidan WelchandMatt Sturgeon 2fabda24cc maintainers: add AidanWelch 2025-06-18 23:26:08 +00:00
Matt Sturgeon 1b08a4d976 lib/builders: pass text as file
This fixes potential "argument list too long" errors from bash when
writing large files.
2025-06-11 23:45:05 +00:00
Matt SturgeonandGaétan Lepage 1d8724144c lib/options: add TODO regarding lua-types
`defaultNullOpts` is generally used for representing lua-options.

We should probably a) rename it something like `luaOptions` and switch
out the primitive types to use the new `lua-types`.
2025-06-04 09:07:48 +00:00
Matt SturgeonandGaétan Lepage 57b61e4267 lib/lua-types: init
An initial set of option types for representing values serialisable into
lua.
2025-06-04 09:07:48 +00:00
Matt Sturgeon f4a7447d27 lib/util: move docs from lib/index to doc-comments
Moved all function-specific docs from `docs/lib/index.md` into RFC145
doc-comments.

Added `lib.nixvim.lua.toLuaObject` to hold the public docs and serve as
a stable impl of `toLua'` in case we decide to change its defaults.
2025-05-19 00:23:21 +01:00
Matt Sturgeon 5cf8cb5ee6 lib/utils: split into public and internal files
We will include the public file in the docs.
2025-05-19 00:23:20 +01:00
Matt Sturgeon 0c7e2aa96b docs: user-guide/helpers.mdlib/index.md
Move the user-guide to the new lib reference docs.

Added a MDBook redirect entry.

Updated man docs.
2025-05-19 00:19:57 +01:00
Matt Sturgeon 0ccc452af2 maintainers: enforce sorting 2025-05-17 00:07:06 +01:00
Jalil David Salamé Messina b505a2aebd maintainers: add jalil-salame
Adding myself as a maintainer
2025-05-12 08:41:31 +02:00
Gaetan Lepage b66559d8ef lib/plugins/mk{Neovim,Vim}Plugin: add dependencies parameter 2025-04-28 02:04:13 +02:00
Matt Sturgeon e6e5369535 lib/utils: fix literalLua multiline rendering
`lib.generators.toPretty` has bespoke handling for rendering nix strings
using either the `" "` or `'' ''` syntax, based on some heuristics.

Using `toPretty` instead of `toJSON` improves how literal-lua examples
render in the docs.
2025-04-24 19:07:34 +01:00
Po CoandMatt Sturgeon f8ed424711 maintainers: add PoCo 2025-04-15 22:40:13 +01:00
Matt Sturgeon d94956e5da lib/deprecation: implement aliases for mkRemovedPackageOptionModule
Allows most existing configs to continue building, now with warnings
instead of assertions when the old `plugins.*.*Package` options are
used.

An assertion will still occur if there is a merge conflict, e.g:
`plugins.a.fooPackage = null` and `plugins.b.fooPackage = pkgs.foo`.
2025-04-15 22:15:18 +01:00
Matt Sturgeon 1095b7f891 lib/deprecations: use real option paths in mkRemovedPackageOptionModule 2025-04-12 04:44:53 +01:00
Kasper SewerynandGaétan Lepage 3c600e2876 maintainers: add wvffle 2025-04-11 16:52:33 +02:00
Gaetan Lepageandnix-infra-bot 7e6038a69a modules/dependencies: add go 2025-04-11 08:51:45 +10:00
Gaetan Lepageandnix-infra-bot cfd4b61262 modules/dependencies: init + add curl 2025-04-11 08:51:45 +10:00
Gaetan Lepage 95573411bc modules/keymaps: add replace_keycodes keymap sub-option 2025-03-28 11:32:49 +01:00
Gaetan Lepage fe95b14d52 lib/keymap-helpers (mapConfigOptions): use mkNullOrStr for desc 2025-03-28 11:32:49 +01:00
Gaetan LepageandGaétan Lepage 1681cc3869 lib/maintainers: remove jolars as he became a nixpkgs maintainer 2025-03-19 00:51:22 +01:00
Matt Sturgeon b8c5587399 lib/keymaps: make mode type's description more readable
Only list the enum values once, instead of twice.
2025-02-15 15:09:05 +00:00