mirror of
https://github.com/nix-community/nixvim.git
synced 2025-06-20 16:15:43 +02:00
modules: cleanup with lib
This commit is contained in:
parent
ff042dfc93
commit
1c9ba58aef
12 changed files with 79 additions and 85 deletions
|
@ -4,11 +4,10 @@
|
|||
config,
|
||||
...
|
||||
}:
|
||||
with lib;
|
||||
{
|
||||
options = {
|
||||
autoGroups = mkOption {
|
||||
type = types.attrsOf helpers.autocmd.autoGroupOption;
|
||||
autoGroups = lib.mkOption {
|
||||
type = lib.types.attrsOf helpers.autocmd.autoGroupOption;
|
||||
default = { };
|
||||
description = "augroup definitions";
|
||||
example = {
|
||||
|
@ -18,8 +17,8 @@ with lib;
|
|||
};
|
||||
};
|
||||
|
||||
autoCmd = mkOption {
|
||||
type = types.listOf helpers.autocmd.autoCmdOption;
|
||||
autoCmd = lib.mkOption {
|
||||
type = lib.types.listOf helpers.autocmd.autoCmdOption;
|
||||
default = [ ];
|
||||
description = "autocmd definitions";
|
||||
example = [
|
||||
|
@ -42,12 +41,12 @@ with lib;
|
|||
let
|
||||
inherit (config) autoGroups autoCmd;
|
||||
in
|
||||
mkIf (autoGroups != { } || autoCmd != [ ]) {
|
||||
lib.mkIf (autoGroups != { } || autoCmd != [ ]) {
|
||||
# Introduced early October 2023.
|
||||
# TODO remove in early December 2023.
|
||||
assertions = [
|
||||
{
|
||||
assertion = all (x: x.description == null) autoCmd;
|
||||
assertion = lib.all (x: x.description == null) autoCmd;
|
||||
message = ''
|
||||
RENAMED OPTION: `autoCmd[].description` has been renamed `autoCmd[].desc`.
|
||||
Please update your configuration.
|
||||
|
@ -56,7 +55,7 @@ with lib;
|
|||
];
|
||||
|
||||
extraConfigLuaPost =
|
||||
(optionalString (autoGroups != { }) ''
|
||||
(lib.optionalString (autoGroups != { }) ''
|
||||
-- Set up autogroups {{
|
||||
do
|
||||
local __nixvim_autogroups = ${helpers.toLuaObject autoGroups}
|
||||
|
@ -67,7 +66,7 @@ with lib;
|
|||
end
|
||||
-- }}
|
||||
'')
|
||||
+ (optionalString (autoCmd != [ ]) ''
|
||||
+ (lib.optionalString (autoCmd != [ ]) ''
|
||||
-- Set up autocommands {{
|
||||
do
|
||||
local __nixvim_autocommands = ${helpers.toLuaObject autoCmd}
|
||||
|
|
|
@ -4,30 +4,29 @@
|
|||
pkgs,
|
||||
...
|
||||
}:
|
||||
with lib;
|
||||
let
|
||||
cfg = config.clipboard;
|
||||
in
|
||||
{
|
||||
options = {
|
||||
clipboard = {
|
||||
register = mkOption {
|
||||
register = lib.mkOption {
|
||||
description = ''
|
||||
Sets the register to use for the clipboard.
|
||||
Learn more in [`:h 'clipboard'`](https://neovim.io/doc/user/options.html#'clipboard').
|
||||
'';
|
||||
type = with types; nullOr (either str (listOf str));
|
||||
type = with lib.types; nullOr (either str (listOf str));
|
||||
default = null;
|
||||
example = "unnamedplus";
|
||||
};
|
||||
|
||||
providers = mkOption {
|
||||
type = types.submodule {
|
||||
providers = lib.mkOption {
|
||||
type = lib.types.submodule {
|
||||
options =
|
||||
mapAttrs
|
||||
lib.mapAttrs
|
||||
(name: packageName: {
|
||||
enable = mkEnableOption name;
|
||||
package = mkPackageOption pkgs packageName { };
|
||||
enable = lib.mkEnableOption name;
|
||||
package = lib.mkPackageOption pkgs packageName { };
|
||||
})
|
||||
{
|
||||
wl-copy = "wl-clipboard";
|
||||
|
@ -45,8 +44,10 @@ in
|
|||
};
|
||||
|
||||
config = {
|
||||
opts.clipboard = mkIf (cfg.register != null) cfg.register;
|
||||
opts.clipboard = lib.mkIf (cfg.register != null) cfg.register;
|
||||
|
||||
extraPackages = mapAttrsToList (n: v: v.package) (filterAttrs (n: v: v.enable) cfg.providers);
|
||||
extraPackages = lib.mapAttrsToList (n: v: v.package) (
|
||||
lib.filterAttrs (n: v: v.enable) cfg.providers
|
||||
);
|
||||
};
|
||||
}
|
||||
|
|
|
@ -1,15 +1,14 @@
|
|||
{ config, lib, ... }:
|
||||
with lib;
|
||||
{
|
||||
options = {
|
||||
colorscheme = mkOption {
|
||||
type = types.nullOr types.str;
|
||||
colorscheme = lib.mkOption {
|
||||
type = lib.types.nullOr lib.types.str;
|
||||
description = "The name of the colorscheme to use";
|
||||
default = null;
|
||||
};
|
||||
};
|
||||
|
||||
config = mkIf (config.colorscheme != "" && config.colorscheme != null) {
|
||||
config = lib.mkIf (config.colorscheme != "" && config.colorscheme != null) {
|
||||
extraConfigVim = ''
|
||||
colorscheme ${config.colorscheme}
|
||||
'';
|
||||
|
|
|
@ -4,18 +4,17 @@
|
|||
config,
|
||||
...
|
||||
}:
|
||||
with lib;
|
||||
let
|
||||
commandAttributes = types.submodule {
|
||||
commandAttributes = lib.types.submodule {
|
||||
options = {
|
||||
command = mkOption {
|
||||
command = lib.mkOption {
|
||||
type = with helpers.nixvimTypes; either str rawLua;
|
||||
description = "The command to run.";
|
||||
};
|
||||
|
||||
nargs =
|
||||
helpers.mkNullOrOption
|
||||
(types.enum [
|
||||
(lib.types.enum [
|
||||
0
|
||||
1
|
||||
"*"
|
||||
|
@ -25,13 +24,13 @@ let
|
|||
''
|
||||
The number of arguments to expect, see :h command-nargs.
|
||||
'';
|
||||
complete = helpers.mkNullOrOption (with types; either str helpers.nixvimTypes.rawLua) ''
|
||||
complete = helpers.mkNullOrOption (with lib.types; either str helpers.nixvimTypes.rawLua) ''
|
||||
Tab-completion behaviour, see :h command-complete.
|
||||
'';
|
||||
range =
|
||||
helpers.mkNullOrOption
|
||||
(
|
||||
with types;
|
||||
with lib.types;
|
||||
oneOf [
|
||||
bool
|
||||
int
|
||||
|
@ -41,10 +40,10 @@ let
|
|||
''
|
||||
Whether the command accepts a range, see :h command-range.
|
||||
'';
|
||||
count = helpers.mkNullOrOption (with types; either bool int) ''
|
||||
count = helpers.mkNullOrOption (with lib.types; either bool int) ''
|
||||
Whether the command accepts a count, see :h command-range.
|
||||
'';
|
||||
addr = helpers.mkNullOrOption types.str ''
|
||||
addr = helpers.mkNullOrOption lib.types.str ''
|
||||
Whether special characters relate to other things, see :h command-addr.
|
||||
'';
|
||||
bang = helpers.defaultNullOpts.mkBool false "Whether this command can take a bang (!).";
|
||||
|
@ -59,8 +58,8 @@ let
|
|||
};
|
||||
in
|
||||
{
|
||||
options.userCommands = mkOption {
|
||||
type = types.attrsOf commandAttributes;
|
||||
options.userCommands = lib.mkOption {
|
||||
type = lib.types.attrsOf commandAttributes;
|
||||
default = { };
|
||||
description = "A list of user commands to add to the configuration.";
|
||||
};
|
||||
|
@ -69,12 +68,12 @@ in
|
|||
let
|
||||
cleanupCommand = _: cmd: {
|
||||
inherit (cmd) command;
|
||||
options = filterAttrs (name: _: name != "command") cmd;
|
||||
options = lib.filterAttrs (name: _: name != "command") cmd;
|
||||
};
|
||||
in
|
||||
mkIf (config.userCommands != { }) {
|
||||
lib.mkIf (config.userCommands != { }) {
|
||||
extraConfigLua = helpers.wrapDo ''
|
||||
local cmds = ${helpers.toLuaObject (mapAttrs cleanupCommand config.userCommands)};
|
||||
local cmds = ${helpers.toLuaObject (lib.mapAttrs cleanupCommand config.userCommands)};
|
||||
for name,cmd in pairs(cmds) do
|
||||
vim.api.nvim_create_user_command(name, cmd.command, cmd.options or {})
|
||||
end
|
||||
|
|
|
@ -4,11 +4,10 @@
|
|||
config,
|
||||
...
|
||||
}:
|
||||
with lib;
|
||||
{
|
||||
options = {
|
||||
diagnostics = mkOption {
|
||||
type = with types; attrsOf anything;
|
||||
diagnostics = lib.mkOption {
|
||||
type = with lib.types; attrsOf anything;
|
||||
default = { };
|
||||
description = "The configuration diagnostic options, provided to `vim.diagnostic.config`.";
|
||||
example = {
|
||||
|
@ -19,7 +18,7 @@ with lib;
|
|||
};
|
||||
|
||||
config = {
|
||||
extraConfigLuaPre = mkIf (config.diagnostics != { }) ''
|
||||
extraConfigLuaPre = lib.mkIf (config.diagnostics != { }) ''
|
||||
vim.diagnostic.config(${helpers.toLuaObject config.diagnostics})
|
||||
'';
|
||||
};
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
{ lib, config, ... }:
|
||||
with lib;
|
||||
{
|
||||
imports = [
|
||||
(lib.mkRenamedOptionModule
|
||||
|
@ -21,14 +20,14 @@ with lib;
|
|||
];
|
||||
|
||||
options.editorconfig = {
|
||||
enable = mkOption {
|
||||
type = types.bool;
|
||||
enable = lib.mkOption {
|
||||
type = lib.types.bool;
|
||||
default = true;
|
||||
description = "editorconfig plugin for neovim";
|
||||
};
|
||||
|
||||
properties = mkOption {
|
||||
type = types.attrsOf types.str;
|
||||
properties = lib.mkOption {
|
||||
type = lib.types.attrsOf lib.types.str;
|
||||
default = { };
|
||||
description = ''
|
||||
The table key is a property name and the value is a callback function which accepts the
|
||||
|
@ -55,7 +54,7 @@ with lib;
|
|||
cfg = config.editorconfig;
|
||||
in
|
||||
{
|
||||
globals.editorconfig = mkIf (!cfg.enable) false;
|
||||
globals.editorconfig = lib.mkIf (!cfg.enable) false;
|
||||
|
||||
extraConfigLua =
|
||||
let
|
||||
|
@ -64,7 +63,7 @@ with lib;
|
|||
'';
|
||||
propertiesString = lib.concatLines (lib.mapAttrsToList mkProperty cfg.properties);
|
||||
in
|
||||
mkIf (propertiesString != "" && cfg.enable) ''
|
||||
lib.mkIf (propertiesString != "" && cfg.enable) ''
|
||||
do
|
||||
local __editorconfig = require('editorconfig')
|
||||
|
||||
|
|
|
@ -4,8 +4,9 @@
|
|||
config,
|
||||
...
|
||||
}:
|
||||
with lib;
|
||||
let
|
||||
inherit (lib) types;
|
||||
|
||||
cfg = config.filetype;
|
||||
|
||||
filetypeDefinition = helpers.mkNullOrOption (
|
||||
|
@ -19,7 +20,7 @@ let
|
|||
(listOf (
|
||||
either str (submodule {
|
||||
options = {
|
||||
priority = mkOption {
|
||||
priority = lib.mkOption {
|
||||
type = ints.unsigned;
|
||||
description = ''
|
||||
Filename patterns can specify an optional priority to resolve cases when a file path
|
||||
|
|
|
@ -4,11 +4,10 @@
|
|||
config,
|
||||
...
|
||||
}:
|
||||
with lib;
|
||||
{
|
||||
options = {
|
||||
highlight = mkOption {
|
||||
type = types.attrsOf helpers.nixvimTypes.highlight;
|
||||
highlight = lib.mkOption {
|
||||
type = lib.types.attrsOf helpers.nixvimTypes.highlight;
|
||||
default = { };
|
||||
description = "Define new highlight groups";
|
||||
example = {
|
||||
|
@ -16,8 +15,8 @@ with lib;
|
|||
};
|
||||
};
|
||||
|
||||
highlightOverride = mkOption {
|
||||
type = types.attrsOf helpers.nixvimTypes.highlight;
|
||||
highlightOverride = lib.mkOption {
|
||||
type = lib.types.attrsOf helpers.nixvimTypes.highlight;
|
||||
default = { };
|
||||
description = "Define highlight groups to override existing highlight";
|
||||
example = {
|
||||
|
@ -25,8 +24,8 @@ with lib;
|
|||
};
|
||||
};
|
||||
|
||||
match = mkOption {
|
||||
type = types.attrsOf types.str;
|
||||
match = lib.mkOption {
|
||||
type = lib.types.attrsOf lib.types.str;
|
||||
default = { };
|
||||
description = "Define match groups";
|
||||
example = {
|
||||
|
@ -35,10 +34,10 @@ with lib;
|
|||
};
|
||||
};
|
||||
|
||||
config = mkMerge [
|
||||
config = lib.mkMerge [
|
||||
{
|
||||
extraConfigLuaPre =
|
||||
mkIf (config.highlight != { })
|
||||
lib.mkIf (config.highlight != { })
|
||||
# lua
|
||||
''
|
||||
-- Highlight groups {{
|
||||
|
@ -52,7 +51,7 @@ with lib;
|
|||
-- }}
|
||||
'';
|
||||
extraConfigLuaPost =
|
||||
mkIf (config.highlightOverride != { })
|
||||
lib.mkIf (config.highlightOverride != { })
|
||||
# lua
|
||||
''
|
||||
-- Highlight groups {{
|
||||
|
@ -68,7 +67,7 @@ with lib;
|
|||
}
|
||||
{
|
||||
extraConfigLuaPre =
|
||||
mkIf (config.match != { })
|
||||
lib.mkIf (config.match != { })
|
||||
# lua
|
||||
''
|
||||
-- Match groups {{
|
||||
|
|
|
@ -5,11 +5,10 @@
|
|||
options,
|
||||
...
|
||||
}:
|
||||
with lib;
|
||||
{
|
||||
options = {
|
||||
keymaps = mkOption {
|
||||
type = types.listOf helpers.keymaps.deprecatedMapOptionSubmodule;
|
||||
keymaps = lib.mkOption {
|
||||
type = lib.types.listOf helpers.keymaps.deprecatedMapOptionSubmodule;
|
||||
default = [ ];
|
||||
description = "Nixvim keymaps.";
|
||||
example = [
|
||||
|
@ -21,8 +20,8 @@ with lib;
|
|||
];
|
||||
};
|
||||
|
||||
keymapsOnEvents = mkOption {
|
||||
type = types.attrsOf (types.listOf helpers.keymaps.deprecatedMapOptionSubmodule);
|
||||
keymapsOnEvents = lib.mkOption {
|
||||
type = lib.types.attrsOf (lib.types.listOf helpers.keymaps.deprecatedMapOptionSubmodule);
|
||||
default = { };
|
||||
example = {
|
||||
"InsertEnter" = [
|
||||
|
@ -67,7 +66,7 @@ with lib;
|
|||
in
|
||||
lib.pipe keymapOptions [
|
||||
(map (opt: (opt.type.getSubOptions opt.loc).lua))
|
||||
(filter (opt: opt.isDefined))
|
||||
(lib.filter (opt: opt.isDefined))
|
||||
(map (opt: ''
|
||||
${"\n"}
|
||||
The `${lib.showOption opt.loc}' option is deprecated and will be removed in 24.11.
|
||||
|
@ -79,7 +78,7 @@ with lib;
|
|||
''))
|
||||
];
|
||||
|
||||
extraConfigLua = mkIf (config.keymaps != [ ]) ''
|
||||
extraConfigLua = lib.mkIf (config.keymaps != [ ]) ''
|
||||
-- Set up keybinds {{{
|
||||
do
|
||||
local __nixvim_binds = ${helpers.toLuaObject (map helpers.keymaps.removeDeprecatedMapAttrs config.keymaps)}
|
||||
|
@ -90,11 +89,11 @@ with lib;
|
|||
-- }}}
|
||||
'';
|
||||
|
||||
autoGroups = mapAttrs' (
|
||||
event: mappings: nameValuePair "nixvim_binds_${event}" { clear = true; }
|
||||
autoGroups = lib.mapAttrs' (
|
||||
event: mappings: lib.nameValuePair "nixvim_binds_${event}" { clear = true; }
|
||||
) config.keymapsOnEvents;
|
||||
|
||||
autoCmd = mapAttrsToList (event: mappings: {
|
||||
autoCmd = lib.mapAttrsToList (event: mappings: {
|
||||
inherit event;
|
||||
group = "nixvim_binds_${event}";
|
||||
callback = helpers.mkRaw ''
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
{ lib, ... }:
|
||||
with lib;
|
||||
{
|
||||
# Attribute may contain the following fields:
|
||||
# - path: Path to the module, e.g. [ "plugins" "<name>" ]
|
||||
|
@ -7,8 +6,8 @@ with lib;
|
|||
# - url: Url for the plugin
|
||||
#
|
||||
# We need to use an attrs instead of a submodule to handle the merge.
|
||||
options.meta.nixvimInfo = mkOption {
|
||||
type = (types.nullOr types.attrs) // {
|
||||
options.meta.nixvimInfo = lib.mkOption {
|
||||
type = (lib.types.nullOr lib.types.attrs) // {
|
||||
# This will create an attrset of the form:
|
||||
#
|
||||
# { path.to.plugin.name = <info>; }
|
||||
|
@ -26,7 +25,7 @@ with lib;
|
|||
(
|
||||
acc: def:
|
||||
lib.recursiveUpdate acc (
|
||||
setAttrByPath def.value.path {
|
||||
lib.setAttrByPath def.value.path {
|
||||
inherit (def) file;
|
||||
url = def.value.url or null;
|
||||
description = def.value.description or null;
|
||||
|
|
|
@ -4,7 +4,6 @@
|
|||
config,
|
||||
...
|
||||
}:
|
||||
with lib;
|
||||
let
|
||||
optionsAttrs = {
|
||||
opts = {
|
||||
|
@ -37,18 +36,18 @@ let
|
|||
};
|
||||
in
|
||||
{
|
||||
options = mapAttrs (
|
||||
options = lib.mapAttrs (
|
||||
_:
|
||||
{ description, ... }:
|
||||
mkOption {
|
||||
type = with types; attrsOf anything;
|
||||
lib.mkOption {
|
||||
type = with lib.types; attrsOf anything;
|
||||
default = { };
|
||||
inherit description;
|
||||
}
|
||||
) optionsAttrs;
|
||||
|
||||
# Added 2024-03-29 (do not remove)
|
||||
imports = mapAttrsToList (old: new: mkRenamedOptionModule [ old ] [ new ]) {
|
||||
imports = lib.mapAttrsToList (old: new: lib.mkRenamedOptionModule [ old ] [ new ]) {
|
||||
options = "opts";
|
||||
globalOptions = "globalOpts";
|
||||
localOptions = "localOpts";
|
||||
|
@ -58,7 +57,7 @@ in
|
|||
extraConfigLuaPre =
|
||||
let
|
||||
content = helpers.concatNonEmptyLines (
|
||||
mapAttrsToList (
|
||||
lib.mapAttrsToList (
|
||||
optionName:
|
||||
{
|
||||
prettyName,
|
||||
|
@ -70,7 +69,7 @@ in
|
|||
varName = "nixvim_${luaVariableName}";
|
||||
optionDefinitions = config.${optionName};
|
||||
in
|
||||
optionalString (optionDefinitions != { }) ''
|
||||
lib.optionalString (optionDefinitions != { }) ''
|
||||
-- Set up ${prettyName} {{{
|
||||
do
|
||||
local ${varName} = ${helpers.toLuaObject optionDefinitions}
|
||||
|
@ -84,6 +83,6 @@ in
|
|||
) optionsAttrs
|
||||
);
|
||||
in
|
||||
mkIf (content != "") (mkOrder 600 content); # Move options to top of file below global table
|
||||
lib.mkIf (content != "") (lib.mkOrder 600 content); # Move options to top of file below global table
|
||||
};
|
||||
}
|
||||
|
|
|
@ -4,8 +4,9 @@
|
|||
helpers,
|
||||
...
|
||||
}:
|
||||
with lib;
|
||||
let
|
||||
inherit (lib) types mkOption;
|
||||
|
||||
pluginWithConfigType = types.submodule {
|
||||
options = {
|
||||
config = mkOption {
|
||||
|
@ -14,7 +15,7 @@ let
|
|||
default = "";
|
||||
};
|
||||
|
||||
optional = mkEnableOption "optional" // {
|
||||
optional = lib.mkEnableOption "optional" // {
|
||||
description = "Don't load by default (load with :packadd)";
|
||||
};
|
||||
|
||||
|
@ -43,7 +44,7 @@ in
|
|||
extraPython3Packages = mkOption {
|
||||
type = with types; functionTo (listOf package);
|
||||
default = p: [ ];
|
||||
defaultText = literalExpression "p: with p; [ ]";
|
||||
defaultText = lib.literalExpression "p: with p; [ ]";
|
||||
description = "Python packages to add to the `PYTHONPATH` of neovim.";
|
||||
example = lib.literalExpression ''
|
||||
p: [ p.numpy ]
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue