local map = require 'config.helpers.keymap' local n = map 'n' local t = map 't' local nv = map {'n', 'v'} n 'mn' ':Explore ~/.config/nvim/' 'Meta: open Neovim config' n 'ex' ':Explore' 'Netrw: open' n 'hl' ':nohl' 'Hide highlights' n 'j' 'gj' 'Move: down by line' n 'k' 'gk' 'Move: up by line' n 'bn' ':bn' 'Buffer: next' n 'bp' ':bp' 'Buffer: previous' n 'bd' ':bd' 'Buffer: delete' t '' [[]] 'Exit from terminal mode' n '' 'h' 'Window: move left' n '' 'j' 'Window: move down' n '' 'k' 'Window: move up' n '' 'l' 'Window: move right' -- Diagnostics n 'e' (vim.diagnostic.open_float) 'Open error diagnostics' n '[d' (vim.diagnostic.goto_prev) 'Previous diagnostic message' n ']d' (vim.diagnostic.goto_next) 'Next diagnostic message' n 'dl' (vim.diagnostic.setloclist) 'Diagnostic: list messages' -- LSP do local group = vim.api.nvim_create_augroup('UserLspConfig', {}) local function setup_lsp_keymaps(ev) -- Enable completion triggered by vim.bo[ev.buf].omnifunc = 'v:lua.vim.lsp.omnifunc' local function workspaces_list() print(vim.inspect(vim.lsp.buf.list_workspace_folders())) end local function format() vim.lsp.buf.format({async = true}) end local buffer = ev.buf n 'K' (vim.lsp.buf.hover) {'Show hover help', buffer} n 'gD' (vim.lsp.buf.declaration) {'Go to declaration', buffer} n 'gd' (vim.lsp.buf.definition) {'Go to definition', buffer} n 'gi' (vim.lsp.buf.implementation) {'Go to implementation', buffer} n 'gr' (vim.lsp.buf.references) {'Show references', buffer} n 'D' (vim.lsp.buf.type_definition) {'Go to type definition', buffer} n '' (vim.lsp.buf.signature_help) {'Signature help', buffer} n 'wa' (vim.lsp.buf.add_workspace_folder) {'Add workspace folder', buffer} n 'wr' (vim.lsp.buf.remove_workspace_folder) {'Remove workspace folder', buffer} n 'wl' (workspaces_list) {'List workspace folders', buffer} n 'lr' (vim.lsp.buf.rename) {'Rename identifier', buffer} nv 'la' (vim.lsp.buf.code_action) {'Show code actions', buffer} n 'lf' (format) {'Format file', buffer} end vim.api.nvim_create_autocmd('LspAttach', { group = group, callback = setup_lsp_keymaps }) end