mirror of
https://github.com/traxys/Nixfiles.git
synced 2026-02-14 03:10:19 +01:00
neovim: Remove firenvim, as it is declared upstream
This commit is contained in:
parent
1a5d280587
commit
43f0c77cbf
2 changed files with 1 additions and 225 deletions
|
|
@ -11,7 +11,6 @@
|
|||
|
||||
./modules/commands.nix
|
||||
|
||||
./plugins/firenvim.nix
|
||||
./plugins/headerguard.nix
|
||||
./plugins/lsp-signature.nix
|
||||
];
|
||||
|
|
@ -213,7 +212,7 @@
|
|||
plugins.gitsigns.enable = true;
|
||||
plugins.gitmessenger.enable = true;
|
||||
|
||||
plugins.firenvim.enable = false;
|
||||
# plugins.firenvim.enable = false;
|
||||
|
||||
extraConfigLuaPre = ''
|
||||
local has_words_before = function()
|
||||
|
|
|
|||
|
|
@ -1,223 +0,0 @@
|
|||
{
|
||||
pkgs,
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
with lib;
|
||||
with builtins;
|
||||
{
|
||||
options.plugins.firenvim = {
|
||||
enable = mkEnableOption "Enable firenvim support";
|
||||
global =
|
||||
let
|
||||
mkKey = mkOption {
|
||||
type = types.enum [
|
||||
"default"
|
||||
"noop"
|
||||
];
|
||||
default = "default";
|
||||
description = ''
|
||||
When it is possible to do so, if you press this keyboard shortcut while not in a Firenvim
|
||||
frame, Firenvim will attempt to emulate the expected behavior of the shortcut
|
||||
'';
|
||||
};
|
||||
|
||||
nvimModes = [
|
||||
"all"
|
||||
"normal"
|
||||
"visual"
|
||||
"insert"
|
||||
"replace"
|
||||
"cmdline_normal"
|
||||
"cmdline_insert"
|
||||
"cmdline_replace"
|
||||
"operator"
|
||||
"visual_select"
|
||||
"cmdline_hover"
|
||||
"statusline_hover"
|
||||
"statusline_drag"
|
||||
"vsep_hover"
|
||||
"vsep_drag"
|
||||
"more"
|
||||
"more_lastline"
|
||||
"showmatch"
|
||||
];
|
||||
|
||||
modeOptions = listToAttrs (
|
||||
map (mode: {
|
||||
name = mode;
|
||||
value = mkOption {
|
||||
type = types.listOf types.str;
|
||||
default = [ ];
|
||||
description = "Keys to ignore in ${mode} mode";
|
||||
};
|
||||
}) nvimModes
|
||||
);
|
||||
in
|
||||
{
|
||||
alt = mkOption {
|
||||
type = types.enum [
|
||||
"all"
|
||||
"alphanum"
|
||||
];
|
||||
# TODO: set to 'alphanum' by default on macOS
|
||||
default = "all";
|
||||
description = ''
|
||||
Change the handling of alt with dead keys. See
|
||||
https://github.com/glacambre/firenvim#special-characters-on-macos for more information.
|
||||
'';
|
||||
};
|
||||
"<C-n>" = mkKey;
|
||||
"<C-t>" = mkKey;
|
||||
"<C-w>" = mkKey;
|
||||
"<CS-n>" = mkKey;
|
||||
"<CS-t>" = mkKey;
|
||||
"<CS-w>" = mkKey;
|
||||
ignoreKeys = mkOption {
|
||||
type = types.submodule { options = modeOptions; };
|
||||
default = { };
|
||||
description = ''
|
||||
You can make Firenvim ignore key presses (thus letting the browser handle them) by
|
||||
specifying them in this module
|
||||
'';
|
||||
};
|
||||
cmdlineTimeout = mkOption {
|
||||
type = types.int;
|
||||
default = 3000;
|
||||
description = ''
|
||||
Due to space constraints, the external command line covers part of the buffer.
|
||||
This can be a problem as sometimes neovim will send a message that tells Firenvim to draw
|
||||
the command line, and then never send the message to tell Firenvim to stop displaying it.
|
||||
|
||||
In order to work around this problem, a "cmdlineTimeout" configuration option has been
|
||||
implemented, which makes Firenvim hide the external command line after the cursor has
|
||||
moved and some amount of milliseconds have passed:
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
local = mkOption {
|
||||
type = types.attrsOf (
|
||||
types.submodule {
|
||||
options = {
|
||||
cmdline = mkOption {
|
||||
type = types.nullOr (
|
||||
types.enum [
|
||||
"neovim"
|
||||
"firenvim"
|
||||
"none"
|
||||
]
|
||||
);
|
||||
default = null;
|
||||
description = ''
|
||||
You can chose between neovim's built-in command line, firenvim's command line and no
|
||||
command line at all
|
||||
|
||||
Choosing none does not make sense unless you have alternative way to display the
|
||||
command line such as noice.nvim.
|
||||
'';
|
||||
};
|
||||
content = mkOption {
|
||||
type = types.nullOr (
|
||||
types.enum [
|
||||
"html"
|
||||
"text"
|
||||
]
|
||||
);
|
||||
default = null;
|
||||
description = ''
|
||||
This option controls how Firenvim should read the content of an element.
|
||||
Setting it to 'html' will make Firenvim fetch the content of elements as HTML,
|
||||
'text' will make it use plaintext.
|
||||
'';
|
||||
};
|
||||
priority = mkOption {
|
||||
type = types.int;
|
||||
default = 0;
|
||||
description = "Higher priority options overwrite lower priority ones";
|
||||
};
|
||||
renderer = mkOption {
|
||||
type = types.nullOr (
|
||||
types.enum [
|
||||
"html"
|
||||
"canvas"
|
||||
]
|
||||
);
|
||||
default = null;
|
||||
};
|
||||
selector = mkOption {
|
||||
type = types.nullOr types.str;
|
||||
default = null;
|
||||
description = ''
|
||||
This options is a CSS selector that allows to choose which elements firenvim
|
||||
will link to
|
||||
'';
|
||||
};
|
||||
takeover = mkOption {
|
||||
type = types.nullOr (
|
||||
types.enum [
|
||||
"always"
|
||||
"once"
|
||||
"empty"
|
||||
"nonempty"
|
||||
"never"
|
||||
]
|
||||
);
|
||||
default = null;
|
||||
description = ''
|
||||
When set to 'always', Firenvim will always take over elements for you. When set to
|
||||
'empty', Firenvim will only take over empty elements. When set to 'never', Firenvim
|
||||
will never automatically appear, thus forcing you to use a keyboard shortcut in order
|
||||
to make the Firenvim frame appear. When set to 'nonempty', Firenvim will only take
|
||||
over elements that aren't empty. When set to 'once', Firenvim will take over elements
|
||||
the first time you select them, which means that after :q'ing Firenvim, you'll have
|
||||
to use the keyboard shortcut to make it appear again.
|
||||
'';
|
||||
};
|
||||
filename = mkOption {
|
||||
type = types.nullOr types.str;
|
||||
default = null;
|
||||
description = ''
|
||||
This setting is a format string where each element in curly braces will be replaced
|
||||
with a value and where the maximum length can be specified with a percentage. Possible
|
||||
format elements are 'hostname' (= the domain name of the website), 'pathname'
|
||||
(= the path of the page), 'selector' (= the CSS selector of the text area),
|
||||
'timestamp' (= the current date) and 'extension' (the language extension when using
|
||||
Firenvim on a code editor or txt otherwise).
|
||||
'';
|
||||
};
|
||||
};
|
||||
}
|
||||
);
|
||||
default = {
|
||||
".*" = {
|
||||
cmdline = "firenvim";
|
||||
content = "text";
|
||||
priority = 0;
|
||||
renderer = "canvas";
|
||||
selector = ''textarea:not([readonly]), div[role="textbox"]'';
|
||||
takeover = "always";
|
||||
filename = "{hostname%32}_{pathname%32}_{selector%32}_{timestamp%32}.{extension}";
|
||||
};
|
||||
};
|
||||
description = ''
|
||||
Configure firenvim for different urls. The keys are regex to match URL, and if multiple
|
||||
regex match the URL then the value with the highest priority is choosen
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
config =
|
||||
let
|
||||
cfg = config.plugins.firenvim;
|
||||
in
|
||||
mkIf cfg.enable {
|
||||
extraPlugins = with pkgs.vimPlugins; [ firenvim ];
|
||||
|
||||
globals.firenvim_config = {
|
||||
globalSettings = cfg.global;
|
||||
localSettings = cfg.local;
|
||||
};
|
||||
};
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue