local lsp = vim.lsp local handlers = lsp.handlers local saga = require('lspsaga') saga.init_lsp_saga() -- Space as leader. vim.api.nvim_set_keymap('n', '', '', {noremap = true, silent = true}) vim.g.mapleader = ' ' -- Exit insert mode with ,h. vim.api.nvim_set_keymap('i', ',h', '', {noremap = true, silent = true}) -- Remap for colemak-dhm. -- Left. vim.api.nvim_set_keymap('', 'm', 'h', {noremap = true, silent = true}) vim.api.nvim_set_keymap('', 'h', 'm', {noremap = true, silent = true}) -- Down. vim.api.nvim_set_keymap('', 'j', 'n', {noremap = true, silent = true}) vim.api.nvim_set_keymap('', 'n', 'j', {noremap = true, silent = true}) -- Up. vim.api.nvim_set_keymap('', 'k', 'e', {noremap = true, silent = true}) vim.api.nvim_set_keymap('', 'e', 'k', {noremap = true, silent = true}) -- Right. vim.api.nvim_set_keymap('', 'l', 'i', {noremap = true, silent = true}) vim.api.nvim_set_keymap('', 'i', 'l', {noremap = true, silent = true}) -- C-g as ESC vim.api.nvim_set_keymap('n', '', '', {silent = true}) vim.api.nvim_set_keymap('i', '', '', {silent = true}) vim.api.nvim_set_keymap('v', '', '', {silent = true}) vim.api.nvim_set_keymap('s', '', '', {silent = true}) vim.api.nvim_set_keymap('x', '', '', {silent = true}) vim.api.nvim_set_keymap('c', '', '', {silent = true}) vim.api.nvim_set_keymap('o', '', '', {silent = true}) vim.api.nvim_set_keymap('l', '', '', {silent = true}) vim.api.nvim_set_keymap('t', '', '', {silent = true}) -- Move right when in insert mode. vim.api.nvim_set_keymap("i", '', '', {noremap = true, silent = true}) -- Leader window movement. vim.api.nvim_set_keymap("n", 'wm', 'h', {noremap = true, silent = true}) vim.api.nvim_set_keymap("n", 'wn', 'j', {noremap = true, silent = true}) vim.api.nvim_set_keymap("n", 'we', 'k', {noremap = true, silent = true}) vim.api.nvim_set_keymap("n", 'wi', 'l', {noremap = true, silent = true}) -- Quick save. vim.api.nvim_set_keymap('n', 'fw', ':w', {silent = true}) -- Toggle between buffers. vim.api.nvim_set_keymap('n', '', '', {noremap = true, silent = true}) -- Find files inside the current folder. vim.api.nvim_set_keymap('n', 'ff', 'Telescope find_files',{}) -- Find files and folders allowing creation. vim.api.nvim_set_keymap('n', 'fb', 'Telescope file_browser', {noremap = true}) -- File brosers starting at the cwd. vim.api.nvim_set_keymap('n', 'fc', 'Telescope file_browser path=%:p:h', {noremap = true}) -- Do a grep search in the current folder. vim.api.nvim_set_keymap('n', 'ps', 'Telescope live_grep',{}) -- Search among the currently open buffers. vim.api.nvim_set_keymap('n', 'bs', 'Telescope buffers',{}) -- Code actions. vim.api.nvim_set_keymap('n', 'ca', "lua vim.lsp.buf.code_action()",{silent = true, noremap = true}) vim.api.nvim_set_keymap('x', 'ca', "lua vim.lsp.buf.range_code_action()",{silent = true, noremap = true}) -- Flutter commands. vim.api.nvim_set_keymap('n', 'fl', "lua require('telescope').extensions.flutter.commands()",{silent = true, noremap = true}) -- Hover doc popup local pop_opts = { border = "rounded", max_width = 80 } handlers["textDocument/hover"] = lsp.with(handlers.hover, pop_opts) handlers["textDocument/signatureHelp"] = lsp.with(handlers.signature_help, pop_opts) vim.api.nvim_set_keymap('n', 'lgd', 'lua vim.lsp.buf.definition()', {noremap = true, silent = true}) vim.api.nvim_set_keymap('n', 'lgD', 'lua vim.lsp.buf.declaration()', {noremap = true, silent = true}) vim.api.nvim_set_keymap('n', 'lgr', 'lua vim.lsp.buf.references()', {noremap = true, silent = true}) vim.api.nvim_set_keymap('n', 'lgi', 'lua vim.lsp.buf.implementation()', {noremap = true, silent = true}) vim.api.nvim_set_keymap('n', 'lr', 'Lspsaga rename', {silent = true}) vim.api.nvim_set_keymap('n', 'K', 'lua vim.lsp.buf.hover()', {noremap = true, silent = true}) ------ Trouble vim.api.nvim_set_keymap("n", "lwd", "Trouble workspace_diagnostics", {silent = true, noremap = true} ) -- Mnemonic "lsp workspace diagnostics" vim.api.nvim_set_keymap("n", "ldd", "Trouble document_diagnostics", {silent = true, noremap = true} ) -- Mnemonic "lsp document diagnostics"