summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid T. Sadler <davidtsadler@googlemail.com>2026-02-10 23:11:20 +0000
committerDavid T. Sadler <davidtsadler@googlemail.com>2026-02-10 23:24:01 +0000
commitab78c4274a485398ea7dc61cdd11ba90e215fbd7 (patch)
tree86f6a0455f7b90f934f8fa2f27d351272426caf1
parent61bf44150c5dbf610d71276ec5a189334917ff70 (diff)
Add snacks.nvim
-rw-r--r--nvim/.config/nvim/lsp/lua_ls.lua1
-rw-r--r--nvim/.config/nvim/lua/config/keymaps.lua20
-rw-r--r--nvim/.config/nvim/lua/plugins/init.lua1
-rw-r--r--nvim/.config/nvim/lua/plugins/snacks-nvim.lua7
-rw-r--r--nvim/.config/nvim/nvim-pack-lock.json4
5 files changed, 33 insertions, 0 deletions
diff --git a/nvim/.config/nvim/lsp/lua_ls.lua b/nvim/.config/nvim/lsp/lua_ls.lua
index b93bbad..8975a49 100644
--- a/nvim/.config/nvim/lsp/lua_ls.lua
+++ b/nvim/.config/nvim/lsp/lua_ls.lua
@@ -29,6 +29,7 @@ return {
checkThirdParty = false,
library = {
vim.env.VIMRUNTIME,
+ vim.fn.expand("$HOME/.local/share/nvim/site/pack/core/opt/snacks.nvim/lua"),
},
},
},
diff --git a/nvim/.config/nvim/lua/config/keymaps.lua b/nvim/.config/nvim/lua/config/keymaps.lua
index 8e7dc0a..f3942cb 100644
--- a/nvim/.config/nvim/lua/config/keymaps.lua
+++ b/nvim/.config/nvim/lua/config/keymaps.lua
@@ -30,6 +30,9 @@ set('n', '[b', '<cmd>bprevious<cr>', { desc = 'Prev Buffer' })
set('n', ']b', '<cmd>bnext<cr>', { desc = 'Next Buffer' })
set('n', '<leader>bb', '<cmd>e #<cr>', { desc = 'Switch to Other Buffer' })
set('n', '<leader>`', '<cmd>e #<cr>', { desc = 'Switch to Other Buffer' })
+set('n', '<leader>bd', function() Snacks.bufdelete() end, { desc = 'Delete Buffer' })
+set('n', '<leader>bo', function() Snacks.bufdelete.other() end, { desc = 'Delete Other Buffers' })
+set('n', '<leader>bD', '<cmd>:bd<cr>', { desc = 'Delete Buffer and Window' })
-- https://github.com/mhinz/vim-galore#saner-behavior-of-n-and-n
-- Saner search behavior: n always goes forward, N always goes backward.
@@ -94,6 +97,8 @@ set('n', '[w', diagnostic_goto(false, 'WARN'), { desc = 'Prev Warning' })
set('n', '<leader>ui', vim.show_pos, { desc = 'Inspect Pos' })
set('n', '<leader>uI', function() vim.treesitter.inspect_tree() vim.api.nvim_input('I') end, { desc = 'Inspect Tree' })
+-- Floating terminal.
+set('n', '<leader>fT', function() Snacks.terminal() end, { desc = 'Terminal (cwd)' })
-- Window Splitting.
set('n', '<leader>sh', '<C-W>s', { desc = 'Split Window Below' })
set('n', '<leader>sv', '<C-W>v', { desc = 'Split Window Right' })
@@ -115,3 +120,18 @@ set('n', '<leader>l', '<cmd>set list!<cr>', { desc = 'Toggle Hidden Characters'
-- Quickly source current file.
set('n', '<leader>xx', '<cmd>source %<cr>', { desc = 'Source Current File' })
+
+-- LSP
+set('n', '<leader>cl', function() Snacks.picker.lsp_config() end, { desc = "Lsp Info" })
+set('n', 'gd', vim.lsp.buf.definition, { desc = 'Goto Definition' })
+set('n', 'gr', vim.lsp.buf.references, { desc = 'References', nowait = true })
+set('n', 'gr', vim.lsp.buf.references, { desc = 'References', nowait = true })
+set('n', 'gI', vim.lsp.buf.implementation, { desc = 'Goto Implementation' })
+set('n', 'gy', vim.lsp.buf.type_definition, { desc = 'Goto T[y]pe Definition' })
+set('n', 'gD', vim.lsp.buf.declaration, { desc = 'Goto Declaration' })
+set('n', 'K', function() return vim.lsp.buf.hover() end, { desc = 'Hover' })
+set('n', 'gK', function() return vim.lsp.buf.signature_help() end, { desc = 'Signature Help' })
+set({'n', 'x'}, '<leader>ca', vim.lsp.buf.code_action, { desc = 'Code Action' })
+set({'n', 'x'}, '<leader>cc', vim.lsp.codelens.run, { desc = 'Run Codelens' })
+set('n', '<leader>cR', function() Snacks.rename.rename_file() end, { desc = 'Rename File' })
+set('n', 'leader>cr', vim.lsp.buf.rename, { desc = 'Rename' })
diff --git a/nvim/.config/nvim/lua/plugins/init.lua b/nvim/.config/nvim/lua/plugins/init.lua
index fbed01b..a3deebe 100644
--- a/nvim/.config/nvim/lua/plugins/init.lua
+++ b/nvim/.config/nvim/lua/plugins/init.lua
@@ -1,3 +1,4 @@
+require('plugins.snacks-nvim')
require('plugins.nord')
require('plugins.vim-obsession')
require('plugins.nvim-treesitter')
diff --git a/nvim/.config/nvim/lua/plugins/snacks-nvim.lua b/nvim/.config/nvim/lua/plugins/snacks-nvim.lua
new file mode 100644
index 0000000..91a953f
--- /dev/null
+++ b/nvim/.config/nvim/lua/plugins/snacks-nvim.lua
@@ -0,0 +1,7 @@
+vim.pack.add({'https://github.com/folke/snacks.nvim'})
+
+require('snacks').setup({
+ bigfile = { enabled = true },
+ bufdelete = { enabled = true },
+ terminal = { enabled = true },
+})
diff --git a/nvim/.config/nvim/nvim-pack-lock.json b/nvim/.config/nvim/nvim-pack-lock.json
index 15b3288..c08d492 100644
--- a/nvim/.config/nvim/nvim-pack-lock.json
+++ b/nvim/.config/nvim/nvim-pack-lock.json
@@ -13,6 +13,10 @@
"rev": "45a07f869b0cffba342276f2c77ba7c116d35db8",
"src": "https://github.com/nvim-treesitter/nvim-treesitter"
},
+ "snacks.nvim": {
+ "rev": "fe7cfe9800a182274d0f868a74b7263b8c0c020b",
+ "src": "https://github.com/folke/snacks.nvim"
+ },
"vim-obsession": {
"rev": "ed9dfc7c2cc917ace8b24f4f9f80a91e05614b63",
"src": "https://github.com/tpope/vim-obsession.git"