local map = require("utility").keymap local n, t, nv = map 'n', map 't', 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" -- Diagnostic n "de" (vim.diagnostic.open_float) "Diagnostic: open float" 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 vim.api.nvim_create_autocmd('LspAttach', { group = vim.api.nvim_create_augroup('UserLspConfig', {}), desc = "LSP actions", callback = function(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, })