Switch from telescope to snacks picker for a more emacs-like experience

This commit is contained in:
Curt Spark 2025-05-13 23:55:19 +01:00
parent bd022c84c4
commit 786098b309
5 changed files with 74 additions and 36 deletions

View File

@ -44,23 +44,23 @@ vim.cmd("set nohlsearch")
vim.o.background = "light" -- or "dark" for dark mode
vim.cmd("colorscheme gruvbox")
-- Telescope setup (Like emacs ivy-mode)
require('telescope').setup{
defaults = {
-- ...
},
pickers = {
find_files = {
theme = "ivy",
}
},
extensions = {
-- ...
}
}
-- Telescope setup (Like emacs ivy-mode) NOW USING SNACKS PICKERS INSTEAD
--require('telescope').setup{
-- defaults = {
-- -- ...
-- },
-- pickers = {
-- find_files = {
-- theme = "ivy",
-- }
-- },
-- extensions = {
-- -- ...
-- }
--}
-- To get telescope-file-browser loaded and working with telescope,
-- you need to call load_extension, somewhere after setup function:
require("telescope").load_extension "file_browser"
--require("telescope").load_extension "file_browser"
-- Custom statusline (modeline)
require('mini.statusline').setup()
@ -388,17 +388,22 @@ dap.configurations.c = {
-- Remake of emacs which-key mode, I'll add all custom keybinds here
-- TODO: The DAP related functions should be moved into their own respective file/modularised better!
require("which-key").add ({
{ "<C-s>", "<cmd>Telescope live_grep<cr>" , desc = "Swiper", mode = "n" },
--{ "<C-s>", "<cmd>Telescope live_grep<cr>" , desc = "Swiper", mode = "n" },
{ "/", function () Snacks.picker.lines() end , desc = "Swiper", mode = "n" },
{ "<C-s>", function () Snacks.picker.lines() end , desc = "Swiper", mode = "n" },
-- This does not allow you to make a new file only search existing, but good enough for now.
{ "<leader><C-f>", "<cmd>Telescope find_files find_command=rg,--ignore,--hidden,--files<cr>" , desc = "Find File", mode = "n" },
--{ "<leader><C-f>", "<cmd>Telescope find_files find_command=rg,--ignore,--hidden,--files<cr>" , desc = "Find File", mode = "n" },
{ "<leader><C-f>", function() Snacks.picker.files() end, desc = "Find File", mode = "n" },
{ "<leader>f", "<cmd>Telescope file_browser<cr>" , desc = "File Browser", mode = "n" },
--{ "<leader>f", "<cmd>Telescope file_browser<cr>" , desc = "File Browser", mode = "n" },
-- To properly remake the Emacs ivy buffer command, we should figure out how to combine Telescope buffers and Telescope oldfiles
-- This is good enough for now
{ "<leader>b", "<cmd>Telescope oldfiles<cr>" , desc = "Recently opened files", mode = "n" },
{ "<leader><C-b>", "<cmd>Telescope buffers<cr>" , desc = "Buffers", mode = "n" },
-- { "<leader>b", "<cmd>Telescope oldfiles<cr>" , desc = "Recently opened files", mode = "n" },
-- { "<leader><C-b>", "<cmd>Telescope buffers<cr>" , desc = "Buffers", mode = "n" },
-- SNACKS NOW GOOD ENOUGH TO PROVIDE EXACT BEHAVIOUR
{ "<leader>b", function () Snacks.picker.smart() end , desc = "Recently opened files", mode = "n" },
{ "<leader>k", "<cmd>bp|bd#<cr>" , desc = "Close current buffer", mode = "n" },
{ "<leader>0", "<cmd>close<cr>", desc = "Close focused window" },

View File

@ -1,28 +1,28 @@
{
"LuaSnip": { "branch": "master", "commit": "c9b9a22904c97d0eb69ccb9bab76037838326817" },
"cmp-nvim-lsp": { "branch": "main", "commit": "99290b3ec1322070bcfb9e846450a46f6efa50f0" },
"LuaSnip": { "branch": "master", "commit": "787dee55ca364cc9119787165418fe93b74c1842" },
"cmp-nvim-lsp": { "branch": "main", "commit": "39e2eda76828d88b773cc27a3f61d2ad782c922d" },
"cord.nvim": { "branch": "master", "commit": "df8f4fc28299ec33f884a8b44d1a126e2659e0fb" },
"dashboard-nvim": { "branch": "master", "commit": "ae309606940d26d8c9df8b048a6e136b6bbec478" },
"firenvim": { "branch": "master", "commit": "dd2d6f6b3b87b3726d5ef59adfe8a6c444889dda" },
"gruvbox.nvim": { "branch": "main", "commit": "68c3460a5d1d1a362318960035c9f3466d5011f5" },
"lazy.nvim": { "branch": "main", "commit": "7e6c863bc7563efbdd757a310d17ebc95166cef3" },
"lsp-zero.nvim": { "branch": "v3.x", "commit": "ab2a3413646fedd77aa0eab4214a6473e62f6a64" },
"mini.statusline": { "branch": "main", "commit": "1b0edf76fe2af015f8c989385ff949f1db7aade2" },
"dashboard-nvim": { "branch": "master", "commit": "d2c5a4d1341f5ca1ed2ecb4ecfcff2bc8ea18b14" },
"firenvim": { "branch": "master", "commit": "64f9389b88c8b0c7667d45c171a5f25c42d852fb" },
"gruvbox.nvim": { "branch": "main", "commit": "49d9c0b150ba70efcd831ec7b3cb8ee740067045" },
"lazy.nvim": { "branch": "main", "commit": "6c3bda4aca61a13a9c63f1c1d1b16b9d3be90d7a" },
"lsp-zero.nvim": { "branch": "v3.x", "commit": "56db3d5ce5476b183783160e6045f7337ba12b83" },
"mini.statusline": { "branch": "main", "commit": "813854243156472c9d0bc9c64ea0af159b9b37ca" },
"neogen": { "branch": "main", "commit": "d7f9461727751fb07f82011051338a9aba07581d" },
"nui.nvim": { "branch": "main", "commit": "53e907ffe5eedebdca1cd503b00aa8692068ca46" },
"nvim-cmp": { "branch": "main", "commit": "8c82d0bd31299dbff7f8e780f5e06d2283de9678" },
"nvim-dap": { "branch": "master", "commit": "b768c8d0ce6da614ac17ed097bf2d94e35fe1a58" },
"nvim-lspconfig": { "branch": "master", "commit": "8121483b8132b7053120fafd83728178fb3febf6" },
"nvim-cmp": { "branch": "main", "commit": "29fb4854573355792df9e156cb779f0d31308796" },
"nvim-dap": { "branch": "master", "commit": "7ff6936010b7222fea2caea0f67ed77f1b7c60dd" },
"nvim-lspconfig": { "branch": "master", "commit": "edd9591199d1c78c0cb20514231f7f936f9412a2" },
"nvim-tree.lua": { "branch": "master", "commit": "68fc4c20f5803444277022c681785c5edd11916d" },
"nvim-treesitter": { "branch": "master", "commit": "10a9464a82fb540cca912a1d25810f242cb97b5f" },
"nvim-web-devicons": { "branch": "master", "commit": "5740b7382429d20b6ed0bbdb0694185af9507d44" },
"nvim-web-devicons": { "branch": "master", "commit": "19d257cf889f79f4022163c3fbb5e08639077bd8" },
"oil.nvim": { "branch": "master", "commit": "7041528bdedb350ad66e650684deec8456e053cc" },
"plenary.nvim": { "branch": "master", "commit": "2d9b06177a975543726ce5c73fca176cedbffe9d" },
"telescope-file-browser.nvim": { "branch": "master", "commit": "626998e5c1b71c130d8bc6cf7abb6709b98287bb" },
"plenary.nvim": { "branch": "master", "commit": "857c5ac632080dba10aae49dba902ce3abf91b35" },
"snacks.nvim": { "branch": "main", "commit": "bc0630e43be5699bb94dadc302c0d21615421d93" },
"telescope.nvim": { "branch": "master", "commit": "a0bbec21143c7bc5f8bb02e0005fa0b982edc026" },
"tiny-inline-diagnostic.nvim": { "branch": "main", "commit": "cd401038de4cbae37651cfe02510294ccf5cdc98" },
"vim-jsdoc": { "branch": "master", "commit": "6e5bc2a1f98a69e4902081c9f5969b228a7a5fd6" },
"vim-suda": { "branch": "master", "commit": "9adda7d195222d4e2854efb2a88005a120296c47" },
"which-key.nvim": { "branch": "main", "commit": "1f8d414f61e0b05958c342df9b6a4c89ce268766" },
"vim-suda": { "branch": "master", "commit": "b97fab52f9cdeabe2bbb5eb98d82356899f30829" },
"which-key.nvim": { "branch": "main", "commit": "8badb359f7ab8711e2575ef75dfe6fbbd87e4821" },
"xcodebuild.nvim": { "branch": "main", "commit": "d30627c0df5b71e358a08581cb7129d06cfbdfda" }
}

33
lua/plugins/snacks.lua Normal file
View File

@ -0,0 +1,33 @@
return {
"folke/snacks.nvim",
priority = 1000,
lazy = false,
---@type snacks.Config
opts = {
-- your configuration comes here
-- or leave it empty to use the default settings
-- refer to the configuration section below
bigfile = { enabled = true },
dashboard = { enabled = false },
explorer = { enabled = false },
indent = { enabled = false },
input = { enabled = true },
picker = {
enabled = true,
layout = "ivy",
win = {
input = {
keys = {
["<C-g>"] = { "close", mode = { "n", "i" } },
}
},
},
},
notifier = { enabled = false },
quickfile = { enabled = true },
scope = { enabled = false },
scroll = { enabled = false },
statuscolumn = { enabled = false },
words = { enabled = false },
},
}