diff --git a/after/ftplugin/c.lua b/after/ftplugin/c.lua new file mode 100644 index 0000000..a65f60e --- /dev/null +++ b/after/ftplugin/c.lua @@ -0,0 +1,3 @@ +local opts = { buffer = true, remap = false, silent = true } +vim.keymap.set('n', '0', ':PreProcIfWrap', opts) +vim.keymap.set('v', '0', ':PreProcIfWrap', opts) diff --git a/after/ftplugin/cpp.lua b/after/ftplugin/cpp.lua index 15e2cfd..8926c8f 100644 --- a/after/ftplugin/cpp.lua +++ b/after/ftplugin/cpp.lua @@ -1,2 +1,6 @@ vim.opt.commentstring = '//%s' vim.opt.matchpairs:append('<:>') + +local opts = { buffer = true, remap = false, silent = true } +vim.keymap.set('n', '0', ':PreProcIfWrap', opts) +vim.keymap.set('v', '0', ':PreProcIfWrap', opts) diff --git a/plugin/commands.lua b/plugin/commands.lua index e0d7e7d..04a020a 100644 --- a/plugin/commands.lua +++ b/plugin/commands.lua @@ -126,3 +126,13 @@ vim.api.nvim_create_user_command('Rg', function(opts) end require('telescope.builtin').grep_string(grep_opts) end, { bang = true, nargs = '*' }) + +vim.api.nvim_create_user_command('PreProcIfWrap', function(opts) + local buffer = vim.api.nvim_get_current_buf() + vim.api.nvim_buf_set_lines( + buffer, opts.line2, opts.line2, true, { '#endif' }) + vim.api.nvim_buf_set_lines( + buffer, opts.line1 - 1, opts.line1 - 1, true, { '#if 0' }) + local window = vim.api.nvim_get_current_win() + vim.api.nvim_win_set_cursor(window, { opts.line1, 5 }) +end, { range = true })