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 function M.setup() vim.keymap.set('n', '', '') vim.keymap.set('n', '', '') 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', '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', 'ow', function() toggle_win_opt('wrap') end, { desc = 'Toggle wrap' }) vim.keymap.set('n', 'on', function() toggle_win_opt('number') end, { desc = 'Toggle number' }) vim.keymap.set('n', 'or', function() toggle_win_opt('relativenumber') end, { desc = 'Toggle relativenumber' }) vim.keymap.set('n', 'oR', require('configs.options').setup, { desc = 'RESET' }) vim.keymap.set('n', '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' }) end return M