dotfiles

custom linux config files managed with gnu stow

dotfiles

neovim/.config/nvim/lua/utils/remaps.lua


local keymap = vim.keymap
local check_duplicates = require("utils.duplicates").check_duplicates
local X = {}
local wk_lazy = {}

local function lazy_register_wk(input)
	table.insert(wk_lazy, input)
end

local function add_wk(input)
	local wk_ready, wk = pcall(require, "which-key")
	if wk_ready then
		if wk_lazy ~= {} then
			wk.add(wk_lazy)
			wk_lazy = {}
		end
		wk.add(input)
	else
		lazy_register_wk(input)
	end
end

function X.map(type, input, output, description, additional_options)
	local options = { remap = true, desc = description }
	if additional_options then
		options = vim.tbl_deep_extend("force", options, additional_options)
	end
	keymap.set(type, input, output, options)
	check_duplicates(type, input, description)
end

function X.noremap(type, input, output, description, additional_options)
	local options = { remap = false }
	if additional_options then
		options = vim.tbl_deep_extend("force", options, additional_options)
	end
	X.map(type, input, output, description, options)
end

function X.map_virtual(input)
	add_wk(input)
end

return X

Download

raw zip tar