1
0
Fork 0
chezmoi/dot_config/nvim/lua/configs/keys.lua

63 lines
2.5 KiB
Lua

local M = {}
local function toggle_win_opt(name)
local newval = not vim.api.nvim_win_get_option(0, name)
vim.api.nvim_win_set_option(
0,
name,
newval
)
if newval then
vim.notify(name .. ' is on')
else
vim.notify(name .. ' is off')
end
end
local function toggle_current_win_diagnostic()
local d = vim.diagnostic
if d.is_disabled(0, nil) then
d.enable(0, nil)
vim.notify('Enabling diagnostic')
else
d.disable(0, nil)
vim.notify('Disabling diagnostic')
end
end
function M.setup()
vim.keymap.set('n', '<S-Down>', '<C-E>')
vim.keymap.set('n', '<S-Up>', '<C-Y>')
vim.keymap.set('n', '[d', vim.diagnostic.goto_prev, { desc = 'Go to next diagnostic' })
vim.keymap.set('n', ']d', vim.diagnostic.goto_next, { desc = 'Go to prev diagnostic' })
vim.keymap.set('n', '[e', function() vim.diagnostic.goto_prev({ severity = vim.diagnostic.severity.ERROR }) end,
{ desc = 'Go to next error' })
vim.keymap.set('n', ']e', function() vim.diagnostic.goto_next({ severity = vim.diagnostic.severity.ERROR }) end,
{ desc = 'Go to prev error' })
vim.keymap.set('n', '<space>q', vim.diagnostic.setloclist, { desc = 'Diagnostic to loclist' })
vim.keymap.set({ 'n', 'x', 'o' }, 'n', "'Nn'[v:searchforward]", { expr = true, desc = 'Next search result' })
vim.keymap.set({ 'n', 'x', 'o' }, 'N', "'nN'[v:searchforward]", { expr = true, desc = 'Prev search result' })
vim.keymap.set('n', '<leader>ow', function() toggle_win_opt('wrap') end, { desc = 'Toggle wrap' })
vim.keymap.set('n', '<leader>on', function() toggle_win_opt('number') end, { desc = 'Toggle number' })
vim.keymap.set('n', '<leader>or', function() toggle_win_opt('relativenumber') end, { desc = 'Toggle relativenumber' })
vim.keymap.set('n', '<leader>oR', require('configs.options').setup, { desc = 'RESET' })
vim.keymap.set('n', '<leader>od', toggle_current_win_diagnostic, { desc = 'Toggle diagnostic' })
vim.keymap.set('n', '<leader>of', function()
if (vim.api.nvim_win_get_option(0, 'foldmethod') ~= 'marker') then
vim.api.nvim_win_set_option(0, 'foldmethod', 'marker')
vim.api.nvim_win_set_option(0, 'foldlevel', 0)
else
vim.api.nvim_win_set_option(0, 'foldmethod', 'expr')
vim.api.nvim_win_set_option(0, 'foldlevel', 99)
end
vim.notify('Fdm: ' .. vim.api.nvim_win_get_option(0, 'foldmethod'))
end, { desc = 'Toggle foldmethod marker/expr' })
vim.keymap.set('n', '<leader>di', '<cmd>Inspect<CR>', { desc = 'Inspect' })
end
return M