From e2555ad8d0180d29eab63033f5840b0a79d2ae00 Mon Sep 17 00:00:00 2001 From: voidarc Date: Thu, 16 Apr 2026 10:00:14 +0100 Subject: [PATCH] fixed mini sessions and added telescope --- lua/config/autocmd.lua | 31 ++++++++++++++++++++++ lua/config/binds.lua | 43 +++++++++++++++++++++++++++++++ lua/plugins/utils/convenience.lua | 31 ---------------------- lua/plugins/utils/telescope.lua | 37 ++++++++++++++++++++++++++ 4 files changed, 111 insertions(+), 31 deletions(-) create mode 100644 lua/plugins/utils/telescope.lua diff --git a/lua/config/autocmd.lua b/lua/config/autocmd.lua index b9fa53f..38cdc82 100644 --- a/lua/config/autocmd.lua +++ b/lua/config/autocmd.lua @@ -42,3 +42,34 @@ vim.api.nvim_create_autocmd({ "WinLeave" }, { vim.opt_local.cursorline = false end, }) + +local group = vim.api.nvim_create_augroup("autosave", {}) + +-- Notification to say when a file is saved by autosave +vim.api.nvim_create_autocmd("User", { + pattern = "AutoSaveWritePre", + group = group, + callback = function(opts) + if opts.data.saved_buffer ~= nil then + local filename = vim.fn.expand("%:t") + print("Saved '" .. filename .. "' at " .. vim.fn.strftime("%H:%M:%S")) + end + end, +}) + +-- Notification when enabling/disabling autosave for a buffer +vim.api.nvim_create_autocmd("User", { + pattern = "AutoSaveEnable", + group = group, + callback = function() + print("AutoSave enabled") + end, +}) + +vim.api.nvim_create_autocmd("User", { + pattern = "AutoSaveDisable", + group = group, + callback = function() + print("AutoSave disabled") + end, +}) diff --git a/lua/config/binds.lua b/lua/config/binds.lua index 00c06cc..142a947 100644 --- a/lua/config/binds.lua +++ b/lua/config/binds.lua @@ -41,3 +41,46 @@ end) Keymap("n", "R", function() require("flash").treesitter_search() end) + +-- Mini Session Keybinds +Keymap("n", "qj", function() -- quit and save session local + require("mini.sessions").write(".session") + vim.cmd("wqa") +end) + +Keymap("n", "qd", function() -- quit and delete session + require("mini.sessions").delete(".session") + vim.cmd("wqa") +end) + +-- Telescope + +local builtin = require("telescope.builtin") + +Keymap("n", "ff", function() + builtin.find_files({ hidden = true }) +end) + +Keymap("n", "fn", function() + local full_path = vim.api.nvim_buf_get_name(0) + local dir = vim.fn.fnamemodify(full_path, ":h") + require("telescope").extensions.file_browser.file_browser({ + path = dir, + }) +end) + +Keymap("n", "fs", function() -- select sessions + MiniSessions.select() +end) + +Keymap("n", "fd", function() -- select sessions + MiniSessions.select("delete") +end) + +Keymap("n", "fg", function() + builtin.live_grep({ hidden = true }) +end) + +Keymap("n", "fb", function() + builtin.buffers({ cwd = vim.fn.expand("%:p:h") }) -- buffers don’t need cwd, but harmless +end) diff --git a/lua/plugins/utils/convenience.lua b/lua/plugins/utils/convenience.lua index 0b89e39..8ebffec 100644 --- a/lua/plugins/utils/convenience.lua +++ b/lua/plugins/utils/convenience.lua @@ -16,37 +16,6 @@ require("auto-save").setup({ noautocmd = true, }) -local group = vim.api.nvim_create_augroup("autosave", {}) - --- Notification to say when a file is saved -vim.api.nvim_create_autocmd("User", { - pattern = "AutoSaveWritePre", - group = group, - callback = function(opts) - if opts.data.saved_buffer ~= nil then - local filename = vim.fn.expand("%:t") - print("Saved '" .. filename .. "' at " .. vim.fn.strftime("%H:%M:%S")) - end - end, -}) - --- Notification when enabling/disabling autosave for a buffer -vim.api.nvim_create_autocmd("User", { - pattern = "AutoSaveEnable", - group = group, - callback = function(opts) - print("AutoSave enabled") - end, -}) - -vim.api.nvim_create_autocmd("User", { - pattern = "AutoSaveDisable", - group = group, - callback = function(opts) - print("AutoSave disabled") - end, -}) - -- enable remember require("remember").setup({}) diff --git a/lua/plugins/utils/telescope.lua b/lua/plugins/utils/telescope.lua new file mode 100644 index 0000000..502ffd4 --- /dev/null +++ b/lua/plugins/utils/telescope.lua @@ -0,0 +1,37 @@ +vim.pack.add({ + { src = "https://github.com/nvim-telescope/telescope.nvim", name = "telescope" }, + { src = "https://github.com/nvim-lua/plenary.nvim", name = "plenary" }, + { src = "https://github.com/nvim-telescope/telescope-symbols.nvim", name = "telescope-symbols" }, + { src = "https://github.com/nvim-telescope/telescope-ui-select.nvim", name = "telescope-ui-select" }, + { src = "https://github.com/nvim-telescope/telescope-fzf-native.nvim", name = "telescope-fzf" }, + { src = "https://github.com/nvim-telescope/telescope-file-browser.nvim", name = "telescope-file-browser" }, + { src = "https://github.com/2kabhishek/nerdy.nvim", name = "telescope-nerdy" }, +}) + +require("telescope").setup({ + defaults = { + file_ignore_patterns = { ".git", ".venv", ".node_modules" }, + }, + pickers = { + live_grep = { + additional_args = function() + return { "--hidden" } + end, + }, + }, + extensions = { + file_browser = { + theme = "ivy", + hijack_netrw = true, + }, + ["ui-select"] = { + require("telescope.themes").get_dropdown({ + -- even more opts + }), + }, + }, +}) + +require("telescope").load_extension("file_browser") +require("telescope").load_extension("ui-select") +require("telescope").load_extension("nerdy")