1
0
Fork 0
mirror of https://github.com/nix-community/nixvim.git synced 2025-12-08 18:11:07 +01:00
nixvim/lib/top-level.nix
2025-12-05 13:00:50 +00:00

133 lines
2.8 KiB
Nix

/**
Construct Nixvim's section of the lib: `lib.nixvim`.
This function requires the final extended lib (as produced by `./overlay.nix`)
and should not usually be imported directly.
The flake output `<nixvim>.lib.nixvim` provides an instance of Nixvim's lib section.
# Inputs
`flake`
: The Nixvim flake.
`lib`
: The final extended lib.
*/
{
lib,
flake,
}:
lib.makeExtensible (
self:
let
# Used when importing parts of our lib
autoArgs = {
inherit
call
self
lib
;
};
call =
fnOrFile:
let
fn = if builtins.isPath fnOrFile then import fnOrFile else fnOrFile;
fnAutoArgs = builtins.intersectAttrs (builtins.functionArgs fn) autoArgs;
in
args: fn (fnAutoArgs // args);
in
{
autocmd = call ./autocmd-helpers.nix { };
builders = call ./builders.nix { };
deprecation = call ./deprecation.nix { };
keymaps = call ./keymap-helpers.nix { };
lua = call ./to-lua.nix { };
lua-types = call ./lua-types.nix { };
modules = call ./modules.nix { inherit flake; };
options = call ./options.nix { };
plugins = call ./plugins { };
utils = call ./utils.nix { } // call ./utils.internal.nix { };
# Top-level helper aliases:
# TODO: deprecate some aliases
inherit (self.builders)
writeLua
writeByteCompiledLua
byteCompileLuaFile
byteCompileLuaHook
byteCompileLuaDrv
;
inherit (self.deprecation)
getOptionRecursive
mkDeprecatedSubOptionModule
mkRemovedPackageOptionModule
mkSettingsRenamedOptionModules
transitionType
;
inherit (self.modules)
evalNixvim
;
inherit (self.options)
defaultNullOpts
mkAutoLoadOption
mkCompositeOption
mkCompositeOption'
mkLazyLoadOption
mkMaybeUnpackagedOption
mkNullOrLua
mkNullOrLua'
mkNullOrLuaFn
mkNullOrLuaFn'
mkNullOrOption
mkNullOrOption'
mkNullOrStr
mkNullOrStr'
mkNullOrStrLuaFnOr
mkNullOrStrLuaFnOr'
mkNullOrStrLuaOr
mkNullOrStrLuaOr'
mkPackageOption
mkPluginPackageOption
mkSettingsOption
mkUnpackagedOption
pluginDefaultText
;
inherit (self.utils)
applyPrefixToAttrs
concatNonEmptyLines
emptyTable
enableExceptInTests
groupListBySize
hasContent
ifNonNull'
listToUnkeyedAttrs
literalLua
mkAssertions
mkIfNonNull
mkIfNonNull'
mkRaw
mkRawKey
mkWarnings
nestedLiteral
nestedLiteralLua
override
overrideDerivation
toRawKeys
toSnakeCase
upperFirstChar
wrapDo
wrapLuaForVimscript
wrapVimscriptForLua
;
inherit (self.lua) toLuaObject;
mkLuaInline = self.lua.mkInline;
}
)