]> git.rmz.io Git - dotfiles.git/commitdiff
lazyvim: absorb Snacks utils
authorSamir Benmendil <me@rmz.io>
Sun, 9 Feb 2025 14:08:34 +0000 (14:08 +0000)
committerSamir Benmendil <me@rmz.io>
Sun, 2 Mar 2025 15:44:14 +0000 (15:44 +0000)
* bigfile
* quickfile
* scratch
* terminal

nvim/lua/plugins/snacks.lua

index ae02a9bcb6395967e32daa18a3a4047964bf8a24..af027adcdc0ac256f9bb0b0ac8fdfe48690c8af4 100644 (file)
@@ -1,14 +1,35 @@
+-- Terminal Mappings
+local function term_nav(dir)
+  ---@param self snacks.terminal
+  return function(self)
+    return self:is_floating() and "<c-" .. dir .. ">" or vim.schedule(function()
+      vim.cmd.wincmd(dir)
+    end)
+  end
+end
+
 return {
   { "folke/snacks.nvim",
-    opts = {},
-    config = function(_, opts)
-      local notify = vim.notify
-      require("snacks").setup(opts)
-      -- HACK: restore vim.notify after snacks setup and let noice.nvim take over
-      -- this is needed to have early notifications show up in noice history
-      if LazyVim.has("noice.nvim") then
-        vim.notify = notify
-      end
-    end,
+    -- stylua: ignore
+    keys = {
+      -- Snacks Scratch
+      { "<leader>.",  function() Snacks.scratch() end, desc = "Toggle Scratch Buffer" },
+      { "<leader>S",  function() Snacks.scratch.select() end, desc = "Select Scratch Buffer" },
+      { "<leader>dps", function() Snacks.profiler.scratch() end, desc = "Profiler Scratch Buffer" },
+    },
+    opts = {
+      bigfile = { enabled = true },
+      quickfile = { enabled = true },
+      terminal = {
+        win = {
+          keys = {
+            nav_h = { "<C-h>", term_nav("h"), desc = "Go to Left Window", expr = true, mode = "t" },
+            nav_j = { "<C-j>", term_nav("j"), desc = "Go to Lower Window", expr = true, mode = "t" },
+            nav_k = { "<C-k>", term_nav("k"), desc = "Go to Upper Window", expr = true, mode = "t" },
+            nav_l = { "<C-l>", term_nav("l"), desc = "Go to Right Window", expr = true, mode = "t" },
+          },
+        },
+      },
+    },
   }
 }