From 08ef0a0c90ad39d9b4a49f7d3e37a40cf1b37e81 Mon Sep 17 00:00:00 2001 From: Oliver Date: Wed, 21 May 2025 12:55:46 +0200 Subject: [PATCH] feat(telescope): add a filetype live grep --- nvim/lua/olinpin/plugins/telescope.lua | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/nvim/lua/olinpin/plugins/telescope.lua b/nvim/lua/olinpin/plugins/telescope.lua index 421f161..23f9802 100644 --- a/nvim/lua/olinpin/plugins/telescope.lua +++ b/nvim/lua/olinpin/plugins/telescope.lua @@ -47,6 +47,28 @@ return { filesize_limit = 0.5, -- MB }, }) + + local function grepInFiles() + local actions = require("telescope.actions") + local action_state = require("telescope.actions.state") + builtin.filetypes({ + attach_mappings = function(prompt_bufnr, _) + actions.select_default:replace(function() + actions.close(prompt_bufnr) + local selection = action_state.get_selected_entry() + local filetype = selection.value + + builtin.live_grep({ + additional_args = function() + return { "--glob", "*." .. filetype } + end, + }) + end) + return true + end, + }) + end + vim.keymap.set("n", "ft", grepInFiles, { desc = "Live grep by filetype" }) vim.keymap.set('n', '*', builtin.grep_string, {desc = "Grep current string"}) vim.keymap.set('n', 'ff', builtin.find_files, {desc = "Find files"}) vim.keymap.set('n', 'fg', builtin.git_branches, {desc = "Find Git branches" })