diff options
| author | TheSiahxyz <164138827+TheSiahxyz@users.noreply.github.com> | 2025-06-19 18:34:13 +0900 |
|---|---|---|
| committer | TheSiahxyz <164138827+TheSiahxyz@users.noreply.github.com> | 2025-06-19 18:34:13 +0900 |
| commit | 307fceea38b7352a79b0bdb87025a34b76973867 (patch) | |
| tree | 382eb3e6a11973bc2c6ba33eee14d43ec2a9566b /ar/.config/TheSiahxyz/lua/thesiahxyz/plugins/telescope.lua | |
| parent | b66f68b8c014a3041c936ee9de1b57db5bcb50fb (diff) | |
updates
Diffstat (limited to 'ar/.config/TheSiahxyz/lua/thesiahxyz/plugins/telescope.lua')
| -rw-r--r-- | ar/.config/TheSiahxyz/lua/thesiahxyz/plugins/telescope.lua | 1084 |
1 files changed, 0 insertions, 1084 deletions
diff --git a/ar/.config/TheSiahxyz/lua/thesiahxyz/plugins/telescope.lua b/ar/.config/TheSiahxyz/lua/thesiahxyz/plugins/telescope.lua deleted file mode 100644 index 6f931de..0000000 --- a/ar/.config/TheSiahxyz/lua/thesiahxyz/plugins/telescope.lua +++ /dev/null @@ -1,1084 +0,0 @@ -local have_make = vim.fn.executable("make") == 1 -local have_cmake = vim.fn.executable("cmake") == 1 - -function vim.live_grep_from_project_git_root() - local function get_git_toplevel() - local path = vim.fn.system("git rev-parse --show-toplevel") - if vim.v.shell_error then - return nil - end - return path - end - - local opts = { cwd = get_git_toplevel() } - - require("telescope.builtin").live_grep(opts) -end - -local function find_nvim_plugin_files(prompt_bufnr) - local actions = require("telescope.actions") - local action_state = require("telescope.actions.state") - - actions.close(prompt_bufnr) - - local selection = action_state.get_selected_entry() - if selection and selection.value then - -- Construct the full path - local base_path = vim.fn.stdpath("data") - local full_path = vim.fn.resolve(base_path .. "/" .. selection.value) - - require("mini.files").open(full_path, true) - end -end - -return { - { - "nvim-telescope/telescope-file-browser.nvim", - dependencies = { - "nvim-lua/plenary.nvim", - "nvim-telescope/telescope.nvim", - }, - -- init = function() - -- vim.api.nvim_create_autocmd("VimEnter", { - -- group = vim.api.nvim_create_augroup("TelescopeFileBrowserStartDirectory", { clear = true }), - -- desc = "Start telescope-file-browser with directory", - -- once = true, - -- callback = function() - -- if package.loaded["telescope-file-browser.nvim"] then - -- return - -- else - -- local stats = vim.uv.fs_stat(vim.fn.argv(0)) - -- if stats and stats.type == "directory" then - -- require("telescope").extensions.file_browser.file_browser() - -- end - -- end - -- end, - -- }) - -- end, - config = function() - local fb_actions = require("telescope._extensions.file_browser.actions") - - require("telescope").setup({ - extensions = { - file_browser = { - path = vim.uv.cwd(), - cwd = vim.uv.cwd(), - cwd_to_path = false, - grouped = true, - files = true, - add_dirs = true, - depth = 1, - auto_depth = true, - select_buffer = true, - hidden = { file_browser = false, folder_browser = false }, - respect_gitignore = vim.fn.executable("fd") == 1, - no_ignore = true, - follow_symlinks = true, - browse_files = require("telescope._extensions.file_browser.finders").browse_files, - browse_folders = require("telescope._extensions.file_browser.finders").browse_folders, - hide_parent_dir = false, - collapse_dirs = true, - prompt_path = true, - quiet = true, - dir_icon = "", - dir_icon_hl = "Default", - display_stat = { date = true, size = true, mode = true }, - hijack_netrw = false, - use_fd = true, - git_status = true, - mappings = { - ["i"] = { - ["<C-a>"] = fb_actions.create, - ["<C-e>"] = fb_actions.create_from_prompt, - ["<C-r>"] = fb_actions.rename, - ["<C-d>"] = fb_actions.move, - ["<C-y>"] = fb_actions.copy, - ["<Del>"] = fb_actions.remove, - ["<C-o>"] = fb_actions.open, - ["<C-h>"] = fb_actions.goto_parent_dir, - ["<C-Space>"] = fb_actions.goto_home_dir, - ["<C-w>"] = fb_actions.goto_cwd, - ["<C-g>"] = fb_actions.change_cwd, - ["<C-f>"] = fb_actions.toggle_browser, - ["<C-_>"] = fb_actions.toggle_hidden, - ["<C-t>"] = fb_actions.toggle_all, - ["<bs>"] = fb_actions.backspace, - }, - ["n"] = { - ["a"] = fb_actions.create, - ["n"] = fb_actions.create_from_prompt, - ["r"] = fb_actions.rename, - ["d"] = fb_actions.move, - ["y"] = fb_actions.copy, - ["Del"] = fb_actions.remove, - ["o"] = fb_actions.open, - ["h"] = fb_actions.goto_parent_dir, - ["gh"] = fb_actions.goto_home_dir, - ["<C-w>"] = fb_actions.goto_cwd, - ["<C-g>"] = fb_actions.change_cwd, - ["f"] = fb_actions.toggle_browser, - ["/"] = fb_actions.toggle_hidden, - ["t"] = fb_actions.toggle_all, - }, - }, - results_title = vim.fn.fnamemodify(vim.uv.cwd(), ":~"), - }, - }, - }) - - require("telescope").load_extension("file_browser") - - vim.keymap.set( - "n", - "<leader>et", - ":Telescope file_browser path=%:p:h select_buffer=true<CR>", - { desc = "File browser (cwd)" } - ) - vim.keymap.set("n", "<leader>eT", ":Telescope file_browser<CR>", { desc = "File browser" }) - end, - }, - { - "nvim-telescope/telescope.nvim", - branch = "master", - dependencies = { - { "nvim-lua/plenary.nvim" }, - { - "nvim-telescope/telescope-fzf-native.nvim", - build = have_make and "make" - or "cmake -S. -Bbuild -DCMAKE_BUILD_TYPE=Release && cmake --build build --config Release && cmake --install build --prefix build", - enabled = have_make or have_cmake, - config = function() - require("telescope").load_extension("fzf") - end, - }, - { - "nvim-telescope/telescope-github.nvim", - init = function() - local wk = require("which-key") - wk.add({ - mode = { "n" }, - { "<leader>gh", group = "gh" }, - }) - end, - config = function() - require("telescope").load_extension("gh") - vim.keymap.set({ "n", "v" }, "<leader>gi", ":Telescope gh issues ", { desc = "Find gh issues" }) - vim.keymap.set( - { "n", "v" }, - "<leader>gp", - ":Telescope gh pull_request ", - { desc = "Find gh pull request" } - ) - vim.keymap.set({ "n", "v" }, "<leader>ght", ":Telescope gh gist ", { desc = "Find gh gist" }) - vim.keymap.set({ "n", "v" }, "<leader>ghr", ":Telescope gh run ", { desc = "Find gh run" }) - end, - }, - { - "nvim-telescope/telescope-ui-select.nvim", - config = function() - require("telescope").setup({ - extensions = { - ["ui-select"] = { - require("telescope.themes").get_dropdown({ - -- even more opts - }), - - -- pseudo code / specification for writing custom displays, like the one - -- for "codeactions" - -- specific_opts = { - -- make_indexed = function(items) -> indexed_items, width, - -- [kind] = { - -- make_displayer = function(widths) -> displayer - -- make_display = function(displayer) -> function(e) - -- make_ordinal = function(e) -> string - -- }, - -- -- for example to disable the custom builtin "codeactions" display - -- do the following - -- codeactions = false, - -- } - }, - }, - }) - require("telescope").load_extension("ui-select") - end, - }, - { - "jvgrootveld/telescope-zoxide", - dependencies = { "nvim-lua/popup.nvim" }, - config = function() - require("telescope").setup({ - extensions = { - zoxide = { - prompt_title = "[ TheSiahxyz ]", - mappings = { - default = { - action = function(selection) - vim.cmd.cd(selection.path) - end, - after_action = function(selection) - print("Update to (" .. selection.z_score .. ") " .. selection.path) - end, - }, - ["<C-s>"] = { - action = require("telescope._extensions.zoxide.utils").create_basic_command( - "split" - ), - opts = { desc = "split" }, - }, - ["<C-v>"] = { - action = require("telescope._extensions.zoxide.utils").create_basic_command( - "vsplit" - ), - }, - ["<C-e>"] = { - action = require("telescope._extensions.zoxide.utils").create_basic_command( - "edit" - ), - }, - ["<C-b>"] = { - keepinsert = true, - action = function(selection) - require("telescope").extensions.file_browser.file_browser({ - cwd = selection.path, - }) - end, - }, - }, - }, - }, - }) - require("telescope").load_extension("zoxide") - - vim.keymap.set("n", "<leader>fz", function() - require("telescope").extensions.zoxide.list() - end, { desc = "Find files (zoxide)" }) - end, - }, - { - "nvim-telescope/telescope-live-grep-args.nvim", - -- This will not install any breaking changes. - -- For major updates, this must be adjusted manually. - version = "^1.0.0", - init = function() - local wk = require("which-key") - wk.add({ - mode = { "n", "v" }, - { "<leader>f", group = "Find" }, - { "<leader>fl", group = "Live grep" }, - }) - end, - config = function() - local lga_actions = require("telescope-live-grep-args.actions") - local actions = require("telescope.actions") - - require("telescope").setup({ - extensions = { - live_grep_args = { - auto_quoting = true, -- enable/disable auto-quoting - -- define mappings, e.g. - mappings = { -- extend mappings - i = { - ["<C-w>"] = lga_actions.quote_prompt(), - ["<C-i>"] = lga_actions.quote_prompt({ postfix = " --iglob " }), - -- freeze the current list and start a fuzzy search in the frozen list - ["<C-space>"] = actions.to_fuzzy_refine, - }, - }, - vimgrep_arguments = { - "rg", - "--color=never", - "--no-heading", - "--with-filename", - "--line-number", - "--column", - "--smart-case", - "--follow", - "--hidden", - "--no-ignore", - }, - -- ... also accepts theme settings, for example: - -- theme = "dropdown", -- use dropdown theme - -- theme = { }, -- use own theme spec - -- layout_config = { mirror=true }, -- mirror preview pane - }, - }, - }) - require("telescope").load_extension("live_grep_args") - vim.keymap.set("n", "<leader>flf", function() - require("telescope").extensions.live_grep_args.live_grep_args() - end, { desc = "Find live grep args" }) - - local live_grep_args_shortcuts = require("telescope-live-grep-args.shortcuts") - vim.keymap.set( - "n", - "<leader>ss", - live_grep_args_shortcuts.grep_word_under_cursor, - { desc = "Search shortcuts (Live grep)" } - ) - - local function search_git(visual) - -- Retrieve the git root path - local handle = io.popen("git rev-parse --show-toplevel") - if not handle then - print("Error: Unable to open git handle") - return - end - - local git_root_path = handle:read("*a"):gsub("%s+", "") - handle:close() - - if not git_root_path or git_root_path == "" then - print("Error: Unable to retrieve git root path") - return - end - - local opts = { - prompt_title = visual and ("Visual-Grep in " .. git_root_path) - or ("Live-Grep in " .. git_root_path), - shorten_path = false, - cwd = git_root_path, - file_ignore_patterns = { ".git", ".png", "tags" }, - initial_mode = "insert", - selection_strategy = "reset", - theme = require("telescope.themes").get_dropdown({}), - } - - if visual then - -- Capture the selected text in visual mode - vim.cmd('normal! "vy') - local visual_selection = vim.fn.getreg("v") - opts.search = visual_selection - require("telescope.builtin").grep_string(opts) - else - require("telescope.builtin").live_grep(opts) - end - end - - vim.keymap.set("n", "<leader>flg", function() - search_git(false) - end, { remap = true, silent = false, desc = "Live grep in the git root folder" }) - - vim.keymap.set("v", "<leader>flg", function() - search_git(true) - end, { remap = true, silent = false, desc = "Grep in the git root folder" }) - -- Retrieve the current tmux session path - -- This will not change when we navigate to a different pane - local function search_tmux(visual) - local handle = io.popen("tmux display-message -p '#{session_path}'") - if not handle then - print("Error: Unable to open tmux handle") - return - end - - local tmux_session_path = handle:read("*a"):gsub("%s+", "") - handle:close() - - if not tmux_session_path or tmux_session_path == "" then - print("Error: Unable to retrieve tmux session path") - return - end - - local opts = { - prompt_title = visual and ("Visual-Grep in " .. tmux_session_path) - or ("Live-Grep in " .. tmux_session_path), - shorten_path = false, - cwd = tmux_session_path, - file_ignore_patterns = { ".git", ".png", "tags" }, - initial_mode = "insert", - selection_strategy = "reset", - theme = require("telescope.themes").get_dropdown({}), - } - - if visual then - require("telescope.builtin").grep_string(opts) - else - require("telescope.builtin").live_grep(opts) - end - end - - vim.keymap.set("n", "<leader>flt", function() - search_tmux(false) - end, { remap = true, silent = false, desc = "Live grep in the current tmux session folder" }) - - vim.keymap.set("v", "<leader>flt", function() - search_tmux(true) - end, { remap = true, silent = false, desc = "Grep string in the current tmux session folder" }) - vim.api.nvim_set_keymap( - "v", - "<leader>fls", - 'y<esc>:Telescope live_grep default_text=<c-r>0<cr> search_dirs={"$PWD"}', - { noremap = true, silent = true, desc = "Live grep default text" } - ) - vim.keymap.set("n", "<leader>f/", function() - require("telescope.builtin").current_buffer_fuzzy_find( - require("telescope.themes").get_dropdown({ - winblend = 10, - previewer = false, - relative = "editor", - }) - ) - end, { desc = "Find in current buffer" }) - end, - }, - { - "xiyaowong/telescope-emoji.nvim", - config = function() - require("telescope").setup({ - extensions = { - emoji = { - action = function(emoji) - -- argument emoji is a table. - -- {name="", value="", cagegory="", description=""} - - vim.fn.setreg("*", emoji.value) - print([[Press p or "*p to paste this emoji]] .. emoji.value) - - -- insert emoji when picked - -- vim.api.nvim_put({ emoji.value }, 'c', false, true) - end, - }, - }, - }) - require("telescope").load_extension("emoji") - end, - keys = { - { "<leader>se", ":Telescope emoji<cr>", desc = "Search emoji" }, - }, - }, - { - "nvim-telescope/telescope-bibtex.nvim", - requires = { - { "nvim-telescope/telescope.nvim" }, - }, - config = function() - local bibtex_actions = require("telescope-bibtex.actions") - require("telescope").setup({ - extensions = { - bibtex = { - -- Use context awareness - context = true, - -- Use non-contextual behavior if no context found - -- This setting has no effect if context = false - context_fallback = true, - mappings = { - i = { - ["<CR>"] = bibtex_actions.key_append("%s"), -- format is determined by filetype if the user has not set it explictly - ["<C-e>"] = bibtex_actions.entry_append, - ["<C-a>"] = bibtex_actions.citation_append("{{author}} ({{year}}), {{title}}."), - }, - }, - }, - }, - }) - require("telescope").load_extension("bibtex") - end, - keys = { - { - "<leader>sB", - function() - require("telescope").extensions.bibtex.bibtex() - end, - desc = "Search bibtex", - }, - }, - }, - { - "mzlogin/vim-markdown-toc", - keys = { - { "<leader>tg", "<cmd>GenTocGFM<CR>", desc = "Generate ToC to GFM" }, - { "<leader>tr", "<cmd>GenTocRedcarpet<CR>", desc = "Generate ToC to Redcarpet" }, - { "<leader>tl", "<cmd>GenTocGitLab<CR>", desc = "Generate ToC to Gitlab" }, - { "<leader>tm", "<cmd>GenTocMarked<CR>", desc = "Generate ToC to Marked" }, - }, - }, - { - "ThePrimeagen/harpoon", - branch = "harpoon2", - dependencies = { "nvim-lua/plenary.nvim" }, - }, - { - "folke/trouble.nvim", - }, - }, - init = function() - local wk = require("which-key") - wk.add({ - mode = { "n" }, - { "<leader>f", group = "Find" }, - { "<leader>fp", group = "Private/Public" }, - { "<leader>s", group = "Search" }, - { "<leader>sb", group = "Buffer" }, - }) - end, - config = function() - local actions = require("telescope.actions") - local actions_state = require("telescope.actions.state") - local actions_layout = require("telescope.actions.layout") - local open_with_trouble = require("trouble.sources.telescope").open - local add_to_trouble = require("trouble.sources.telescope").add - - require("telescope").setup({ - defaults = { - mappings = { - i = { - ["<C-a>"] = add_to_trouble, - ["<C-e>"] = actions.complete_tag, - ["<C-g>"] = function(prompt_bufnr) - local selection = actions_state.get_selected_entry() - local dir = vim.fn.fnamemodify(selection.path, ":p:h") - actions.close(prompt_bufnr) - -- Depending on what you want put `cd`, `lcd`, `tcd` - vim.cmd(string.format("silent lcd %s", dir)) - end, - ["<C-u>"] = actions.nop, - ["<C-d>"] = actions.nop, - ["<C-b>"] = actions.nop, - ["<C-f>"] = actions_layout.toggle_preview, - ["<C-j>"] = actions.preview_scrolling_down, - ["<C-k>"] = actions.preview_scrolling_up, - ["<C-h>"] = actions.preview_scrolling_left, - ["<C-l>"] = actions.preview_scrolling_right, - ["<C-q>"] = actions.send_to_qflist + actions.open_qflist, - ["<M-q>"] = actions.send_selected_to_qflist + actions.open_qflist, - ["<C-t>"] = open_with_trouble, - ["<C-z>"] = actions.select_horizontal, - ["<C-w>"] = { "<c-s-w>", type = "command" }, - ["<C-o><C-w>"] = actions.insert_original_cword, - ["<C-o><C-a>"] = actions.insert_original_cWORD, - ["<C-o><C-f>"] = actions.insert_original_cfile, - ["<C-o><C-l>"] = actions.insert_original_cline, - ["<M-f>"] = actions.nop, - ["<M-k>"] = actions.nop, - }, - n = { - ["q"] = actions.close, - ["<C-a>"] = add_to_trouble, - ["<C-c>"] = actions.close, - ["<C-d>"] = actions.nop, - ["<C-u>"] = actions.nop, - ["<C-f>"] = actions_layout.toggle_preview, - ["<C-b>"] = actions.nop, - ["<C-e>"] = actions.complete_tag, - ["<C-g>"] = { - function(prompt_bufnr) - local selection = actions_state.get_selected_entry() - local dir = vim.fn.fnamemodify(selection.path, ":p:h") - actions.close(prompt_bufnr) - -- Depending on what you want put `cd`, `lcd`, `tcd` - vim.cmd(string.format("silent lcd %s", dir)) - end, - opts = { desc = "Change directory" }, - }, - ["<C-j>"] = actions.preview_scrolling_down, - ["<C-k>"] = actions.preview_scrolling_up, - ["<C-h>"] = actions.preview_scrolling_left, - ["<C-l>"] = actions.preview_scrolling_right, - ["<C-q>"] = actions.send_to_qflist + actions.open_qflist, - ["<M-q>"] = actions.send_selected_to_qflist + actions.open_qflist, - ["<C-t>"] = open_with_trouble, - ["<C-z>"] = actions.select_horizontal, - ["<M-f"] = actions.nop, - ["<M-k"] = actions.nop, - }, - }, - file_ignore_patterns = { - "node_modules", - "yarn.lock", - ".git", - "^.git/", - "%/bin/zsh/", - ".sl", - "_build", - ".next", - "LICENSE", - "%lock%.json", - }, - find_command = { - "rg", - "--files", - "--follow", - "--hidden", - "--no-ignore", - "--sortr=modified", - }, - hidden = true, - path_display = { - "filename_first", - }, - git_worktrees = { - { - home = vim.env.HOME, - private = vim.env.HOME .. "/Private/repos", - public = vim.env.HOME .. "/Public/repos", - }, - }, - results_title = vim.fn.fnamemodify(vim.uv.cwd(), ":~"), - scroll_strategy = "limit", - }, - pickers = { - buffers = { - mappings = { - i = { - ["<C-x>"] = actions.delete_buffer, - }, - n = { - ["dd"] = actions.delete_buffer, - ["<C-x>"] = actions.delete_buffer, - }, - }, - }, - find_files = { - -- `hidden = true` will still show the inside of `.git/` as it's not `.gitignore`d. - find_command = { - "rg", - "--files", - "--follow", - "--hidden", - "--sortr=modified", - }, - }, - }, - }) - - -- find - vim.keymap.set({ "i", "n" }, "<C-g>", function() - require("telescope.builtin").buffers({ - sort_mru = true, - sort_lastused = true, - initial_mode = "normal", - }) - end, { desc = "Find buffer files" }) - vim.keymap.set("n", "<leader>fb", function() - require("telescope.builtin").buffers({ - sort_mru = true, - sort_lastused = true, - initial_mode = "normal", - }) - end, { desc = "Find buffer files" }) - vim.keymap.set("n", "<leader>fc", function() - require("telescope.builtin").find_files({ cwd = vim.fn.expand("~/.config") }) - end, { desc = "Find config files" }) - vim.keymap.set("n", "<leader>fd", function() - require("telescope.builtin").find_files({ cwd = vim.fn.expand("~/.dotfiles") }) - end, { desc = "Find dotfiles files" }) - vim.keymap.set("n", "<leader>ff", function() - require("telescope.builtin").find_files() - end, { desc = "Find files" }) - vim.keymap.set("n", "<leader>f<leader>", function() - local pickers = require("telescope.pickers") - local finders = require("telescope.finders") - local sorters = require("telescope.config").values.generic_sorter - local previewers = require("telescope.previewers") - local entry_display = require("telescope.pickers.entry_display") - - -- Get list of open buffers - local opened_files = {} - for _, buf in ipairs(vim.api.nvim_list_bufs()) do - if vim.api.nvim_buf_is_loaded(buf) then - local name = vim.api.nvim_buf_get_name(buf) - if name ~= "" then - opened_files[name] = true - end - end - end - - -- Create the custom picker - pickers - .new({}, { - prompt_title = "Find Files", - finder = finders.new_oneshot_job({ "fd", "--type", "f" }, { - entry_maker = function(entry) - local is_open = opened_files[vim.fn.fnamemodify(entry, ":p")] -- Match absolute paths - local displayer = entry_display.create({ - separator = " ", - items = { - { width = 1 }, -- Marker width - { remaining = true }, -- Filepath - }, - }) - - return { - value = entry, - ordinal = entry, - display = function() - return displayer({ is_open and "*" or " ", entry }) - end, - path = entry, - } - end, - }), - sorter = sorters({}), - previewer = previewers.vim_buffer_cat.new({}), - }) - :find() - end, { desc = "Find files with open markers" }) - - vim.keymap.set("n", "<leader>fF", function() - require("telescope.builtin").find_files({ - cwd = vim.fn.expand("~"), - find_command = { - "rg", - "--files", - "--follow", - "--hidden", - "--glob", - "!**/.cache/*/*/*", - "--glob", - "!**/.mozilla/*", - "--glob", - "!**/.local/lib/*/*", - "--glob", - "!**/.local/share/*/*", - "--glob", - "!**/.local/state/*/*/*/*", - "--sortr=modified", - }, - }) - end, { desc = "Find root files" }) - vim.keymap.set("n", "<leader>fk", function() - require("telescope.builtin").find_files({ - cwd = vim.fn.expand("~/.local/src/suckless/"), - find_command = { - "find", - "-maxdepth", - "2", - "-type", - "f", - "-name", - ".git", - "-prune", - "-o", - }, - }) - end, { desc = "Find suckless files" }) - vim.keymap.set("n", "<leader>fg", function() - require("telescope.builtin").git_files() - end, { desc = "Find git files" }) - vim.keymap.set("n", "<leader>fo", function() - require("telescope.builtin").oldfiles({}) - end, { desc = "Find old files" }) - vim.keymap.set("n", "<leader>fpv", function() - require("telescope.builtin").find_files({ cwd = vim.fn.expand("~/Private") }) - end, { desc = "Find private files" }) - vim.keymap.set("n", "<leader>fpb", function() - require("telescope.builtin").find_files({ cwd = vim.fn.expand("~/Public") }) - end, { desc = "Find public files" }) - vim.keymap.set("n", "<leader>fa", function() - require("telescope.builtin").find_files({ - cwd = vim.fn.expand("~/.local/bin"), - }) - end, { desc = "Find script files" }) - vim.keymap.set("n", "<leader>fv", function() - require("telescope.builtin").find_files({ - cwd = vim.fn.stdpath("config"), - find_command = { "fd", "--type", "f", "--follow", "--color", "never", "--extension", "lua" }, - }) - end, { desc = "Find neovim config files" }) - vim.keymap.set("n", "<leader>fV", function() - require("telescope.builtin").find_files({ - cwd = vim.fn.stdpath("data"), - find_command = { - "find", - "-maxdepth", - "2", - "-type", - "d", - "-iname", - ".git", - "-prune", - "-o", - }, - attach_mappings = function(_, map) - map("i", "<CR>", find_nvim_plugin_files) - map("n", "<CR>", find_nvim_plugin_files) - return true - end, - }) - end, { desc = "Find neovim plugin files" }) - -- git - vim.keymap.set("n", "<leader>gc", function() - require("telescope.builtin").git_commits() - end, { desc = "Find git commits" }) - vim.keymap.set("n", "<leader>gC", function() - require("telescope.builtin").git_bcommits() - end, { desc = "Find buffer git commits" }) - vim.keymap.set("n", "<leader>gb", function() - require("telescope.builtin").git_branches() - end, { desc = "Find branches" }) - vim.keymap.set("n", "<leader>gl", function() - require("telescope.builtin").git_bcommits_range() - end, { desc = "Find lines git commits" }) - vim.keymap.set("v", "<leader>gl", function() - require("telescope.builtin").git_bcommits_range() - end, { desc = "Find lines git commits" }) - vim.keymap.set("n", "<leader>gs", function() - require("telescope.builtin").git_status() - end, { desc = "Find git status" }) - vim.keymap.set("n", "<leader>gS", function() - require("telescope.builtin").git_stash() - end, { desc = "Find git stash" }) - -- lsp - vim.keymap.set("n", "gd", function() - require("telescope.builtin").lsp_definitions({}) - end, { desc = "Find definitions" }) - vim.keymap.set("n", "gR", function() - require("telescope.builtin").lsp_references({}) - end, { desc = "Find references" }) - -- search - vim.keymap.set("n", "<leader>cc", function() - require("telescope.builtin").colorscheme({}) - end, { desc = "Search color scheme" }) - vim.keymap.set("n", "<leader>sa", function() - require("telescope.builtin").autocommands({}) - end, { desc = "Search auto commands" }) - vim.keymap.set("n", "<leader>sb", function() - require("telescope.builtin").current_buffer_fuzzy_find({}) - end, { desc = "Search current buffers " }) - vim.keymap.set("n", "<leader>st", function() - require("telescope.builtin").current_buffer_tags({}) - end, { desc = "Search current buffer tags" }) - vim.keymap.set("n", "<leader>sc", function() - require("telescope.builtin").commands({}) - end, { desc = "Search commands" }) - vim.keymap.set("n", "<leader>sC", function() - require("telescope.builtin").command_history({}) - end, { desc = "Search history" }) - vim.keymap.set("n", "<leader>sd", function() - require("telescope.builtin").diagnostics({}) - end, { desc = "Search diagonostics" }) - vim.keymap.set("n", "<leader>sg", vim.live_grep_from_project_git_root, { desc = "Live grep (git)" }) - vim.keymap.set("n", "<leader>sh", function() - require("telescope.builtin").help_tags({}) - end, { desc = "Search help tags" }) - vim.keymap.set("n", "<leader>sH", function() - require("telescope.builtin").highlights({}) - end, { desc = "Search highlights" }) - vim.keymap.set("n", "<leader>sj", function() - require("telescope.builtin").jumplist({}) - end, { desc = "Search jump list" }) - vim.keymap.set("n", "<leader>skb", function() - require("telescope.builtin").keymaps({}) - end, { desc = "Search key bindings" }) - vim.keymap.set("n", "<leader>skk", function() - local word = vim.fn.expand("<cword>") - require("telescope.builtin").grep_string({ search = word }) - end, { desc = "Search words under cursor" }) - vim.keymap.set("n", "<leader>skK", function() - local word = vim.fn.expand("<cWORD>") - require("telescope.builtin").grep_string({ search = word }) - end, { desc = "Search all words under cursor" }) - vim.keymap.set("n", "<leader>sl", function() - require("telescope.builtin").loclist({}) - end, { desc = "Search location list" }) - vim.keymap.set("n", "<leader>s'", function() - require("telescope.builtin").marks({}) - end, { desc = "Search marks" }) - vim.keymap.set("n", "<leader>sM", function() - require("telescope.builtin").man_pages({}) - end, { desc = "Search man pages" }) - vim.keymap.set("n", "<leader>so", function() - require("telescope.builtin").vim_options({}) - end, { desc = "Search vim options" }) - vim.keymap.set("n", "<leader>sq", function() - require("telescope.builtin").quickfix({}) - end, { desc = "Search quickfix list" }) - vim.keymap.set("n", "<leader>sQ", function() - require("telescope.builtin").quickfixhistory({}) - end, { desc = "Search quickfix history" }) - vim.keymap.set("n", '<leader>s"', function() - require("telescope.builtin").registers({}) - end, { desc = "Search registers" }) - vim.keymap.set("n", "<leader>sr", function() - require("telescope.builtin").resume({}) - end, { desc = "Search resume" }) - vim.keymap.set("n", "<leader>sf", function() - require("telescope.builtin").filetypes({}) - end, { desc = "Search file types" }) - vim.keymap.set("n", "<leader>sw", function() - require("telescope.builtin").live_grep({}) - end, { desc = "Search word (Live grep)" }) - vim.keymap.set("n", "<leader>sW", function() - require("telescope.builtin").grep_string({}) - end, { desc = "Search word (Grep)" }) - end, - }, - { - "cljoly/telescope-repo.nvim", - dependencies = { - "nvim-lua/plenary.nvim", - "nvim-telescope/telescope.nvim", - }, - config = function() - require("telescope").setup({ - extensions = { - repo = { - list = { - fd_opts = { - "--no-ignore-vcs", - }, - file_ignore_patterns = { - "^" .. vim.env.HOME .. "/%.cache/", - "^" .. vim.env.HOME .. "/%.cargo/", - }, - }, - }, - }, - }) - - require("telescope").load_extension("repo") - end, - keys = { - { mode = "n", "<leader>fG", "<cmd>Telescope repo list<cr>", desc = "Find git files (repo)" }, - }, - }, - { - "debugloop/telescope-undo.nvim", - dependencies = { -- note how they're inverted to above example - { - "nvim-telescope/telescope.nvim", - dependencies = { "nvim-lua/plenary.nvim" }, - }, - }, - opts = { - -- don't use `defaults = { }` here, do this in the main telescope spec - extensions = { - undo = { - -- telescope-undo.nvim config, see below - }, - -- no other extensions here, they can have their own spec too - }, - }, - config = function(_, opts) - -- Calling telescope's setup from multiple specs does not hurt, it will happily merge the - -- configs for us. We won't use data, as everything is in it's own namespace (telescope - -- defaults, as well as each extension). - require("telescope").setup(opts) - require("telescope").load_extension("undo") - end, - keys = { - { -- lazy style key map - "<leader>fu", - "<cmd>Telescope undo<cr>", - desc = "Find undo history", - }, - }, - }, - { - "nvim-telescope/telescope-frecency.nvim", - dependencies = { - "nvim-lua/plenary.nvim", - "nvim-telescope/telescope.nvim", - }, - config = function() - require("telescope").setup({ - extensions = { - frecency = { - auto_validate = false, - matcher = "fuzzy", - }, - }, - }) - - require("telescope").load_extension("frecency") - - vim.keymap.set("n", "<leader>fq", function() - require("telescope").extensions.frecency.frecency({ - workspace = "CWD", - }) - end, { desc = "Find frequency files" }) - - vim.keymap.set("n", "<leader>flq", function() - local frecency = require("telescope").extensions.frecency - require("telescope.builtin").live_grep({ - search_dirs = frecency.query({}), - }) - end, { desc = "Find frequency live grep" }) - - vim.keymap.set("n", "<leader>qd", "<cmd>FrecencyDelete<cr>", { desc = "Delete current buffer frequency" }) - end, - }, - { - "nvim-telescope/telescope-media-files.nvim", - dependencies = { - "nvim-lua/popup.nvim", - "nvim-lua/plenary.nvim", - "nvim-telescope/telescope.nvim", - }, - config = function() - require("telescope").setup({ - extensions = { - media_files = { - -- filetypes whitelist - -- defaults to {"png", "jpg", "mp4", "webm", "pdf"} - filetypes = { "png", "jpg", "mp4", "mkv", "webm", "pdf" }, - -- find command (defaults to `fd`) - find_cmd = "rg", - }, - }, - }) - require("telescope").load_extension("media_files") - end, - keys = { - { - "<leader>fm", - "<cmd>Telescope media_files<cr>", - desc = "Find media files", - }, - }, - }, - { - "nvim-telescope/telescope-project.nvim", - dependencies = { - "nvim-telescope/telescope.nvim", - "nvim-telescope/telescope-file-browser.nvim", - }, - config = function() - local project_actions = require("telescope._extensions.project.actions") - require("telescope").setup({ - extensions = { - project = { - base_dirs = { - { path = "~/Private", max_depth = 2 }, - { path = "~/Public", max_depth = 2 }, - }, - mappings = { - i = { - ["<C-x>"] = project_actions.delete_project, - ["<C-r>"] = project_actions.rename_project, - ["<C-a>"] = project_actions.add_project, - ["<C-A>"] = project_actions.add_project_cwd, - ["<C-f>"] = project_actions.find_project_files, - ["<C-b>"] = project_actions.browse_project_files, - ["<C-s>"] = project_actions.search_in_project_files, - ["<C-o>"] = project_actions.recent_project_files, - ["<C-g>"] = project_actions.change_working_directory, - ["<C-l>"] = project_actions.next_cd_scope, - ["<C-w>"] = project_actions.change_workspace, - }, - n = { - ["x"] = project_actions.delete_project, - ["r"] = project_actions.rename_project, - ["c"] = project_actions.add_project, - ["C"] = project_actions.add_project_cwd, - ["f"] = project_actions.find_project_files, - ["b"] = project_actions.browse_project_files, - ["s"] = project_actions.search_in_project_files, - ["o"] = project_actions.recent_project_files, - ["g"] = project_actions.change_working_directory, - ["l"] = project_actions.next_cd_scope, - }, - }, - }, - }, - }) - require("telescope").load_extension("project") - end, - keys = { - { - "<leader>fpj", - "<cmd>Telescope projects<cr>", - desc = "Find projects", - }, - }, - }, -} |
