66 lines
2.7 KiB
Lua
66 lines
2.7 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' })
|
|
|
|
vim.keymap.set('x', '<leader>eB', "c<c-r>=system('base64 -w0', @\")<cr><esc>", { desc = 'Encode to base64' })
|
|
vim.keymap.set('x', '<leader>eb', "c<c-r>=system('base64 -d -w0', @\")<cr><esc>", { desc = 'Decode from base64' })
|
|
end
|
|
|
|
return M
|