mirror of
https://github.com/nix-community/nixvim.git
synced 2025-06-20 16:15:43 +02:00
plugins/quicker: init
This commit is contained in:
parent
85bef9e191
commit
e22bb46c88
3 changed files with 301 additions and 0 deletions
35
plugins/by-name/quicker/default.nix
Normal file
35
plugins/by-name/quicker/default.nix
Normal file
|
@ -0,0 +1,35 @@
|
||||||
|
{ lib, ... }:
|
||||||
|
lib.nixvim.plugins.mkNeovimPlugin {
|
||||||
|
name = "quicker";
|
||||||
|
packPathName = "quicker.nvim";
|
||||||
|
package = "quicker-nvim";
|
||||||
|
|
||||||
|
maintainers = [ lib.maintainers.GaetanLepage ];
|
||||||
|
|
||||||
|
settingsOptions = import ./settings-options.nix lib;
|
||||||
|
|
||||||
|
settingsExample = {
|
||||||
|
keys = [
|
||||||
|
{
|
||||||
|
__unkeyed-1 = ">";
|
||||||
|
__unkeyed-2.__raw = ''
|
||||||
|
function()
|
||||||
|
require("quicker").expand({ before = 2, after = 2, add_to_existing = true })
|
||||||
|
end
|
||||||
|
'';
|
||||||
|
desc = "Expand quickfix context";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
__unkeyed-1 = "<";
|
||||||
|
__unkeyed-2.__raw = "require('quicker').collapse";
|
||||||
|
desc = "Collapse quickfix context";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
edit = {
|
||||||
|
enabled = false;
|
||||||
|
};
|
||||||
|
highlight = {
|
||||||
|
load_buffers = false;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
164
plugins/by-name/quicker/settings-options.nix
Normal file
164
plugins/by-name/quicker/settings-options.nix
Normal file
|
@ -0,0 +1,164 @@
|
||||||
|
lib:
|
||||||
|
let
|
||||||
|
inherit (lib) types mkOption;
|
||||||
|
inherit (lib.nixvim) defaultNullOpts literalLua;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
opts =
|
||||||
|
defaultNullOpts.mkAttrsOf types.anything
|
||||||
|
{
|
||||||
|
buflisted = false;
|
||||||
|
number = false;
|
||||||
|
relativenumber = false;
|
||||||
|
signcolumn = "auto";
|
||||||
|
winfixheight = true;
|
||||||
|
wrap = false;
|
||||||
|
}
|
||||||
|
''
|
||||||
|
Local options to set for quickfix.
|
||||||
|
'';
|
||||||
|
|
||||||
|
use_default_opts = defaultNullOpts.mkBool true ''
|
||||||
|
Set to `false` to disable the default options in `opts`.
|
||||||
|
'';
|
||||||
|
|
||||||
|
keys =
|
||||||
|
defaultNullOpts.mkListOf
|
||||||
|
(types.submodule {
|
||||||
|
freeformType = with types; attrsOf anything;
|
||||||
|
|
||||||
|
options = {
|
||||||
|
__unkeyed-1 = mkOption {
|
||||||
|
type = with types; maybeRaw str;
|
||||||
|
example = ">";
|
||||||
|
description = ''
|
||||||
|
Key sequence.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
__unkeyed-2 = mkOption {
|
||||||
|
type = with types; maybeRaw str;
|
||||||
|
example = literalLua "require('quicker').collapse";
|
||||||
|
description = ''
|
||||||
|
Command to run.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
# Options forwarded to `vim.keymap.set`
|
||||||
|
# https://github.com/stevearc/quicker.nvim/blob/master/lua/quicker/keys.lua
|
||||||
|
inherit (lib.nixvim.keymaps.mapConfigOptions)
|
||||||
|
desc
|
||||||
|
nowait
|
||||||
|
remap
|
||||||
|
silent
|
||||||
|
;
|
||||||
|
};
|
||||||
|
})
|
||||||
|
[
|
||||||
|
{
|
||||||
|
__unkeyed-1 = ">";
|
||||||
|
__unkeyed-2 = "<cmd>lua require('quicker').toggle_expand()<CR>";
|
||||||
|
desc = "Expand quickfix content";
|
||||||
|
}
|
||||||
|
]
|
||||||
|
''
|
||||||
|
Keymaps to set for the quickfix buffer.
|
||||||
|
'';
|
||||||
|
|
||||||
|
on_qf = defaultNullOpts.mkRaw "function(bufnr) end" ''
|
||||||
|
Callback function to run any custom logic or keymaps for the quickfix buffer.
|
||||||
|
'';
|
||||||
|
|
||||||
|
edit = {
|
||||||
|
enabled = defaultNullOpts.mkBool true ''
|
||||||
|
Enable editing the quickfix like a normal buffer.
|
||||||
|
'';
|
||||||
|
|
||||||
|
autosave = defaultNullOpts.mkNullable' {
|
||||||
|
type = with types; either bool (enum [ "autosave" ]);
|
||||||
|
pluginDefault = "autosave";
|
||||||
|
example = true;
|
||||||
|
description = ''
|
||||||
|
- Set to `true` to write buffers after applying edits.
|
||||||
|
- Set to `"unmodified"` to only write unmodified buffers.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
constrain_cursor = defaultNullOpts.mkBool true ''
|
||||||
|
Keep the cursor to the right of the filename and lnum columns.
|
||||||
|
'';
|
||||||
|
|
||||||
|
highlight = {
|
||||||
|
treesitter = defaultNullOpts.mkBool true ''
|
||||||
|
Use treesitter highlighting.
|
||||||
|
'';
|
||||||
|
|
||||||
|
lsp = defaultNullOpts.mkBool true ''
|
||||||
|
Use LSP semantic token highlighting.
|
||||||
|
'';
|
||||||
|
|
||||||
|
load_buffers = defaultNullOpts.mkBool false ''
|
||||||
|
Load the referenced buffers to apply more accurate highlights (may be slow).
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
follow = {
|
||||||
|
enabled = defaultNullOpts.mkBool false ''
|
||||||
|
When quickfix window is open, scroll to closest item to the cursor.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
type_icons =
|
||||||
|
defaultNullOpts.mkAttrsOf types.str
|
||||||
|
{
|
||||||
|
E = " ";
|
||||||
|
W = " ";
|
||||||
|
I = " ";
|
||||||
|
N = " ";
|
||||||
|
H = " ";
|
||||||
|
}
|
||||||
|
''
|
||||||
|
Map of quickfix item type to icon.
|
||||||
|
'';
|
||||||
|
|
||||||
|
borders =
|
||||||
|
defaultNullOpts.mkAttrsOf types.str
|
||||||
|
{
|
||||||
|
vert = "┃";
|
||||||
|
strong_header = "━";
|
||||||
|
strong_cross = "╋";
|
||||||
|
strong_end = "┫";
|
||||||
|
soft_header = "╌";
|
||||||
|
soft_cross = "╂";
|
||||||
|
soft_end = "┨";
|
||||||
|
}
|
||||||
|
''
|
||||||
|
Border characters.
|
||||||
|
'';
|
||||||
|
|
||||||
|
trim_leading_whitespace = defaultNullOpts.mkEnum [ "all" "common" false ] "common" ''
|
||||||
|
How to trim the leading whitespace from results.
|
||||||
|
'';
|
||||||
|
|
||||||
|
max_filename_width =
|
||||||
|
defaultNullOpts.mkUnsignedInt
|
||||||
|
(literalLua ''
|
||||||
|
function()
|
||||||
|
return math.floor(math.min(95, vim.o.columns / 2))
|
||||||
|
end
|
||||||
|
'')
|
||||||
|
''
|
||||||
|
Maximum width of the filename column.
|
||||||
|
'';
|
||||||
|
|
||||||
|
header_length =
|
||||||
|
defaultNullOpts.mkUnsignedInt
|
||||||
|
(literalLua ''
|
||||||
|
function(type, start_col)
|
||||||
|
return vim.o.columns - start_col
|
||||||
|
end
|
||||||
|
'')
|
||||||
|
''
|
||||||
|
How far the header should extend to the right.
|
||||||
|
'';
|
||||||
|
}
|
102
tests/test-sources/plugins/by-name/quicker/default.nix
Normal file
102
tests/test-sources/plugins/by-name/quicker/default.nix
Normal file
|
@ -0,0 +1,102 @@
|
||||||
|
{
|
||||||
|
empty = {
|
||||||
|
plugins.quicker.enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
defaults = {
|
||||||
|
plugins.quicker = {
|
||||||
|
enable = true;
|
||||||
|
|
||||||
|
settings = {
|
||||||
|
opts = {
|
||||||
|
buflisted = false;
|
||||||
|
number = false;
|
||||||
|
relativenumber = false;
|
||||||
|
signcolumn = "auto";
|
||||||
|
winfixheight = true;
|
||||||
|
wrap = false;
|
||||||
|
};
|
||||||
|
use_default_opts = true;
|
||||||
|
keys = [
|
||||||
|
{
|
||||||
|
__unkeyed-1 = ">";
|
||||||
|
__unkeyed-2 = "<cmd>lua require('quicker').toggle_expand()<CR>";
|
||||||
|
desc = "Expand quickfix content";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
on_qf.__raw = "function(bufnr) end";
|
||||||
|
edit = {
|
||||||
|
enabled = true;
|
||||||
|
autosave = "autosave";
|
||||||
|
};
|
||||||
|
constrain_cursor = true;
|
||||||
|
highlight = {
|
||||||
|
treesitter = true;
|
||||||
|
lsp = true;
|
||||||
|
load_buffers = false;
|
||||||
|
};
|
||||||
|
follow = {
|
||||||
|
enabled = false;
|
||||||
|
};
|
||||||
|
type_icons = {
|
||||||
|
E = " ";
|
||||||
|
W = " ";
|
||||||
|
I = " ";
|
||||||
|
N = " ";
|
||||||
|
H = " ";
|
||||||
|
};
|
||||||
|
borders = {
|
||||||
|
vert = "┃";
|
||||||
|
strong_header = "━";
|
||||||
|
strong_cross = "╋";
|
||||||
|
strong_end = "┫";
|
||||||
|
soft_header = "╌";
|
||||||
|
soft_cross = "╂";
|
||||||
|
soft_end = "┨";
|
||||||
|
};
|
||||||
|
trim_leading_whitespace = "common";
|
||||||
|
max_filename_width.__raw = ''
|
||||||
|
function()
|
||||||
|
return math.floor(math.min(95, vim.o.columns / 2))
|
||||||
|
end
|
||||||
|
'';
|
||||||
|
header_length.__raw = ''
|
||||||
|
function(type, start_col)
|
||||||
|
return vim.o.columns - start_col
|
||||||
|
end
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
example = {
|
||||||
|
plugins.quicker = {
|
||||||
|
enable = true;
|
||||||
|
|
||||||
|
settings = {
|
||||||
|
keys = [
|
||||||
|
{
|
||||||
|
__unkeyed-1 = ">";
|
||||||
|
__unkeyed-2.__raw = ''
|
||||||
|
function()
|
||||||
|
require("quicker").expand({ before = 2, after = 2, add_to_existing = true })
|
||||||
|
end
|
||||||
|
'';
|
||||||
|
desc = "Expand quickfix context";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
__unkeyed-1 = "<";
|
||||||
|
__unkeyed-2.__raw = "require('quicker').collapse";
|
||||||
|
desc = "Collapse quickfix context";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
edit = {
|
||||||
|
enabled = false;
|
||||||
|
};
|
||||||
|
highlight = {
|
||||||
|
load_buffers = false;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
Loading…
Add table
Add a link
Reference in a new issue