mirror of
https://github.com/NotAShelf/nvf.git
synced 2026-06-13 16:25:04 +00:00
treewide: migrate to vim.keymaps
This commit is contained in:
parent
caef79e398
commit
55a96f83b4
13 changed files with 218 additions and 162 deletions
|
|
@ -7,66 +7,107 @@
|
|||
inherit (builtins) toJSON;
|
||||
inherit (lib.modules) mkIf mkMerge;
|
||||
inherit (lib.generators) mkLuaInline;
|
||||
inherit (lib.nvim.binds) addDescriptionsToMappings mkSetExprBinding mkSetLuaBinding pushDownDefault;
|
||||
inherit (lib.nvim.binds) mkKeymap pushDownDefault;
|
||||
inherit (lib.nvim.dag) entryAnywhere;
|
||||
inherit (lib.nvim.lua) toLuaObject;
|
||||
|
||||
cfg = config.vim.git.gitsigns;
|
||||
|
||||
gsMappingDefinitions = options.vim.git.gitsigns.mappings;
|
||||
|
||||
gsMappings = addDescriptionsToMappings cfg.mappings gsMappingDefinitions;
|
||||
inherit (options.vim.git.gitsigns) mappings;
|
||||
in {
|
||||
config = mkIf cfg.enable (mkMerge [
|
||||
{
|
||||
vim = {
|
||||
startPlugins = ["gitsigns-nvim"];
|
||||
|
||||
maps = {
|
||||
normal = mkMerge [
|
||||
(mkSetExprBinding gsMappings.nextHunk ''
|
||||
keymaps = [
|
||||
(mkKeymap "n" cfg.mappings.nextHunk ''
|
||||
function()
|
||||
if vim.wo.diff then return ${toJSON gsMappings.nextHunk.value} end
|
||||
if vim.wo.diff then return ${toJSON cfg.mappings.nextHunk} end
|
||||
|
||||
vim.schedule(function() package.loaded.gitsigns.next_hunk() end)
|
||||
|
||||
return '<Ignore>'
|
||||
end
|
||||
'')
|
||||
'' {
|
||||
desc = mappings.nextHunk.description;
|
||||
lua = true;
|
||||
expr = true;
|
||||
})
|
||||
|
||||
(mkSetExprBinding gsMappings.previousHunk ''
|
||||
(mkKeymap "n" cfg.mappings.previousHunk ''
|
||||
function()
|
||||
if vim.wo.diff then return ${toJSON gsMappings.previousHunk.value} end
|
||||
if vim.wo.diff then return ${toJSON cfg.mappings.previousHunk} end
|
||||
|
||||
vim.schedule(function() package.loaded.gitsigns.prev_hunk() end)
|
||||
|
||||
return '<Ignore>'
|
||||
end
|
||||
'')
|
||||
'' {
|
||||
desc = mappings.previousHunk.description;
|
||||
lua = true;
|
||||
expr = true;
|
||||
})
|
||||
|
||||
(mkSetLuaBinding gsMappings.stageHunk "package.loaded.gitsigns.stage_hunk")
|
||||
(mkSetLuaBinding gsMappings.resetHunk "package.loaded.gitsigns.reset_hunk")
|
||||
(mkSetLuaBinding gsMappings.undoStageHunk "package.loaded.gitsigns.undo_stage_hunk")
|
||||
(mkKeymap "n" cfg.mappings.stageHunk "package.loaded.gitsigns.stage_hunk" {
|
||||
desc = mappings.stageHunk.description;
|
||||
lua = true;
|
||||
})
|
||||
(mkKeymap "n" cfg.mappings.resetHunk "package.loaded.gitsigns.reset_hunk" {
|
||||
desc = mappings.resetHunk.description;
|
||||
lua = true;
|
||||
})
|
||||
(mkKeymap "n" cfg.mappings.undoStageHunk "package.loaded.gitsigns.undo_stage_hunk" {
|
||||
desc = mappings.undoStageHunk.description;
|
||||
lua = true;
|
||||
})
|
||||
|
||||
(mkSetLuaBinding gsMappings.stageBuffer "package.loaded.gitsigns.stage_buffer")
|
||||
(mkSetLuaBinding gsMappings.resetBuffer "package.loaded.gitsigns.reset_buffer")
|
||||
(mkKeymap "n" cfg.mappings.stageBuffer "package.loaded.gitsigns.stage_buffer" {
|
||||
desc = mappings.stageBuffer.description;
|
||||
lua = true;
|
||||
})
|
||||
(mkKeymap "n" cfg.mappings.resetBuffer "package.loaded.gitsigns.reset_buffer" {
|
||||
desc = mappings.resetBuffer.description;
|
||||
lua = true;
|
||||
})
|
||||
|
||||
(mkSetLuaBinding gsMappings.previewHunk "package.loaded.gitsigns.preview_hunk")
|
||||
(mkKeymap "n" cfg.mappings.previewHunk "package.loaded.gitsigns.preview_hunk" {
|
||||
desc = mappings.previewHunk.description;
|
||||
lua = true;
|
||||
})
|
||||
|
||||
(mkSetLuaBinding gsMappings.blameLine "function() package.loaded.gitsigns.blame_line{full=true} end")
|
||||
(mkSetLuaBinding gsMappings.toggleBlame "package.loaded.gitsigns.toggle_current_line_blame")
|
||||
(mkKeymap "n" cfg.mappings.blameLine "function() package.loaded.gitsigns.blame_line{full=true} end" {
|
||||
desc = mappings.blameLine.description;
|
||||
lua = true;
|
||||
})
|
||||
(mkKeymap "n" cfg.mappings.toggleBlame "package.loaded.gitsigns.toggle_current_line_blame" {
|
||||
desc = mappings.toggleBlame.description;
|
||||
lua = true;
|
||||
})
|
||||
|
||||
(mkSetLuaBinding gsMappings.diffThis "package.loaded.gitsigns.diffthis")
|
||||
(mkSetLuaBinding gsMappings.diffProject "function() package.loaded.gitsigns.diffthis('~') end")
|
||||
(mkKeymap "n" cfg.mappings.diffThis "package.loaded.gitsigns.diffthis" {
|
||||
desc = mappings.diffThis.description;
|
||||
lua = true;
|
||||
})
|
||||
(mkKeymap "n" cfg.mappings.diffProject "function() package.loaded.gitsigns.diffthis('~') end" {
|
||||
desc = mappings.diffProject.description;
|
||||
lua = true;
|
||||
})
|
||||
|
||||
(mkSetLuaBinding gsMappings.toggleDeleted "package.loaded.gitsigns.toggle_deleted")
|
||||
];
|
||||
(mkKeymap "n" cfg.mappings.toggleDeleted "package.loaded.gitsigns.toggle_deleted" {
|
||||
desc = mappings.toggleDeleted.description;
|
||||
lua = true;
|
||||
})
|
||||
|
||||
visual = mkMerge [
|
||||
(mkSetLuaBinding gsMappings.stageHunk "function() package.loaded.gitsigns.stage_hunk {vim.fn.line('.'), vim.fn.line('v')} end")
|
||||
(mkSetLuaBinding gsMappings.resetHunk "function() package.loaded.gitsigns.reset_hunk {vim.fn.line('.'), vim.fn.line('v')} end")
|
||||
];
|
||||
};
|
||||
(mkKeymap "v" cfg.mappings.stageHunk "function() package.loaded.gitsigns.stage_hunk {vim.fn.line('.'), vim.fn.line('v')} end" {
|
||||
desc = mappings.stageHunk.description;
|
||||
lua = true;
|
||||
})
|
||||
(mkKeymap "v" cfg.mappings.resetHunk "function() package.loaded.gitsigns.reset_hunk {vim.fn.line('.'), vim.fn.line('v')} end" {
|
||||
desc = mappings.resetHunk.description;
|
||||
lua = true;
|
||||
})
|
||||
];
|
||||
|
||||
binds.whichKey.register = pushDownDefault {
|
||||
"<leader>h" = "+Gitsigns";
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue