mirror of
https://github.com/WarrenHood/dotfiles.git
synced 2025-04-29 15:45:00 +01:00
165 lines
6.2 KiB
Lua
165 lines
6.2 KiB
Lua
local function map(m, k, v, opts)
|
|
opts = opts or {}
|
|
if not opts['silent'] then
|
|
opts['silent'] = true
|
|
end
|
|
vim.keymap.set(m, k, v, opts)
|
|
end
|
|
|
|
-- Save and Quit
|
|
map('n', '<C-Q>', ':wq<CR>')
|
|
map('i', '<C-Q>', '<ESC>:wq<CR>')
|
|
|
|
-- Save
|
|
map('n', '<C-S>', ':w<CR>')
|
|
map('i', '<C-S>', '<ESC>:w<CR>')
|
|
|
|
-- Telescope
|
|
local telescope_builtin = require('telescope.builtin')
|
|
map('n', '<leader>ff', telescope_builtin.find_files, { desc = 'Find Files' })
|
|
map('n', '<leader>fF', ":Telescope find_files hidden=true<CR>", { desc = 'Find Files (including hidden)' })
|
|
map('n', '<leader>fg', telescope_builtin.live_grep, { desc = 'Live Grep' })
|
|
map('n', '<leader>fb', telescope_builtin.buffers, { desc = 'Find Buffers' })
|
|
map('n', '<leader>fh', telescope_builtin.help_tags, { desc = 'Help Tags' })
|
|
|
|
-- NvimTree Toggle (File Explorer)
|
|
map('n', '<C-B>', ':NvimTreeToggle<CR>')
|
|
|
|
-- ToggleTerm
|
|
map('n', '<C-t>', ':ToggleTerm<CR>')
|
|
map('t', '<C-t>', '<C-\\><C-n>:ToggleTerm<CR>')
|
|
|
|
--[[ -- Pane navigation
|
|
map('n', '<C-h>', ':wincmd h<CR>')
|
|
map('n', '<C-j>', ':wincmd j<CR>')
|
|
map('n', '<C-k>', ':wincmd k<CR>')
|
|
map('n', '<C-l>', ':wincmd l<CR>')
|
|
|
|
map('t', '<C-h>', '<C-\\><C-n>:wincmd h<CR>')
|
|
map('t', '<C-j>', '<C-\\><C-n>:wincmd j<CR>')
|
|
map('t', '<C-k>', '<C-\\><C-n>:wincmd k<CR>')
|
|
map('t', '<C-l>', '<C-\\><C-n>:wincmd l<CR>') ]]
|
|
|
|
-- Pane management
|
|
map('n', '<leader>sv', ':vsplit<CR>', { desc = 'Split Vertical' })
|
|
map('n', '<leader>sh', ':split<CR>', { desc = 'Split Horizontal' })
|
|
|
|
|
|
-- Debugging
|
|
map("n", "<F4>", ":lua require('dapui').toggle()<CR>")
|
|
map("n", "<F5>", ":lua require('dap').toggle_breakpoint()<CR>")
|
|
map("n", "<F9>", ":lua require('dap').continue()<CR>")
|
|
|
|
map("n", "<F1>", ":lua require('dap').step_over()<CR>")
|
|
map("n", "<F2>", ":lua require('dap').step_into()<CR>")
|
|
map("n", "<F3>", ":lua require('dap').step_out()<CR>")
|
|
|
|
|
|
map("n", "<Leader>dsc", ":lua require('dap').continue()<CR>")
|
|
map("n", "<Leader>dsv", ":lua require('dap').step_over()<CR>")
|
|
map("n", "<Leader>dsi", ":lua require('dap').step_into()<CR>")
|
|
map("n", "<Leader>dso", ":lua require('dap').step_out()<CR>")
|
|
|
|
|
|
map("n", "<Leader>dhh", ":lua require('dap.ui.variables').hover()<CR>")
|
|
map("v", "<Leader>dhv", ":lua require('dap.ui.variables').visual_hover()<CR>")
|
|
|
|
|
|
map("n", "<Leader>duh", ":lua require('dap.ui.widgets').hover()<CR>")
|
|
map("n", "<Leader>duf", ":lua local widgets=require('dap.ui.widgets');widgets.centered_float(widgets.scopes)<CR>")
|
|
|
|
|
|
map("n", "<Leader>dro", ":lua require('dap').repl.open()<CR>")
|
|
map("n", "<Leader>drl", ":lua require('dap').repl.run_last()<CR>")
|
|
|
|
map("n", "<Leader>dbc", ":lua require('dap').set_breakpoint(vim.fn.input('Breakpoint condition: '))<CR>")
|
|
map("n", "<Leader>dbm", ":lua require('dap').set_breakpoint({ nil, nil, vim.fn.input('Log point message: '))<CR>")
|
|
map("n", "<Leader>dbt", ":lua require('dap').toggle_breakpoint()<CR>")
|
|
|
|
|
|
map("n", "<Leader>dc", ":lua require('dap.ui.variables').scopes()<CR>")
|
|
map("n", "<Leader>di", ":lua require('dapui').toggle()<CR>")
|
|
|
|
|
|
-- luasnip
|
|
vim.cmd [[
|
|
" Use Tab to expand and jump through snippets
|
|
imap <silent><expr> <C-k> luasnip#expand_or_jumpable() ? '<Plug>luasnip-expand-or-jump' : '<Tab>'
|
|
smap <silent><expr> <C-k> luasnip#jumpable(1) ? '<Plug>luasnip-jump-next' : '<Tab>'
|
|
|
|
" Use Shift-Tab to jump backwards through snippets
|
|
imap <silent><expr> <C-j> luasnip#jumpable(-1) ? '<Plug>luasnip-jump-prev' : '<S-Tab>'
|
|
smap <silent><expr> <C-j> luasnip#jumpable(-1) ? '<Plug>luasnip-jump-prev' : '<S-Tab>'
|
|
]]
|
|
|
|
-- GUI (Neovide
|
|
-- Toggle fullscreen in Neovide with Alt + Enter)
|
|
if vim.g.neovide then
|
|
map({ "n", "i", "t" }, "<A-CR>", function()
|
|
vim.g.neovide_fullscreen = not vim.g.neovide_fullscreen
|
|
end)
|
|
end
|
|
|
|
|
|
-- -- barbar
|
|
-- local barbar_opts = { noremap = true, silent = true }
|
|
--
|
|
-- -- Move to previous/next
|
|
-- map('n', '<A-,>', '<Cmd>BufferPrevious<CR>', barbar_opts)
|
|
-- map('n', '<A-.>', '<Cmd>BufferNext<CR>', barbar_opts)
|
|
-- -- Re-order to previous/next
|
|
-- map('n', '<A-<>', '<Cmd>BufferMovePrevious<CR>', barbar_opts)
|
|
-- map('n', '<A->>', '<Cmd>BufferMoveNext<CR>', barbar_opts)
|
|
-- -- Goto buffer in position...
|
|
-- map('n', '<A-1>', '<Cmd>BufferGoto 1<CR>', barbar_opts)
|
|
-- map('n', '<A-2>', '<Cmd>BufferGoto 2<CR>', barbar_opts)
|
|
-- map('n', '<A-3>', '<Cmd>BufferGoto 3<CR>', barbar_opts)
|
|
-- map('n', '<A-4>', '<Cmd>BufferGoto 4<CR>', barbar_opts)
|
|
-- map('n', '<A-5>', '<Cmd>BufferGoto 5<CR>', barbar_opts)
|
|
-- map('n', '<A-6>', '<Cmd>BufferGoto 6<CR>', barbar_opts)
|
|
-- map('n', '<A-7>', '<Cmd>BufferGoto 7<CR>', barbar_opts)
|
|
-- map('n', '<A-8>', '<Cmd>BufferGoto 8<CR>', barbar_opts)
|
|
-- map('n', '<A-9>', '<Cmd>BufferGoto 9<CR>', barbar_opts)
|
|
-- map('n', '<A-0>', '<Cmd>BufferLast<CR>', barbar_opts)
|
|
-- -- Pin/unpin buffer
|
|
-- map('n', '<A-p>', '<Cmd>BufferPin<CR>', barbar_opts)
|
|
-- -- Close buffer
|
|
-- map('n', '<A-c>', '<Cmd>BufferClose<CR>', barbar_opts)
|
|
-- -- Wipeout buffer
|
|
-- -- :BufferWipeout
|
|
--
|
|
-- -- Close commands
|
|
-- -- :BufferCloseAllButCurrent
|
|
-- -- :BufferCloseAllButPinned
|
|
-- -- :BufferCloseAllButCurrentOrPinned
|
|
-- -- :BufferCloseBuffersLeft
|
|
-- -- :BufferCloseBuffersRight
|
|
-- -- Magic buffer-picking mode
|
|
-- map('n', '<C-p>', '<Cmd>BufferPick<CR>', barbar_opts)
|
|
-- -- Sort automatically by...
|
|
-- map('n', '<Space>bb', '<Cmd>BufferOrderByBufferNumber<CR>', barbar_opts)
|
|
-- map('n', '<Space>bd', '<Cmd>BufferOrderByDirectory<CR>', barbar_opts)
|
|
-- map('n', '<Space>bl', '<Cmd>BufferOrderByLanguage<CR>', barbar_opts)
|
|
-- map('n', '<Space>bw', '<Cmd>BufferOrderByWindowNumber<CR>', barbar_opts)
|
|
--
|
|
-- -- Other:
|
|
-- -- :BarbarEnable - enables barbar (enabled by default)
|
|
-- -- :BarbarDisable - very bad command, should never be used
|
|
|
|
|
|
-- Disable arrow keys
|
|
local arrows = { '<Up>', '<Down>', '<Left>', '<Right>' }
|
|
for i = 1, #arrows do
|
|
map('n', arrows[i], function() end)
|
|
map('i', arrows[i], function() end)
|
|
end
|
|
|
|
-- Code actions with ctrl + .
|
|
map('n', '<Leader>.', function() vim.lsp.buf.code_action({ apply = true }) end, { desc = 'Code action/Quick fix' })
|
|
|
|
-- Show telescope commands fuzzy finder
|
|
map('n', '<Leader><Leader>', function() require('telescope.builtin').commands() end, { desc = 'Show commands' })
|
|
|
|
-- Show diagnostics in floating window
|
|
map('n', '<Leader>e', function() vim.diagnostic.open_float() end, { desc = 'Show diagnostics' })
|