diff --git a/tree/.config/nushell/config.nu b/tree/.config/nushell/config.nu index aaac0c5..255ff0c 100644 --- a/tree/.config/nushell/config.nu +++ b/tree/.config/nushell/config.nu @@ -657,7 +657,7 @@ $env.config = { alias grep = rg alias find = fd alias cat = bat -alias e = helix +alias e = nvim alias gd = git diff alias ga = git add alias gst = git status diff --git a/tree/.config/nvim/init.lua b/tree/.config/nvim/init.lua index 5729019..b3c9756 100644 --- a/tree/.config/nvim/init.lua +++ b/tree/.config/nvim/init.lua @@ -55,7 +55,7 @@ rust_tools.setup({ -- Hover actions vim.keymap.set("n", "", rust_tools.hover_actions.hover_actions, { buffer = bufnr }) -- Code action groups - vim.keymap.set("n", "a", rust_tools.code_action_group.code_action_group, { buffer = bufnr }) + vim.keymap.set("n", "a", rust_tools.code_action_group.code_action_group, { desc = "Code actions", buffer = bufnr }) end, settings = { ["rust-analyzer"] = {}, diff --git a/tree/.config/nvim/lua/keys.lua b/tree/.config/nvim/lua/keys.lua index e417bf3..6f52663 100644 --- a/tree/.config/nvim/lua/keys.lua +++ b/tree/.config/nvim/lua/keys.lua @@ -1,19 +1,14 @@ --- todo: whichkey local telescope = require('telescope.builtin') -vim.keymap.set('n', 'ff', telescope.find_files, {}) -vim.keymap.set('n', 'fg', telescope.live_grep, {}) -vim.keymap.set('n', 'fb', telescope.buffers, {}) -vim.keymap.set('n', 'fh', telescope.help_tags, {}) -vim.keymap.set('n', 'fs', telescope.treesitter, {}) -- find symbols -vim.keymap.set('n', 'fu', ":TodoTelescope", {}) -- find todos -vim.keymap.set('n', 'ft', pick_rust_target, {}) -- find rust targets -vim.keymap.set('n', 'U', ":redo", {}) -vim.keymap.set('n', 'p', ":b#", {}) -- goto previous buffer +local wk = require('which-key') ---vim.keymap.set('n', 'e', vim.diagnostic.open_float) ---vim.keymap.set('n', '[d', vim.diagnostic.goto_prev) ---vim.keymap.set('n', ']d', vim.diagnostic.goto_next) -vim.keymap.set('n', 'q', vim.diagnostic.setloclist) +vim.keymap.set('n', 'f', telescope.find_files, { desc = "File picker" }) +vim.keymap.set('n', 'g', telescope.live_grep, { desc = "Grep recursively" }) +vim.keymap.set('n', 'b', telescope.buffers, { desc = "Buffer picker" }) +vim.keymap.set('n', '?', telescope.help_tags, { desc = "Help tags picker" }) +vim.keymap.set('n', 's', telescope.treesitter, { desc = "Treesitter symbol picker" }) +vim.keymap.set('n', 'u', ":TodoTelescope", { desc = "Grep for TODOs" }) +vim.keymap.set('n', 'U', ":redo", {}) +vim.keymap.set('n', 'p', ":b#", { desc = "Go to last buffer" }) -- Use LspAttach autocommand to only map the following keys -- after the language server attaches to the current buffer @@ -25,21 +20,27 @@ vim.api.nvim_create_autocmd('LspAttach', { -- Buffer local mappings. -- See `:help vim.lsp.*` for documentation on any of the below functions - local opts = { buffer = ev.buf } - vim.keymap.set('n', 'ld', telescope.lsp_definitions, opts) - vim.keymap.set('n', 'lr', telescope.lsp_references, opts) - vim.keymap.set('n', 'li', telescope.lsp_implementations, opts) - vim.keymap.set('n', 'lt', telescope.lsp_type_definitions, opts) - vim.keymap.set('n', 'le', telescope.diagnostics, opts) - vim.keymap.set('n', 'ls', telescope.lsp_workspace_symbols, opts) - vim.keymap.set('n', 'K', vim.lsp.buf.hover, opts) - vim.keymap.set('n', '', vim.lsp.buf.signature_help, opts) - vim.keymap.set('n', 'wa', vim.lsp.buf.add_workspace_folder, opts) - vim.keymap.set('n', 'wr', vim.lsp.buf.remove_workspace_folder, opts) + vim.keymap.set('n', 'lg', pick_rust_target, { desc = "Rust target picker", buffer = ev.buf }) + vim.keymap.set('n', 'ld', telescope.lsp_definitions, { desc = "Show definitons", buffer = ev.buf }) + vim.keymap.set('n', 'lr', telescope.lsp_references, { desc = "Show references", buffer = ev.buf }) + vim.keymap.set('n', 'li', telescope.lsp_implementations, { desc = "Show implementations", buffer = ev.buf }) + vim.keymap.set('n', 'lt', telescope.lsp_type_definitions, { desc = "Show type definitions", buffer = ev.buf }) + vim.keymap.set('n', 'le', telescope.diagnostics, { desc = "Show diagnostics", buffer = ev.buf }) + vim.keymap.set('n', 'ls', telescope.lsp_workspace_symbols, { desc = "Show workspace symbols", buffer = ev.buf }) + vim.keymap.set('n', 'K', vim.lsp.buf.hover, { buffer = ev.buf }) + vim.keymap.set('n', '', vim.lsp.buf.signature_help, { buffer = ev.buf }) + vim.keymap.set('n', 'wa', vim.lsp.buf.add_workspace_folder, { desc = "Add workspace folder", buffer = ev.buf }) + vim.keymap.set('n', 'wr', vim.lsp.buf.remove_workspace_folder, { desc = "Remove workspace folder", buffer = ev.buf }) vim.keymap.set('n', 'wl', function() print(vim.inspect(vim.lsp.buf.list_workspace_folders())) - end, opts) - vim.keymap.set('n', 'r', vim.lsp.buf.rename, opts) - vim.keymap.set({ 'n', 'v' }, 'ca', vim.lsp.buf.code_action, opts) + end, { desc = "List workspace folders", buffer = ev.buf }) + vim.keymap.set('n', 'r', vim.lsp.buf.rename, { desc = "Rename symbol", buffer = ev.buf }) + + wk.register({ + l = "Language server stuff", + w = "Workspace stuff", + }, { prefix = ""} ) + + --vim.keymap.set({ 'n', 'v' }, 'la', vim.lsp.buf.code_action, { desc = "Code actions", buffer = ev.buf }) -- TODO: figure out how to fall back to this option lang isnt rust end, }) diff --git a/tree/.config/nvim/lua/plugins.lua b/tree/.config/nvim/lua/plugins.lua index 5605064..8dcb713 100644 --- a/tree/.config/nvim/lua/plugins.lua +++ b/tree/.config/nvim/lua/plugins.lua @@ -9,6 +9,19 @@ require("lazy").setup({ 'folke/todo-comments.nvim', dependencies = { "nvim-lua/plenary.nvim" }, }, + { + "folke/which-key.nvim", + event = "VeryLazy", + init = function() + vim.o.timeout = true + vim.o.timeoutlen = 300 + end, + opts = { + -- your configuration comes here + -- or leave it empty to use the default settings + -- refer to the configuration section below + } + }, -- -- language server stuff {'williamboman/mason.nvim' },