mirror of
https://github.com/nix-community/nixvim.git
synced 2025-06-21 00:25:42 +02:00
plugins/firenvim: init
This commit is contained in:
parent
c9a855fe68
commit
593f5215cb
3 changed files with 118 additions and 0 deletions
|
@ -167,6 +167,7 @@
|
|||
./utils/easyescape.nix
|
||||
./utils/emmet.nix
|
||||
./utils/endwise.nix
|
||||
./utils/firenvim.nix
|
||||
./utils/flash.nix
|
||||
./utils/floaterm.nix
|
||||
./utils/fzf-lua.nix
|
||||
|
|
89
plugins/utils/firenvim.nix
Normal file
89
plugins/utils/firenvim.nix
Normal file
|
@ -0,0 +1,89 @@
|
|||
{
|
||||
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;
|
||||
};
|
||||
}
|
28
tests/test-sources/plugins/utils/firenvim.nix
Normal file
28
tests/test-sources/plugins/utils/firenvim.nix
Normal file
|
@ -0,0 +1,28 @@
|
|||
{
|
||||
empty = {
|
||||
plugins.firenvim.enable = true;
|
||||
};
|
||||
|
||||
example = {
|
||||
plugins.firenvim = {
|
||||
enable = true;
|
||||
|
||||
settings = {
|
||||
globalSettings.alt = "all";
|
||||
localSettings = {
|
||||
".*" = {
|
||||
cmdline = "neovim";
|
||||
content = "text";
|
||||
priority = 0;
|
||||
selector = "textarea";
|
||||
takeover = "always";
|
||||
};
|
||||
"https?://[^/]+\\.co\\.uk/" = {
|
||||
takeover = "never";
|
||||
priority = 1;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue