diff --git a/fish/conf.d/fish_frozen_theme.fish.bak b/fish/conf.d/fish_frozen_theme.fish.bak new file mode 100644 index 0000000..2008093 --- /dev/null +++ b/fish/conf.d/fish_frozen_theme.fish.bak @@ -0,0 +1,49 @@ +# This file was created by fish when upgrading to version 4.3, to migrate +# theme variables from universal to global scope. +# Don't edit this file, as it will be written by the web-config tool (`fish_config`). +# To customize your theme, delete this file and see +# help interactive#syntax-highlighting +# or +# man fish-interactive | less +/^SYNTAX.HIGHLIGHTING +# for appropriate commands to add to ~/.config/fish/config.fish instead. +# See also the release notes for fish 4.3.0 (run `help relnotes`). + +set --global fish_color_autosuggestion 6c7086 +set --global fish_color_cancel f38ba8 +set --global fish_color_command 89b4fa +set --global fish_color_comment 7f849c +set --global fish_color_cwd f9e2af +set --global fish_color_cwd_root red +set --global fish_color_end fab387 +set --global fish_color_error f38ba8 +set --global fish_color_escape eba0ac +set --global fish_color_gray 6c7086 +set --global fish_color_history_current --bold +set --global fish_color_host 89b4fa +set --global fish_color_host_remote a6e3a1 +set --global fish_color_keyword f38ba8 +set --global fish_color_match --background=brblue +set --global fish_color_normal cdd6f4 +set --global fish_color_operator f5c2e7 +set --global fish_color_option a6e3a1 +set --global fish_color_param f2cdcd +set --global fish_color_quote a6e3a1 +set --global fish_color_redirection f5c2e7 +set --global fish_color_search_match --background=313244 +set --global fish_color_selection --background=313244 +set --global fish_color_status f38ba8 +set --global fish_color_user 94e2d5 +set --global fish_color_valid_path --underline +set --global fish_pager_color_background +set --global fish_pager_color_completion cdd6f4 +set --global fish_pager_color_description 6c7086 +set --global fish_pager_color_prefix f5c2e7 +set --global fish_pager_color_progress 6c7086 +set --global fish_pager_color_secondary_background +set --global fish_pager_color_secondary_completion +set --global fish_pager_color_secondary_description +set --global fish_pager_color_secondary_prefix +set --global fish_pager_color_selected_background +set --global fish_pager_color_selected_completion +set --global fish_pager_color_selected_description +set --global fish_pager_color_selected_prefix diff --git a/fish/fish_variables b/fish/fish_variables index 0cef8d8..ad10b9b 100644 --- a/fish/fish_variables +++ b/fish/fish_variables @@ -1,42 +1,3 @@ # This file contains fish universal variable definitions. # VERSION: 3.0 -SETUVAR __fish_initialized:3800 -SETUVAR fish_color_autosuggestion:6c7086 -SETUVAR fish_color_cancel:f38ba8 -SETUVAR fish_color_command:89b4fa -SETUVAR fish_color_comment:7f849c -SETUVAR fish_color_cwd:f9e2af -SETUVAR fish_color_cwd_root:red -SETUVAR fish_color_end:fab387 -SETUVAR fish_color_error:f38ba8 -SETUVAR fish_color_escape:eba0ac -SETUVAR fish_color_gray:6c7086 -SETUVAR fish_color_history_current:\x2d\x2dbold -SETUVAR fish_color_host:89b4fa -SETUVAR fish_color_host_remote:a6e3a1 -SETUVAR fish_color_keyword:f38ba8 -SETUVAR fish_color_match:\x2d\x2dbackground\x3dbrblue -SETUVAR fish_color_normal:cdd6f4 -SETUVAR fish_color_operator:f5c2e7 -SETUVAR fish_color_option:a6e3a1 -SETUVAR fish_color_param:f2cdcd -SETUVAR fish_color_quote:a6e3a1 -SETUVAR fish_color_redirection:f5c2e7 -SETUVAR fish_color_search_match:\x2d\x2dbackground\x3d313244 -SETUVAR fish_color_selection:\x2d\x2dbackground\x3d313244 -SETUVAR fish_color_status:f38ba8 -SETUVAR fish_color_user:94e2d5 -SETUVAR fish_color_valid_path:\x2d\x2dunderline -SETUVAR fish_pager_color_background:\x1d -SETUVAR fish_pager_color_completion:cdd6f4 -SETUVAR fish_pager_color_description:6c7086 -SETUVAR fish_pager_color_prefix:f5c2e7 -SETUVAR fish_pager_color_progress:6c7086 -SETUVAR fish_pager_color_secondary_background:\x1d -SETUVAR fish_pager_color_secondary_completion:\x1d -SETUVAR fish_pager_color_secondary_description:\x1d -SETUVAR fish_pager_color_secondary_prefix:\x1d -SETUVAR fish_pager_color_selected_background:\x1d -SETUVAR fish_pager_color_selected_completion:\x1d -SETUVAR fish_pager_color_selected_description:\x1d -SETUVAR fish_pager_color_selected_prefix:\x1d +SETUVAR __fish_initialized:4300 diff --git a/nvim/lua/plugins/alpha.lua b/nvim/lua/plugins/alpha.lua deleted file mode 100644 index 6514e5f..0000000 --- a/nvim/lua/plugins/alpha.lua +++ /dev/null @@ -1,83 +0,0 @@ -return { - "goolord/alpha-nvim", - event = "VimEnter", - config = function() - local opts = { noremap = true, silent = true } - vim.keymap.set("n", "aA", ":Alpha", opts) - local dashboard = require("alpha.themes.dashboard") - local logo = [[ - (q\_/p) -.-. |. .| (\ - \ =\,/= (\_\_^__o - )/ _ \ ___ `-'/ `_/ - (/\):(/\ '`--\________/ | - \_ _/ ' / | - `""^""` ` . ' `-`/.----------'\^-' - ]] - - local status_ok, alpha = pcall(require, "alpha") - if not status_ok then - return - end - - dashboard.section.header.val = vim.split(logo, "\n") - dashboard.section.buttons.val = { - dashboard.button("f", " " .. " Find file", ":lua require('fzf-lua').frecency({ cwd_only = true }) "), - dashboard.button("r", " " .. " Recent files", ":lua require('fzf-lua').frecency() "), - dashboard.button("R", " " .. " Restore session", ":so Session.vim"), - dashboard.button("g", " " .. " Find text", ":lua require('fzf-lua').live_grep() "), - dashboard.button("G", " " .. " Git Status", ":lua require('fzf-lua').git_status() "), - dashboard.button("t", " " .. " Open file tree", ":Neotree"), - dashboard.button("l", "󰒲 " .. " Lazy", ":Lazy"), - dashboard.button( - "d", - " " .. " Git Graph", - ":lua require('gitgraph').draw({}, { all = true, max_count = 5000 })" - ), - dashboard.button("q", " " .. " Quit", ":qa"), - } - dashboard.section.buttons.opts.spacing = 0 - local f = io.popen("/bin/hostname") - if f == nil then - return - end - local hostname = f:read("*a") or "" - f:close() - hostname = string.gsub(hostname, "\n$", "") - hostname = string.gsub(hostname, ".lan$", "") - - local v = vim.version() - local version = " v" .. v.major .. "." .. v.minor .. "." .. v.patch - local machine = "󰌢 " .. vim.fn.expand("$USER") .. "@" .. hostname - - vim.api.nvim_create_autocmd("User", { - pattern = "LazyVimStarted", - callback = function() - local stats = require("lazy").stats() - local ms = (math.floor(stats.startuptime * 100 + 0.5) / 100) - dashboard.section.footer.val = { - "", - version, - "", - machine, - "", - "⚡ Neovim loaded " .. stats.count .. " plugins in " .. ms .. "ms", - } - pcall(vim.cmd.AlphaRedraw) - end, - }) - - dashboard.section.footer.val = {} - - dashboard.section.footer.opts.hl = "Type" - dashboard.section.header.opts.hl = "Include" - dashboard.section.buttons.opts.hl = "Keyword" - - dashboard.opts.opts.noautocmd = true - alpha.setup(dashboard.opts) - - dashboard.section.header.opts.hl = "AlphaHeader" - dashboard.opts.layout[1].val = 6 - return dashboard - end, -} diff --git a/nvim/lua/plugins/flash.lua b/nvim/lua/plugins/flash.lua new file mode 100644 index 0000000..97d3ec0 --- /dev/null +++ b/nvim/lua/plugins/flash.lua @@ -0,0 +1,13 @@ +return { + "folke/flash.nvim", + event = "VeryLazy", + opts = {}, + -- stylua: ignore + keys = { + { "s", mode = { "n", "x", "o" }, function() require("flash").jump() end, desc = "Flash" }, + { "S", mode = { "n", "x", "o" }, function() require("flash").treesitter() end, desc = "Flash Treesitter" }, + { "r", mode = "o", function() require("flash").remote() end, desc = "Remote Flash" }, + { "R", mode = { "o", "x" }, function() require("flash").treesitter_search() end, desc = "Treesitter Search" }, + { "", mode = { "c" }, function() require("flash").toggle() end, desc = "Toggle Flash Search" }, + }, +} diff --git a/nvim/lua/plugins/fzf-lua.lua b/nvim/lua/plugins/fzf-lua.lua index 39ff04d..3154304 100644 --- a/nvim/lua/plugins/fzf-lua.lua +++ b/nvim/lua/plugins/fzf-lua.lua @@ -3,42 +3,188 @@ return { event = "VeryLazy", -- optional for icon support dependencies = { "nvim-tree/nvim-web-devicons", "elanmed/fzf-lua-frecency.nvim" }, + keys = { + { + "", + function() + require("fzf-lua").live_grep() + end, + desc = "Files", + }, + { + "", + function() + require("fzf-lua").files({ line_query = true }) + end, + desc = "Files", + }, + { + "fzg", + function() + require("fzf-lua").live_grep() + end, + desc = "Live grep", + }, + { + "fzf", + function() + require("fzf-lua").frecency({ cwd_only = true }) + end, + desc = "Frecency", + }, + { + "fzF", + function() + require("fzf-lua").files({ line_query = true }) + end, + desc = "Files", + }, + { + "fzr", + function() + require("fzf-lua").resume() + end, + desc = "Resume", + }, + { + "fzo", + function() + require("fzf-lua").oldfiles() + end, + desc = "Old files", + }, + { + "fzG", + function() + require("fzf-lua").git_status() + end, + desc = "Git Status", + }, + { + "fzq", + function() + require("fzf-lua").quickfix() + end, + desc = "Quickfix", + }, + { + "fzb", + function() + require("fzf-lua").buffers() + end, + desc = "Buffers", + }, + { + "fzz", + function() + require("fzf-lua").global() + end, + desc = "Global", + }, + { + "fzk", + function() + require("fzf-lua").keymaps() + end, + desc = "Keymaps", + }, + { + "fzu", + function() + require("fzf-lua").undotree() + end, + desc = "Undotree", + }, + { + "fzlr", + function() + require("fzf-lua").lsp_references() + end, + desc = "References", + }, + { + "fzlD", + function() + require("fzf-lua").lsp_definitions() + end, + desc = "Definitions", + }, + { + "fzlc", + function() + require("fzf-lua").lsp_declarations() + end, + desc = "Declarations", + }, + { + "fzlt", + function() + require("fzf-lua").lsp_typedefs() + end, + desc = "Type Definitions", + }, + { + "ff", + function() + require("fzf-lua").files() + end, + desc = "Files", + }, + { + "fg", + function() + require("fzf-lua").live_grep() + end, + desc = "Live grep", + }, + { + "fb", + function() + require("fzf-lua").buffers() + end, + desc = "Buffers", + }, + { + "fh", + function() + require("fzf-lua").help_tags() + end, + desc = "Help tags", + }, + { + "fd", + function() + require("fzf-lua").lsp_definitions({ jump1 = false }) + end, + desc = "Definitions", + }, + { + "fr", + function() + require("fzf-lua").lsp_references() + end, + desc = "References", + }, + { + "gr", + function() + require("fzf-lua").lsp_references({ jump1 = true, ignore_current_line = true }) + end, + desc = "LSP References", + }, + { + "gd", + function() + require("fzf-lua").lsp_definitions({ jump1 = true }) + end, + desc = "LSP Definitions", + }, + }, config = function() -- calling `setup` is optional for customization local frecency = require("fzf-lua-frecency") frecency.setup() require("fzf-lua").setup({ "default-title" }) - vim.keymap.set("n", "", require("fzf-lua").live_grep, { desc = "Files" }) - vim.keymap.set("n", "", function() - require("fzf-lua").files({ line_query = true }) - end, { desc = "Files" }) - vim.keymap.set("n", "fzg", require("fzf-lua").live_grep, { desc = "Live grep" }) - vim.keymap.set("n", "fzf", function() - require("fzf-lua").frecency({ cwd_only = true }) - end, { desc = "Frecency" }) - vim.keymap.set("n", "fzF", function() - require("fzf-lua").files({ line_query = true }) - end, { desc = "Files" }) - vim.keymap.set("n", "fzr", require("fzf-lua").resume, { desc = "Resume" }) - vim.keymap.set("n", "fzo", require("fzf-lua").oldfiles, { desc = "Old files" }) - vim.keymap.set("n", "fzG", require("fzf-lua").git_status, { desc = "Git Status" }) - vim.keymap.set("n", "fzq", require("fzf-lua").quickfix, { desc = "Quickfix" }) - vim.keymap.set("n", "fzb", require("fzf-lua").buffers, { desc = "Buffers" }) - vim.keymap.set("n", "fzz", require("fzf-lua").global, { desc = "Global" }) - vim.keymap.set("n", "fzk", require("fzf-lua").keymaps, { desc = "Keymaps" }) - vim.keymap.set("n", "fzu", require("fzf-lua").undotree, { desc = "Undotree" }) - vim.keymap.set("n", "fzlr", require("fzf-lua").lsp_references, { desc = "References" }) - vim.keymap.set("n", "fzlD", require("fzf-lua").lsp_definitions, { desc = "Definitions" }) - vim.keymap.set("n", "fzlc", require("fzf-lua").lsp_declarations, { desc = "Declarations" }) - vim.keymap.set("n", "fzlt", require("fzf-lua").lsp_typedefs, { desc = "Type Definitions" }) - vim.keymap.set("n", "ff", require("fzf-lua").files, { desc = "Files" }) - vim.keymap.set("n", "fg", require("fzf-lua").live_grep, { desc = "Live grep" }) - vim.keymap.set("n", "fb", require("fzf-lua").buffers, { desc = "Buffers" }) - vim.keymap.set("n", "fh", require("fzf-lua").help_tags, { desc = "Help tags" }) - vim.keymap.set("n", "fd", function() - require("fzf-lua").lsp_definitions({ jump1 = false }) - end, { desc = "Definitions" }) - vim.keymap.set("n", "fr", require("fzf-lua").lsp_references, { desc = "References" }) require("fzf-lua").register_ui_select() end, } diff --git a/nvim/lua/plugins/gitsigns.lua b/nvim/lua/plugins/gitsigns.lua index 90cb429..08c6f39 100644 --- a/nvim/lua/plugins/gitsigns.lua +++ b/nvim/lua/plugins/gitsigns.lua @@ -3,19 +3,21 @@ return { "lewis6991/gitsigns.nvim", event = { "BufReadPre", "BufNewFile" }, opts = {}, + keys = { + { "gb", ":Gitsigns toggle_current_line_blame", desc = "Toggle Line Blame" }, + { "gs", ":Gitsigns stage_hunk", desc = "Stage Hunk" }, + { "gu", ":Gitsigns undo_stage_hunk", desc = "Undo Stage Hunk" }, + { "gr", ":Gitsigns reset_hunk", desc = "Reset Hunk" }, + { "gR", ":Gitsigns reset_buffer", desc = "Reset Buffer" }, + { "gp", ":Gitsigns preview_hunk", desc = "Preview Hunk" }, + { "gj", ":Gitsigns next_hunk", desc = "Next Hunk" }, + { "gk", ":Gitsigns prev_hunk", desc = "Previous Hunk" }, + { "gl", ":Gitsigns toggle_numhl", desc = "Toggle Num HL" }, + { "gh", ":Gitsigns toggle_linehl", desc = "Toggle Line HL" }, + { "gS", ":Gitsigns stage_buffer", desc = "Stage Buffer" }, + { "gU", ":Gitsigns reset_buffer_index", desc = "Reset Buffer Index" }, + }, config = function() require("gitsigns").setup() - vim.keymap.set("n", "gb", ":Gitsigns toggle_current_line_blame", { noremap = true, silent = true }) - vim.keymap.set("n", "gs", ":Gitsigns stage_hunk", { noremap = true, silent = true }) - vim.keymap.set("n", "gu", ":Gitsigns undo_stage_hunk", { noremap = true, silent = true }) - vim.keymap.set("n", "gr", ":Gitsigns reset_hunk", { noremap = true, silent = true }) - vim.keymap.set("n", "gR", ":Gitsigns reset_buffer", { noremap = true, silent = true }) - vim.keymap.set("n", "gp", ":Gitsigns preview_hunk", { noremap = true, silent = true }) - vim.keymap.set("n", "gj", ":Gitsigns next_hunk", { noremap = true, silent = true }) - vim.keymap.set("n", "gk", ":Gitsigns prev_hunk", { noremap = true, silent = true }) - vim.keymap.set("n", "gl", ":Gitsigns toggle_numhl", { noremap = true, silent = true }) - vim.keymap.set("n", "gh", ":Gitsigns toggle_linehl", { noremap = true, silent = true }) - vim.keymap.set("n", "gS", ":Gitsigns stage_buffer", { noremap = true, silent = true }) - vim.keymap.set("n", "gU", ":Gitsigns reset_buffer_index", { noremap = true, silent = true }) end, } diff --git a/nvim/lua/plugins/grug-far.lua b/nvim/lua/plugins/grug-far.lua new file mode 100644 index 0000000..36953ac --- /dev/null +++ b/nvim/lua/plugins/grug-far.lua @@ -0,0 +1,22 @@ +return { + "MagicDuck/grug-far.nvim", + opts = { headerMaxWidth = 80 }, + cmd = "GrugFar", + keys = { + { + "sr", + function() + local grug = require("grug-far") + local ext = vim.bo.buftype == "" and vim.fn.expand("%:e") + grug.open({ + transient = true, + prefills = { + filesFilter = ext and ext ~= "" and "*." .. ext or nil, + }, + }) + end, + mode = { "n", "v" }, + desc = "Search and Replace", + }, + }, +} diff --git a/nvim/lua/plugins/init.lua b/nvim/lua/plugins/init.lua index 958f022..f239a2d 100644 --- a/nvim/lua/plugins/init.lua +++ b/nvim/lua/plugins/init.lua @@ -1,5 +1,4 @@ return { - { "danro/rename.vim", event = { "BufReadPost", "BufNewFile" } }, { "tpope/vim-endwise", event = { "BufReadPost", "BufNewFile" } }, { "tpope/vim-repeat", event = { "BufReadPost", "BufNewFile" } }, { "kosayoda/nvim-lightbulb", event = { "BufReadPost", "BufNewFile" } }, diff --git a/nvim/lua/plugins/lazydev.lua b/nvim/lua/plugins/lazydev.lua index 36f3a3f..7390358 100644 --- a/nvim/lua/plugins/lazydev.lua +++ b/nvim/lua/plugins/lazydev.lua @@ -7,6 +7,8 @@ return { -- See the configuration section for more details -- Load luvit types when the `vim.uv` word is found { path = "luvit-meta/library", words = { "vim%.uv" } }, + { path = "snacks.nvim", words = { "Snacks" } }, + { path = "lazy.nvim", words = { "LazyVim" } }, }, }, }, diff --git a/nvim/lua/plugins/mason.lua b/nvim/lua/plugins/mason.lua index eb8947e..166b242 100644 --- a/nvim/lua/plugins/mason.lua +++ b/nvim/lua/plugins/mason.lua @@ -27,6 +27,124 @@ return { "suketa/nvim-dap-ruby", { "rcarriga/nvim-dap-ui", dependencies = { "mfussenegger/nvim-dap", "nvim-neotest/nvim-nio" } }, }, + keys = { + { + "", + function() + require("dap").continue() + end, + desc = "Debug: Continue", + }, + { + "", + function() + require("dap").step_over() + end, + desc = "Debug: Step Over", + }, + { + "", + function() + require("dap").step_into() + end, + desc = "Debug: Step Into", + }, + { + "", + function() + require("dap").step_out() + end, + desc = "Debug: Step Out", + }, + { + "5", + function() + require("dap").continue() + end, + desc = "Debug: Continue", + }, + { + "0", + function() + require("dap").step_over() + end, + desc = "Debug: Step Over", + }, + { + "1", + function() + require("dap").step_into() + end, + desc = "Debug: Step Into", + }, + { + "2", + function() + require("dap").step_out() + end, + desc = "Debug: Step Out", + }, + { + "b", + function() + require("dap").toggle_breakpoint() + end, + desc = "Debug: Toggle Breakpoint", + }, + { + "B", + function() + require("dap").set_breakpoint() + end, + desc = "Debug: Set Breakpoint", + }, + { + "pr", + function() + require("dap").repl.open() + end, + desc = "Debug: Open REPL", + }, + { + "pl", + function() + require("dap").run_last() + end, + desc = "Debug: Run Last", + }, + { + "ph", + function() + require("dap.ui.widgets").hover() + end, + mode = { "n", "v" }, + desc = "Debug: Hover Widget", + }, + { + "pp", + function() + require("dap.ui.widgets").preview() + end, + mode = { "n", "v" }, + desc = "Debug: Preview Widget", + }, + { + "pf", + function() + local widgets = require("dap.ui.widgets") + widgets.centered_float(widgets.frames) + end, + desc = "Debug: Widget Frames", + }, + { + "ps", + function() + local widgets = require("dap.ui.widgets") + widgets.centered_float(widgets.scopes) + end, + desc = "Debug: Center Scopes", + }, + }, config = function() require("mason-nvim-dap").setup({ ensure_installed = { @@ -50,56 +168,6 @@ return { dap.listeners.before.event_exited.dapui_config = function() dapui.close() end - vim.keymap.set("n", "", function() - require("dap").continue() - end) - vim.keymap.set("n", "", function() - require("dap").step_over() - end) - vim.keymap.set("n", "", function() - require("dap").step_into() - end) - vim.keymap.set("n", "", function() - require("dap").step_out() - end) - vim.keymap.set("n", "5", function() - require("dap").continue() - end, { desc = "Continue" }) - vim.keymap.set("n", "0", function() - require("dap").step_over() - end, { desc = "Step over" }) - vim.keymap.set("n", "1", function() - require("dap").step_into() - end, { desc = "Step into" }) - vim.keymap.set("n", "2", function() - require("dap").step_out() - end, { desc = "Step out" }) - vim.keymap.set("n", "b", function() - require("dap").toggle_breakpoint() - end, { desc = "Toggle breakpoint" }) - vim.keymap.set("n", "B", function() - require("dap").set_breakpoint() - end, { desc = "Breakpoint" }) - vim.keymap.set("n", "pr", function() - require("dap").repl.open() - end, { desc = "Open REPL" }) - vim.keymap.set("n", "pl", function() - require("dap").run_last() - end, { desc = "Run last" }) - vim.keymap.set({ "n", "v" }, "ph", function() - require("dap.ui.widgets").hover() - end, { desc = "Hover widget" }) - vim.keymap.set({ "n", "v" }, "pp", function() - require("dap.ui.widgets").preview() - end, { desc = "Preview widget" }) - vim.keymap.set("n", "pf", function() - local widgets = require("dap.ui.widgets") - widgets.centered_float(widgets.frames) - end, { desc = "Widget frames" }) - vim.keymap.set("n", "ps", function() - local widgets = require("dap.ui.widgets") - widgets.centered_float(widgets.scopes) - end, { desc = "Centre scopes" }) end, }, }, diff --git a/nvim/lua/plugins/mini-ai.lua b/nvim/lua/plugins/mini-ai.lua new file mode 100644 index 0000000..f87724d --- /dev/null +++ b/nvim/lua/plugins/mini-ai.lua @@ -0,0 +1,22 @@ +return { + "echasnovski/mini.ai", + event = "VeryLazy", + opts = function() + local ai = require("mini.ai") + return { + n_lines = 500, + custom_textobjects = { + o = ai.gen_spec.treesitter({ + a = { "@block.outer", "@conditional.outer", "@loop.outer" }, + i = { "@block.inner", "@conditional.inner", "@loop.inner" }, + }, {}), + f = ai.gen_spec.treesitter({ a = "@function.outer", i = "@function.inner" }, {}), + c = ai.gen_spec.treesitter({ a = "@class.outer", i = "@class.inner" }, {}), + t = { "<([%p%w]-)%f[^<%w][^<>]->.-", "^<.->().*()$" }, + }, + } + end, + config = function(_, opts) + require("mini.ai").setup(opts) + end, +} diff --git a/nvim/lua/plugins/neo-tree.lua b/nvim/lua/plugins/neo-tree.lua index 1f3e274..b9be784 100644 --- a/nvim/lua/plugins/neo-tree.lua +++ b/nvim/lua/plugins/neo-tree.lua @@ -6,6 +6,11 @@ return { "MunifTanjim/nui.nvim", }, event = "VeryLazy", + keys = { + { "tg", ":Neotree toggle", desc = "Toggle Neo-tree" }, + { "tF", ":Neotree filesystem reveal left", desc = "Reveal File in Neo-tree" }, + { "tb", ":Neotree buffers reveal float", desc = "Neo-tree Buffers" }, + }, config = function() require("neo-tree").setup({ default_component_configs = { @@ -63,8 +68,5 @@ return { "document_symbols", }, }) - vim.keymap.set("n", "tg", ":Neotree toggle", {}) - vim.keymap.set("n", "tF", ":Neotree filesystem reveal left", {}) - vim.keymap.set("n", "tb", ":Neotree buffers reveal float", {}) end, } diff --git a/nvim/lua/plugins/neogit.lua b/nvim/lua/plugins/neogit.lua index f193e39..5b04225 100644 --- a/nvim/lua/plugins/neogit.lua +++ b/nvim/lua/plugins/neogit.lua @@ -7,5 +7,7 @@ return { "sindrets/diffview.nvim", -- optional }, config = true, - vim.keymap.set("n", "gc", ":Neogit commit", { noremap = true, silent = true }), + keys = { + { "gc", ":Neogit commit", desc = "Neogit commit" }, + }, } diff --git a/nvim/lua/plugins/noice.lua b/nvim/lua/plugins/noice.lua index 3c2f844..8b782f4 100644 --- a/nvim/lua/plugins/noice.lua +++ b/nvim/lua/plugins/noice.lua @@ -58,9 +58,5 @@ return { dependencies = { -- if you lazy-load any plugin below, make sure to add proper `module="..."` entries "MunifTanjim/nui.nvim", - -- OPTIONAL: - -- `nvim-notify` is only needed, if you want to use the notification view. - -- If not available, we use `mini` as the fallback - "rcarriga/nvim-notify", }, } diff --git a/nvim/lua/plugins/nvim-lint.lua b/nvim/lua/plugins/nvim-lint.lua index ceffaed..919d1e3 100644 --- a/nvim/lua/plugins/nvim-lint.lua +++ b/nvim/lua/plugins/nvim-lint.lua @@ -32,9 +32,14 @@ return { lint.try_lint() end, }) - - vim.keymap.set("n", "l", function() - lint.try_lint() - end, { desc = "Trigger linting for current file" }) end, + keys = { + { + "l", + function() + require("lint").try_lint() + end, + desc = "Trigger linting for current file", + }, + }, } diff --git a/nvim/lua/plugins/nvim-notify.lua b/nvim/lua/plugins/nvim-notify.lua deleted file mode 100644 index 14de58e..0000000 --- a/nvim/lua/plugins/nvim-notify.lua +++ /dev/null @@ -1,11 +0,0 @@ -return { - "rcarriga/nvim-notify", - event = "VeryLazy", - config = function() - require("notify").setup({ - stages = "fade_in_slide_out", - timeout = 2000, - }) - vim.notify = require("notify") - end, -} diff --git a/nvim/lua/plugins/nvim-spectre.lua b/nvim/lua/plugins/nvim-spectre.lua deleted file mode 100644 index 5bcf5b3..0000000 --- a/nvim/lua/plugins/nvim-spectre.lua +++ /dev/null @@ -1,28 +0,0 @@ -return { - "nvim-pack/nvim-spectre", - cmd = "Spectre", - event = "VeryLazy", - keys = { - { - "St", - function() - require("spectre").toggle() - end, - desc = "Replace in files (Spectre)", - }, - { - "Sw", - function() - require("spectre").open_visual({ select_word = true }) - end, - desc = "Search current word", - }, - { - "Sf", - function() - require("spectre").open_file_search({ select_word = true }) - end, - desc = "Search current file", - }, - }, -} diff --git a/nvim/lua/plugins/rename-inc.lua b/nvim/lua/plugins/rename-inc.lua index 3b5783d..2f3b462 100644 --- a/nvim/lua/plugins/rename-inc.lua +++ b/nvim/lua/plugins/rename-inc.lua @@ -1,8 +1,10 @@ return { "smjonas/inc-rename.nvim", event = "VeryLazy", + keys = { + { "P", ":IncRename ", desc = "Incremental Rename" }, + }, config = function() require("inc_rename").setup() - vim.keymap.set("n", "P", ":IncRename ") end, } diff --git a/nvim/lua/plugins/snacks.lua b/nvim/lua/plugins/snacks.lua index 1189397..999184f 100644 --- a/nvim/lua/plugins/snacks.lua +++ b/nvim/lua/plugins/snacks.lua @@ -12,8 +12,93 @@ return { notifier = { enabled = true }, quickfile = { enabled = true }, scroll = { enabled = true }, + dashboard = { + enabled = true, + sections = { + { + text = [[ + (q\_/p) +.-. |. .| (\ + \ =\,/= (\_\_^__o + )/ _ \ ___ `-'/ `_/ + (/\):(/\ '`--\________/ | + \_ _/ ' / | + `""^""` ` . ' `-`/.----------'\^-' +]], + hl = "header", + padding = 1, + }, + { section = "keys", gap = 0, padding = 1 }, + { + text = " v" .. vim.version().major .. "." .. vim.version().minor .. "." .. vim.version().patch, + hl = "SnacksDashboardFooter", + align = "center", + }, + { + text = "󰌢 " .. vim.env.USER .. "@" .. vim.fn.hostname(), + hl = "SnacksDashboardFooter", + align = "center", + }, + { section = "startup" }, + }, + preset = { + keys = { + { + icon = " ", + key = "f", + desc = "Find file", + action = function() + require("fzf-lua").frecency({ cwd_only = true }) + end, + }, + { + icon = " ", + key = "r", + desc = "Recent files", + action = function() + require("fzf-lua").frecency() + end, + }, + { icon = " ", key = "R", desc = "Restore session", action = ":so Session.vim" }, + { + icon = " ", + key = "g", + desc = "Find text", + action = function() + require("fzf-lua").live_grep() + end, + }, + { + icon = " ", + key = "G", + desc = "Git Status", + action = function() + require("fzf-lua").git_status() + end, + }, + { icon = " ", key = "t", desc = "Open file tree", action = ":Neotree" }, + { icon = "󰒲 ", key = "l", desc = "Lazy", action = ":Lazy" }, + { + icon = " ", + key = "d", + desc = "Git Graph", + action = function() + require("gitgraph").draw({}, { all = true, max_count = 5000 }) + end, + }, + { icon = " ", key = "q", desc = "Quit", action = ":qa" }, + }, + }, + }, }, keys = { + { + "aA", + function() + require("snacks").dashboard() + end, + desc = "Snacks Dashboard", + }, { "fn", function() diff --git a/nvim/lua/plugins/todo-comments.lua b/nvim/lua/plugins/todo-comments.lua new file mode 100644 index 0000000..43d4749 --- /dev/null +++ b/nvim/lua/plugins/todo-comments.lua @@ -0,0 +1,27 @@ +return { + "folke/todo-comments.nvim", + dependencies = { "nvim-lua/plenary.nvim" }, + event = { "BufReadPost", "BufNewFile" }, + opts = {}, + keys = { + { + "]t", + function() + require("todo-comments").jump_next() + end, + desc = "Next Todo Comment", + }, + { + "[t", + function() + require("todo-comments").jump_prev() + end, + desc = "Previous Todo Comment", + }, + { + "ft", + ":TodoFzf", + desc = "Todo (FZF)", + }, + }, +} diff --git a/nvim/lua/plugins/vim-obsession.lua b/nvim/lua/plugins/vim-obsession.lua index c5521d3..63504bd 100644 --- a/nvim/lua/plugins/vim-obsession.lua +++ b/nvim/lua/plugins/vim-obsession.lua @@ -1,8 +1,10 @@ return { "tpope/vim-obsession", + keys = { + { "ss", ":Obsession", desc = "Start/Stop Session" }, + { "sr", ":so Session.vim", desc = "Restore Session" }, + }, config = function() vim.sessions_dir = "~/.config/vim-sessions" - vim.keymap.set("n", "ss", ":Obsession") - vim.keymap.set("n", "sr", ":so Session.vim") end, } diff --git a/nvim/lua/plugins/vim-tmux-navigator.lua b/nvim/lua/plugins/vim-tmux-navigator.lua index 3460913..65d5f68 100644 --- a/nvim/lua/plugins/vim-tmux-navigator.lua +++ b/nvim/lua/plugins/vim-tmux-navigator.lua @@ -1,8 +1,10 @@ return { "christoomey/vim-tmux-navigator", event = "VeryLazy", - vim.keymap.set("n", "C-h", ":TmuxNavigateLeft"), - vim.keymap.set("n", "C-j", ":TmuxNavigateDown"), - vim.keymap.set("n", "C-k", ":TmuxNavigateUp"), - vim.keymap.set("n", "C-l", ":TmuxNavigateRight"), + keys = { + { "", ":TmuxNavigateLeft", desc = "Window Left" }, + { "", ":TmuxNavigateDown", desc = "Window Down" }, + { "", ":TmuxNavigateUp", desc = "Window Up" }, + { "", ":TmuxNavigateRight", desc = "Window Right" }, + }, } diff --git a/nvim/lua/plugins/vimtest.lua b/nvim/lua/plugins/vimtest.lua index ec796a6..e0c1fc1 100644 --- a/nvim/lua/plugins/vimtest.lua +++ b/nvim/lua/plugins/vimtest.lua @@ -4,10 +4,14 @@ return { dependencies = { "preservim/vimux", }, - vim.keymap.set("n", "tn", ":TestNearest"), - vim.keymap.set("n", "tf", ":TestFile"), - vim.keymap.set("n", "ts", ":TestSuite"), - vim.keymap.set("n", "tl", ":TestLast"), - vim.keymap.set("n", "tv", ":TestVisit"), - vim.cmd("let test#strategy = 'vimux'"), + keys = { + { "tn", ":TestNearest", desc = "Test Nearest" }, + { "tf", ":TestFile", desc = "Test File" }, + { "ts", ":TestSuite", desc = "Test Suite" }, + { "tl", ":TestLast", desc = "Test Last" }, + { "tv", ":TestVisit", desc = "Test Visit" }, + }, + config = function() + vim.cmd("let test#strategy = 'vimux'") + end, } diff --git a/nvim/lua/plugins/which-key.lua b/nvim/lua/plugins/which-key.lua index a84bcf1..2e1959d 100644 --- a/nvim/lua/plugins/which-key.lua +++ b/nvim/lua/plugins/which-key.lua @@ -22,12 +22,12 @@ return { { "i", desc = "Show implementation", icon = "󰈇" }, { "r", desc = "Show references", icon = "󰈇" }, { "P", hidden = true }, - { "S", desc = "Search & Replace" }, + { "S", desc = "Search & Replace (Flash)" }, { "_", group = "Comments" }, { "w", desc = "Save", icon = "" }, { "q", desc = "Quit" }, { "a", desc = "Dashboard & Outline", icon = "󱥈" }, - { "aA", desc = "Alpha Dashboard", icon = "󱥈" }, + { "aA", desc = "Dashboard", icon = "󱥈" }, { "c", group = "Copilot & Path", icon = " " }, { "cc", desc = "Copilot Chat", icon = "" }, { "cf", desc = "Copy full path", icon = "" }, @@ -42,6 +42,7 @@ return { { "fg", desc = "Search (grep)" }, { "fh", desc = "Help", icon = "󰋖" }, { "fm", group = "Format" }, + { "ft", desc = "Todo Comments" }, { "fz", group = "fzf" }, { "fzl", group = "LSP" }, { "fmt", desc = "Format [LSP]" },