diff --git a/nvim/.config/nvim/lazy-lock.json b/nvim/.config/nvim/lazy-lock.json index 2824f1f..f3a8ba7 100644 --- a/nvim/.config/nvim/lazy-lock.json +++ b/nvim/.config/nvim/lazy-lock.json @@ -39,21 +39,19 @@ "nordic.nvim": { "branch": "main", "commit": "6afe957722fb1b0ec7ca5fbea5a651bcca55f3e1" }, "nvim-cmp": { "branch": "main", "commit": "b5311ab3ed9c846b585c0c15b7559be131ec4be9" }, "nvim-lspconfig": { "branch": "master", "commit": "3ea99227e316c5028f57a4d86a1a7fd01dd876d0" }, - "nvim-paredit": { "branch": "master", "commit": "f3222eebe274679695e6c27dc1b100df6cbe197c" }, "nvim-surround": { "branch": "main", "commit": "8dd9150ca7eae5683660ea20cec86edcd5ca4046" }, "nvim-treesitter": { "branch": "master", "commit": "42fc28ba918343ebfd5565147a42a26580579482" }, "nvim-treesitter-textobjects": { "branch": "master", "commit": "0f051e9813a36481f48ca1f833897210dbcfffde" }, "nvim-web-devicons": { "branch": "master", "commit": "1fb58cca9aebbc4fd32b086cb413548ce132c127" }, - "nvlime": { "branch": "master", "commit": "334054704a8edeed1783be684dc672bdc1505897" }, "oil.nvim": { "branch": "master", "commit": "5b6068aad7d2057dd399fac73b7fb2cdf23ccd6e" }, "onenord.nvim": { "branch": "main", "commit": "dbf4c848929c473ec548a080fc32cb85aa2af706" }, "orgmode": { "branch": "master", "commit": "32ef9e95f43a6e951fb931b438372546a4f0c524" }, - "parsley": { "branch": "main", "commit": "c4100aa449bfa971dcfc56ffe4206ba034db08cc" }, "persisted.nvim": { "branch": "main", "commit": "d35a3ed973e17defd8800acd46a0c893498a2671" }, "plenary.nvim": { "branch": "master", "commit": "857c5ac632080dba10aae49dba902ce3abf91b35" }, "quicker.nvim": { "branch": "master", "commit": "51d3926f183c2d98fbc237cc237ae0926839af3a" }, "rest.nvim": { "branch": "main", "commit": "2ded89dbda1fd3c1430685ffadf2df8beb28336d" }, "slimline.nvim": { "branch": "main", "commit": "10dd807685997d1b72b950dfb4ec1a01cb259101" }, + "snacks.nvim": { "branch": "main", "commit": "bc0630e43be5699bb94dadc302c0d21615421d93" }, "sqlite.lua": { "branch": "master", "commit": "50092d60feb242602d7578398c6eb53b4a8ffe7b" }, "tardis.nvim": { "branch": "main", "commit": "a6ee00a217529490e79d349b1f1a9cf5831180d3" }, "telescope-fzf-native.nvim": { "branch": "main", "commit": "1f08ed60cafc8f6168b72b80be2b2ea149813e55" }, @@ -77,6 +75,5 @@ "vim-sleuth": { "branch": "master", "commit": "be69bff86754b1aa5adcbb527d7fcd1635a84080" }, "whaler": { "branch": "main", "commit": "b3a4257f6225a9a6c42f33b56ca316325e395f22" }, "which-key.nvim": { "branch": "main", "commit": "370ec46f710e058c9c1646273e6b225acf47cbed" }, - "yankbank-nvim": { "branch": "main", "commit": "ded8f01bd6a7887310e14d463c8aa55eb79ec281" }, - "zen-mode.nvim": { "branch": "main", "commit": "863f150ca321b3dd8aa1a2b69b5f411a220e144f" } + "yankbank-nvim": { "branch": "main", "commit": "ded8f01bd6a7887310e14d463c8aa55eb79ec281" } } diff --git a/nvim/.config/nvim/lua/lupan/remap.lua b/nvim/.config/nvim/lua/lupan/remap.lua index 53f5a07..d582887 100644 --- a/nvim/.config/nvim/lua/lupan/remap.lua +++ b/nvim/.config/nvim/lua/lupan/remap.lua @@ -51,7 +51,7 @@ key('n', 'P', 'bp', { desc = '[P]revious buffer' }) key('n', 'tc', 'tabnew', { desc = '[T]ab [c]reate' }) key('n', 'tx', 'tabclose', { desc = '[T]ab close' }) -key('n', 'ts', 'tab split', { desc = '[T]ab [s]plit' }) +key('n', 'tS', 'tab split', { desc = '[T]ab [s]plit' }) key('n', 'tn', 'tabnext', { desc = '[T]ab [n]ext' }) key('n', 'tp', 'tabprevious', { desc = '[T]ab [p]revious' }) key('n', 'tf', 'tabfirst', { desc = '[T]ab [f]irst' }) @@ -83,7 +83,6 @@ key('n', 'j', 'cn', { desc = "Quickfix next" }) key('n', 'k', 'cp', { desc = "Quickfix previous" }) key('n', 'co', 'copen', { desc = "Quickfix [O]pen" }) key('n', 'cc', 'cclose', { desc = "Quickfix [C]lose" }) -key('n', 'ct', 'TroubleToggle', { desc = "Toggle [T]rouble" }) key('n', 's;', 'SessionSelect', { desc = '[S]ession Select' }) diff --git a/nvim/.config/nvim/lua/plugins/convenience.lua b/nvim/.config/nvim/lua/plugins/convenience.lua index 4415191..cd475b6 100644 --- a/nvim/.config/nvim/lua/plugins/convenience.lua +++ b/nvim/.config/nvim/lua/plugins/convenience.lua @@ -20,26 +20,4 @@ return { } end, }, - { - "folke/zen-mode.nvim", - opts = { - window = { width = 180 }, - plugins = { - tmux = { enabled = true }, - }, - on_open = function() - vim.opt.laststatus = 1 - require('incline').disable() - vim.system({ 'hyprctl', 'dispatch', 'fullscreen' }) - vim.system({ 'awesome-client', 'client.focus.fullscreen = true' }) - end, - on_close = function() - vim.opt.laststatus = 3 - require('incline').enable() - vim.system({ 'hyprctl', 'dispatch', 'fullscreen' }) - vim.system({ 'awesome-client', 'client.focus.fullscreen = false' }) - end - }, - keys = { { "z", "ZenMode" } }, - }, } diff --git a/nvim/.config/nvim/lua/plugins/git.lua b/nvim/.config/nvim/lua/plugins/git.lua index 0693db2..634f0dc 100644 --- a/nvim/.config/nvim/lua/plugins/git.lua +++ b/nvim/.config/nvim/lua/plugins/git.lua @@ -64,8 +64,8 @@ return { { buffer = bufnr, desc = '[G]o to [N]ext Hunk' }) vim.keymap.set('n', 'ph', gs.preview_hunk, { buffer = bufnr, desc = '[P]review [H]unk' }) - vim.keymap.set('n', 'sh', gs.stage_hunk, - { buffer = bufnr, desc = '[S]tage [H]unk' }) + vim.keymap.set('n', 'sA', gs.stage_hunk, + { buffer = bufnr, desc = '[S]tage Hunk' }) vim.keymap.set('n', 'HD', function() gs.diffthis('~') end, { buffer = bufnr, desc = '[H]unk [D]iff' }) end, diff --git a/nvim/.config/nvim/lua/plugins/global-note.lua b/nvim/.config/nvim/lua/plugins/global-note.lua index 137cc24..f23b770 100644 --- a/nvim/.config/nvim/lua/plugins/global-note.lua +++ b/nvim/.config/nvim/lua/plugins/global-note.lua @@ -2,11 +2,11 @@ return { 'backdround/global-note.nvim', keys = { { - "n", + "tn", function() require('global-note').toggle_note() end, - desc = 'Toggle global [N]ote', + desc = '[T]oggle global [N]ote', }, }, } diff --git a/nvim/.config/nvim/lua/plugins/lisp.lua b/nvim/.config/nvim/lua/plugins/lisp.lua deleted file mode 100644 index 88a6d74..0000000 --- a/nvim/.config/nvim/lua/plugins/lisp.lua +++ /dev/null @@ -1,22 +0,0 @@ -return { - { - 'monkoose/nvlime', - ft = { 'lisp' }, - lazy = false, - dependencies = { - 'monkoose/parsley', - 'hrsh7th/nvim-cmp', - }, - init = function() - vim.g.nvlime_config = { - cmp = { enabled = true }, - } - end, - }, - { - "julienvincent/nvim-paredit", - config = function() - require("nvim-paredit").setup() - end - }, -} diff --git a/nvim/.config/nvim/lua/plugins/persisted.lua b/nvim/.config/nvim/lua/plugins/persisted.lua index 1466203..e8771c7 100644 --- a/nvim/.config/nvim/lua/plugins/persisted.lua +++ b/nvim/.config/nvim/lua/plugins/persisted.lua @@ -12,6 +12,6 @@ return { }, }, keys = { - { "sp", ":Telescope persisted", desc = "Search [P]ersisted" }, + { "sP", ":Telescope persisted", desc = "Search [P]ersisted" }, }, } diff --git a/nvim/.config/nvim/lua/plugins/snacks.lua b/nvim/.config/nvim/lua/plugins/snacks.lua new file mode 100644 index 0000000..29dbdcb --- /dev/null +++ b/nvim/.config/nvim/lua/plugins/snacks.lua @@ -0,0 +1,170 @@ +return { + { + "folke/snacks.nvim", + priority = 1000, + lazy = false, + ---@type snacks.Config + opts = { + bigfile = { enabled = true }, + dashboard = { enabled = false }, + explorer = { enabled = true }, + indent = { enabled = true }, + input = { enabled = true }, + notifier = { + enabled = true, + timeout = 3000, + }, + picker = { enabled = true }, + quickfile = { enabled = true }, + scope = { enabled = true }, + scroll = { enabled = false }, + statuscolumn = { enabled = true }, + words = { enabled = true }, + styles = { + notification = { + -- wo = { wrap = true } -- Wrap notifications + } + }, + zen = { + win = { width = 180, backdrop = { transparent = false } }, + on_open = function() + vim.opt.laststatus = 1 + require('incline').disable() + vim.system({ 'hyprctl', 'dispatch', 'fullscreen' }) + vim.system({ 'awesome-client', 'client.focus.fullscreen = true' }) + end, + on_close = function() + vim.opt.laststatus = 3 + require('incline').enable() + vim.system({ 'hyprctl', 'dispatch', 'fullscreen' }) + vim.system({ 'awesome-client', 'client.focus.fullscreen = false' }) + end + } + }, + keys = { + -- Top Pickr & Explorer + { "", function() Snacks.picker.smart() end, desc = "Smart Find Files" }, + { ",", function() Snacks.picker.buffers() end, desc = "Buffers" }, + { "/", function() Snacks.picker.grep() end, desc = "Grep" }, + { ":", function() Snacks.picker.command_history() end, desc = "Command History" }, + { "n", function() Snacks.picker.notifications() end, desc = "Notification History" }, + { "e", function() Snacks.explorer() end, desc = "File Explorer" }, + -- find + { "fb", function() Snacks.picker.buffers() end, desc = "Buffers" }, + { "fc", function() Snacks.picker.files({ cwd = vim.fn.stdpath("config") }) end, desc = "Find Config File" }, + { "ff", function() Snacks.picker.files() end, desc = "Find Files" }, + { "fg", function() Snacks.picker.git_files() end, desc = "Find Git Files" }, + { "fp", function() Snacks.picker.projects() end, desc = "Projects" }, + { "fr", function() Snacks.picker.recent() end, desc = "Recent" }, + -- git + { "gb", function() Snacks.picker.git_branches() end, desc = "Git Branches" }, + { "gl", function() Snacks.picker.git_log() end, desc = "Git Log" }, + { "gL", function() Snacks.picker.git_log_line() end, desc = "Git Log Line" }, + { "gs", function() Snacks.picker.git_status() end, desc = "Git Status" }, + { "gS", function() Snacks.picker.git_stash() end, desc = "Git Stash" }, + { "gd", function() Snacks.picker.git_diff() end, desc = "Git Diff (Hunks)" }, + { "gf", function() Snacks.picker.git_log_file() end, desc = "Git Log File" }, + { "gg", function() Snacks.picker.git_grep() end, desc = "Git Grep" }, + -- Grep + { "sb", function() Snacks.picker.lines() end, desc = "Buffer Lines" }, + { "sB", function() Snacks.picker.grep_buffers() end, desc = "Grep Open Buffers" }, + { "sg", function() Snacks.picker.grep() end, desc = "Grep" }, + { "sw", function() Snacks.picker.grep_word() end, desc = "Visual selection or word", mode = { "n", "x" } }, + { "so", function() Snacks.picker.grep({ cwd = "/usr/lib/odin" }) end, desc = "Grep" }, + { "sO", function() Snacks.picker.files({ cwd = "/usr/lib/odin" }) end, desc = "Grep" }, + { "sX", function() Snacks.picker.grep({ cwd = "/usr/include/xcb" }) end, desc = "Grep" }, + -- search + { 's"', function() Snacks.picker.registers() end, desc = "Registers" }, + { 's/', function() Snacks.picker.search_history() end, desc = "Search History" }, + { "sa", function() Snacks.picker.autocmds() end, desc = "Autocmds" }, + { "sb", function() Snacks.picker.lines() end, desc = "Buffer Lines" }, + { "sc", function() Snacks.picker.command_history() end, desc = "Command History" }, + { "sC", function() Snacks.picker.commands() end, desc = "Commands" }, + { "sd", function() Snacks.picker.diagnostics() end, desc = "Diagnostics" }, + { "sD", function() Snacks.picker.diagnostics_buffer() end, desc = "Buffer Diagnostics" }, + { "sh", function() Snacks.picker.help() end, desc = "Help Pages" }, + { "sH", function() Snacks.picker.highlights() end, desc = "Highlights" }, + { "si", function() Snacks.picker.icons() end, desc = "Icons" }, + { "sj", function() Snacks.picker.jumps() end, desc = "Jumps" }, + { "sk", function() Snacks.picker.keymaps() end, desc = "Keymaps" }, + { "sl", function() Snacks.picker.loclist() end, desc = "Location List" }, + { "sm", function() Snacks.picker.marks() end, desc = "Marks" }, + { "sM", function() Snacks.picker.man() end, desc = "Man Pages" }, + { "sp", function() Snacks.picker.lazy() end, desc = "Search for Plugin Spec" }, + { "sq", function() Snacks.picker.qflist() end, desc = "Quickfix List" }, + { "sR", function() Snacks.picker.resume() end, desc = "Resume" }, + { "su", function() Snacks.picker.undo() end, desc = "Undo History" }, + { "uC", function() Snacks.picker.colorschemes() end, desc = "Colorschemes" }, + -- LSP + { "gd", function() Snacks.picker.lsp_definitions() end, desc = "Goto Definition" }, + { "gD", function() Snacks.picker.lsp_declarations() end, desc = "Goto Declaration" }, + { "gr", function() Snacks.picker.lsp_references() end, nowait = true, desc = "References" }, + { "gI", function() Snacks.picker.lsp_implementations() end, desc = "Goto Implementation" }, + { "gy", function() Snacks.picker.lsp_type_definitions() end, desc = "Goto T[y]pe Definition" }, + { "ss", function() Snacks.picker.lsp_symbols() end, desc = "LSP Symbols" }, + { "sS", function() Snacks.picker.lsp_workspace_symbols() end, desc = "LSP Workspace Symbols" }, + -- Other + { "z", function() Snacks.zen() end, desc = "Toggle Zen Mode" }, + { "Z", function() Snacks.zen.zoom() end, desc = "Toggle Zoom" }, + { "'", function() Snacks.scratch() end, desc = "Toggle Scratch Buffer" }, + { "S", function() Snacks.scratch.select() end, desc = "Select Scratch Buffer" }, + { "n", function() Snacks.notifier.show_history() end, desc = "Notification History" }, + { "bd", function() Snacks.bufdelete() end, desc = "Delete Buffer" }, + { "cR", function() Snacks.rename.rename_file() end, desc = "Rename File" }, + { "gB", function() Snacks.gitbrowse() end, desc = "Git Browse", mode = { "n", "v" } }, + { "gG", function() Snacks.lazygit() end, desc = "Lazygit" }, + { "un", function() Snacks.notifier.hide() end, desc = "Dismiss All Notifications" }, + { "", function() Snacks.terminal() end, desc = "Toggle Terminal" }, + { "", function() Snacks.terminal() end, desc = "which_key_ignore" }, + { "]]", function() Snacks.words.jump(vim.v.count1) end, desc = "Next Reference", mode = { "n", "t" } }, + { "[[", function() Snacks.words.jump(-vim.v.count1) end, desc = "Prev Reference", mode = { "n", "t" } }, + { + "N", + desc = "Neovim News", + function() + Snacks.win({ + file = vim.api.nvim_get_runtime_file("doc/news.txt", false)[1], + width = 0.6, + height = 0.6, + wo = { + spell = false, + wrap = false, + signcolumn = "yes", + statuscolumn = " ", + conceallevel = 3, + }, + }) + end, + } + }, + init = function() + vim.api.nvim_create_autocmd("User", { + pattern = "VeryLazy", + callback = function() + -- Setup some globals for debugging (lazy-loaded) + _G.dd = function(...) + Snacks.debug.inspect(...) + end + _G.bt = function() + Snacks.debug.backtrace() + end + vim.print = _G.dd -- Override print to use snacks for `:=` command + + -- Create some toggle mappings + Snacks.toggle.option("spell", { name = "Spelling" }):map("us") + Snacks.toggle.option("wrap", { name = "Wrap" }):map("uw") + Snacks.toggle.option("relativenumber", { name = "Relative Number" }):map("uL") + Snacks.toggle.diagnostics():map("ud") + Snacks.toggle.line_number():map("ul") + Snacks.toggle.option("conceallevel", { off = 0, on = vim.o.conceallevel > 0 and vim.o.conceallevel or 2 }):map( + "uc") + Snacks.toggle.treesitter():map("uT") + Snacks.toggle.option("background", { off = "light", on = "dark", name = "Dark Background" }):map("ub") + Snacks.toggle.inlay_hints():map("uh") + Snacks.toggle.indent():map("ug") + Snacks.toggle.dim():map("uD") + end, + }) + end, + } +} diff --git a/nvim/.config/nvim/lua/plugins/telescope.lua b/nvim/.config/nvim/lua/plugins/telescope.lua index df0e196..c2bb09a 100644 --- a/nvim/.config/nvim/lua/plugins/telescope.lua +++ b/nvim/.config/nvim/lua/plugins/telescope.lua @@ -58,44 +58,16 @@ return { -- See `:help telescope.builtin` local builtin = require 'telescope.builtin' - vim.keymap.set('n', 'sh', builtin.help_tags, { desc = '[S]earch [H]elp' }) - vim.keymap.set('n', 'sk', builtin.keymaps, { desc = '[S]earch [K]eymaps' }) vim.keymap.set('n', 'sf', builtin.find_files, { desc = '[S]earch [F]iles' }) - vim.keymap.set('n', 'ss', builtin.builtin, { desc = '[S]earch [S]elect Telescope' }) - vim.keymap.set('n', 'sw', builtin.grep_string, { desc = '[S]earch current [W]ord' }) - vim.keymap.set('n', 'sg', builtin.live_grep, { desc = '[S]earch by [G]rep' }) - vim.keymap.set('n', 'sd', builtin.diagnostics, { desc = '[S]earch [D]iagnostics' }) + vim.keymap.set('n', 'sT', builtin.builtin, { desc = '[S]earch [S]elect Telescope' }) + vim.keymap.set('n', 'sW', builtin.grep_string, { desc = '[S]earch current [W]ord' }) vim.keymap.set('n', 'sr', builtin.resume, { desc = '[S]earch [R]esume' }) + vim.keymap.set('n', 's.', builtin.oldfiles, { desc = '[S]earch Recent Files ("." for repeat)' }) - vim.keymap.set('n', '', builtin.buffers, { desc = '[ ] Find existing buffers' }) - vim.keymap.set('n', 'sF', function() builtin.find_files { hidden = true } end, - { desc = '[S]earch [F]iles (with hidden)' }) - vim.keymap.set('n', 'sl', function() telescope.extensions.whaler.whaler() end, + vim.keymap.set('n', 'sL', function() telescope.extensions.whaler.whaler() end, { desc = '[S]earch with wha[L]er' }) - vim.keymap.set('n', 'gf', builtin.git_files, { desc = '[G]it [F]iles' }) - vim.keymap.set('n', 'gs', builtin.git_status, { desc = '[G]it [S]tatus' }) - vim.keymap.set('n', 'gg', function() telescope.extensions.git_grep.live_grep() end, - { desc = '[G]it [g]rep' }) vim.keymap.set('n', 'gw', function() telescope.extensions.git_grep.grep() end, { desc = '[G]it grep current [W]ord' }) - - vim.keymap.set('n', '/', function() - builtin.current_buffer_fuzzy_find(require('telescope.themes').get_dropdown { - winblend = 10, - previewer = false, - }) - end, { desc = '[/] Fuzzily search in current buffer' }) - - vim.keymap.set('n', 's/', function() - builtin.live_grep { - grep_open_files = true, - prompt_title = 'Live Grep in Open Files', - } - end, { desc = '[S]earch [/] in Open Files' }) - - vim.keymap.set('n', 'sn', function() - builtin.find_files { cwd = vim.fn.stdpath 'config' } - end, { desc = '[S]earch [N]eovim files' }) end, }