mirror of
https://github.com/nix-community/nixvim.git
synced 2025-06-21 08:35:43 +02:00
90 lines
2.3 KiB
Nix
90 lines
2.3 KiB
Nix
|
{
|
||
|
lib,
|
||
|
config,
|
||
|
pkgs,
|
||
|
...
|
||
|
}:
|
||
|
let
|
||
|
inherit (lib.nixvim) defaultNullOpts;
|
||
|
types = lib.nixvim.nixvimTypes;
|
||
|
in
|
||
|
lib.nixvim.neovim-plugin.mkNeovimPlugin config {
|
||
|
name = "firenvim";
|
||
|
defaultPackage = pkgs.vimPlugins.firenvim;
|
||
|
|
||
|
maintainers = with lib.maintainers; [ GaetanLepage ];
|
||
|
|
||
|
settingsOptions = {
|
||
|
globalSettings = defaultNullOpts.mkAttrsOf' {
|
||
|
type = types.anything;
|
||
|
pluginDefault = { };
|
||
|
example = {
|
||
|
alt = "all";
|
||
|
};
|
||
|
description = "Default settings that apply to all URLs.";
|
||
|
};
|
||
|
|
||
|
localSettings = defaultNullOpts.mkAttrsOf' {
|
||
|
type = with types; attrsOf anything;
|
||
|
pluginDefault = { };
|
||
|
example = {
|
||
|
".*" = {
|
||
|
cmdline = "neovim";
|
||
|
content = "text";
|
||
|
priority = 0;
|
||
|
selector = "textarea";
|
||
|
takeover = "always";
|
||
|
};
|
||
|
"https?://[^/]+\\.co\\.uk/" = {
|
||
|
takeover = "never";
|
||
|
priority = 1;
|
||
|
};
|
||
|
};
|
||
|
description = ''
|
||
|
Map regular expressions that are tested against the full URL to settings that are used for
|
||
|
all URLs matched by that pattern.
|
||
|
|
||
|
When multiple patterns match a URL, the pattern with the highest "priority" value is used.
|
||
|
|
||
|
Note: regular expressions use the [JavaScript flavor](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_expressions).
|
||
|
'';
|
||
|
};
|
||
|
};
|
||
|
|
||
|
settingsExample = {
|
||
|
globalSettings.alt = "all";
|
||
|
localSettings = {
|
||
|
".*" = {
|
||
|
cmdline = "neovim";
|
||
|
content = "text";
|
||
|
priority = 0;
|
||
|
selector = "textarea";
|
||
|
takeover = "always";
|
||
|
};
|
||
|
"https?://[^/]+\\.co\\.uk/" = {
|
||
|
takeover = "never";
|
||
|
priority = 1;
|
||
|
};
|
||
|
};
|
||
|
};
|
||
|
|
||
|
settingsDescription = ''
|
||
|
Options fed to the `vim.g.firenvim_config` table.
|
||
|
'';
|
||
|
|
||
|
callSetup = false;
|
||
|
extraConfig = cfg: {
|
||
|
warnings =
|
||
|
lib.optional
|
||
|
(
|
||
|
config.performance.combinePlugins.enable
|
||
|
&& !(lib.elem "firenvim" config.performance.combinePlugins.standalonePlugins)
|
||
|
)
|
||
|
''
|
||
|
Nixvim (plugins.firenvim): Using `performance.combinePlugins` breaks `firenvim`.
|
||
|
Add this plugin to `performance.combinePlugins.standalonePlugins` to prevent any issue.
|
||
|
'';
|
||
|
globals.firenvim_config = lib.modules.mkAliasAndWrapDefsWithPriority lib.id cfg.settings;
|
||
|
};
|
||
|
}
|