From 1262eca199e0156b71676af66dd17b399eb6a6ee Mon Sep 17 00:00:00 2001 From: Hadeed Ahmad <me@hadeedahmad.com> Date: Sun, 6 Apr 2025 22:42:11 +0500 Subject: [PATCH] Add telescope mappings --- nvim/lua/config/keymaps.lua | 30 ++++++++++++++++++++++----- nvim/lua/config/lazy.lua | 11 +++++++++- nvim/lua/config/plugins/lsp.lua | 16 ++++++++++++++ nvim/lua/config/plugins/telescope.lua | 23 ++++++++++++++++++++ 4 files changed, 74 insertions(+), 6 deletions(-) create mode 100644 nvim/lua/config/plugins/telescope.lua diff --git a/nvim/lua/config/keymaps.lua b/nvim/lua/config/keymaps.lua index be5da19..f2d9cc5 100644 --- a/nvim/lua/config/keymaps.lua +++ b/nvim/lua/config/keymaps.lua @@ -4,13 +4,13 @@ vim.g.mapleader = " " set("i", "jk", "<ESC>") set("i", "kj", "<ESC>") -set({"n", "x"}, "j", [[v:count == 0 ? "gj" : "j"]], { expr = true }) -set({"n", "x"}, "k", [[v:count == 0 ? "gk" : "k"]], { expr = true }) +set({ "n", "x" }, "j", [[v:count == 0 ? "gj" : "j"]], { expr = true }) +set({ "n", "x" }, "k", [[v:count == 0 ? "gk" : "k"]], { expr = true }) -set({"n", "x"}, ";", ":") -set({"n", "x"}, ":", ";") +set({ "n", "x" }, ";", ":") +set({ "n", "x" }, ":", ";") -set({"n", "x"}, "gy", "\"+y") +set({ "n", "x" }, "gy", "\"+y") set("n", "gp", "\"+p") set("n", "n", "nzz") @@ -39,3 +39,23 @@ vim.api.nvim_create_autocmd("Filetype", { vim.keymap.set("n", "<leader><leader>x", "<cmd>%lua<cr>", { buffer = true }) end, }) + +local M = {} + +function M.telescope() + local builtin = require("telescope.builtin") + + set("n", "<leader>ff", builtin.find_files) + set("n", "<leader>fh", builtin.help_tags) + set("n", "<leader>ft", builtin.builtin) + set("n", "<leader>fm", builtin.man_pages) + + set("n", "<leader>fd", function() + builtin.find_files({ + cwd = "$DOTS", + prompt_title = "< DOTFILES >" + }) + end) +end + +return M diff --git a/nvim/lua/config/lazy.lua b/nvim/lua/config/lazy.lua index 95f0a01..b7ef23e 100644 --- a/nvim/lua/config/lazy.lua +++ b/nvim/lua/config/lazy.lua @@ -5,7 +5,7 @@ if not (vim.uv or vim.loop).fs_stat(lazypath) then if vim.v.shell_error ~= 0 then vim.api.nvim_echo({ { "Failed to clone lazy.nvim:\n", "ErrorMsg" }, - { out, "WarningMsg" }, + { out, "WarningMsg" }, { "\nPress any key to exit..." }, }, true, {}) vim.fn.getchar() @@ -37,6 +37,15 @@ require("lazy").setup({ build = ":TSUpdate", }, + { + "folke/flash.nvim", + opts = {}, + keys = { + { "s", mode = { "n", "x", "o" }, function() require("flash").jump() end }, + { "r", mode = "o", function() require("flash").remote() end } + }, + }, + { import = "config.plugins" } }, }) diff --git a/nvim/lua/config/plugins/lsp.lua b/nvim/lua/config/plugins/lsp.lua index 7b7a797..0047699 100644 --- a/nvim/lua/config/plugins/lsp.lua +++ b/nvim/lua/config/plugins/lsp.lua @@ -14,6 +14,22 @@ return { }, config = function() require("lspconfig").lua_ls.setup {} + + vim.api.nvim_create_autocmd("LspAttach", { + callback = function(args) + local client = vim.lsp.get_client_by_id(args.data.client_id) + if not client then return end + + if client.supports_method("textDocument/formatting") then + vim.api.nvim_create_autocmd("BufWritePre", { + buffer = args.buf, + callback = function() + vim.lsp.buf.format({ bufnr = args.buf, id = client.id }) + end + }) + end + end + }) end } } diff --git a/nvim/lua/config/plugins/telescope.lua b/nvim/lua/config/plugins/telescope.lua new file mode 100644 index 0000000..f294947 --- /dev/null +++ b/nvim/lua/config/plugins/telescope.lua @@ -0,0 +1,23 @@ +return { + "nvim-telescope/telescope.nvim", + dependencies = { + "nvim-lua/plenary.nvim", + "kyazdani42/nvim-web-devicons", + { "nvim-telescope/telescope-fzf-native.nvim", build = "make" } + }, + config = function() + local telescope = require("telescope") + + telescope.setup({ + pickers = { + man_pages = { + sections = { "ALL" } + } + } + }) + + telescope.load_extension("fzf") + + require("config.keymaps").telescope() + end +}