123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124 |
- local M = {}
- function M.config()
- local status_ok, actions = pcall(require, "telescope.actions")
- if not status_ok then
- return
- end
- lvim.builtin.telescope = {
- ---@usage disable telescope completely [not recommeded]
- active = true,
- defaults = {
- prompt_prefix = " ",
- selection_caret = " ",
- entry_prefix = " ",
- initial_mode = "insert",
- selection_strategy = "reset",
- sorting_strategy = "descending",
- layout_strategy = "horizontal",
- layout_config = {
- width = 0.75,
- prompt_position = "bottom",
- preview_cutoff = 120,
- horizontal = { mirror = false },
- vertical = { mirror = false },
- },
- file_sorter = require("telescope.sorters").get_fzy_sorter,
- file_ignore_patterns = {},
- generic_sorter = require("telescope.sorters").get_generic_fuzzy_sorter,
- path_display = { shorten = 5 },
- winblend = 0,
- border = {},
- borderchars = { "─", "│", "─", "│", "╭", "╮", "╯", "╰" },
- color_devicons = true,
- use_less = true,
- set_env = { ["COLORTERM"] = "truecolor" }, -- default = nil,
- file_previewer = require("telescope.previewers").vim_buffer_cat.new,
- grep_previewer = require("telescope.previewers").vim_buffer_vimgrep.new,
- qflist_previewer = require("telescope.previewers").vim_buffer_qflist.new,
- -- Developer configurations: Not meant for general override
- -- buffer_previewer_maker = require("telescope.previewers").buffer_previewer_maker,
- mappings = {
- i = {
- ["<C-n>"] = actions.move_selection_next,
- ["<C-p>"] = actions.move_selection_previous,
- ["<C-c>"] = actions.close,
- ["<C-j>"] = actions.cycle_history_next,
- ["<C-k>"] = actions.cycle_history_prev,
- ["<C-q>"] = actions.smart_send_to_qflist + actions.open_qflist,
- ["<CR>"] = actions.select_default + actions.center,
- -- To disable a keymap, put [map] = false
- -- So, to not map "<C-n>", just put
- -- ["<c-t>"] = trouble.open_with_trouble,
- -- ["<c-x>"] = false,
- -- ["<esc>"] = actions.close,
- -- Otherwise, just set the mapping to the function that you want it to be.
- -- ["<C-i>"] = actions.select_horizontal,
- -- Add up multiple actions
- -- You can perform as many actions in a row as you like
- -- ["<CR>"] = actions.select_default + actions.center + my_cool_custom_action,
- },
- n = {
- ["<C-n>"] = actions.move_selection_next,
- ["<C-p>"] = actions.move_selection_previous,
- ["<C-q>"] = actions.smart_send_to_qflist + actions.open_qflist,
- -- ["<c-t>"] = trouble.open_with_trouble,
- -- ["<C-i>"] = my_cool_custom_action,
- },
- },
- },
- extensions = {
- fzy_native = {
- override_generic_sorter = false,
- override_file_sorter = true,
- },
- },
- }
- end
- function M.find_lunarvim_files(opts)
- opts = opts or {}
- local themes = require "telescope.themes"
- local theme_opts = themes.get_ivy {
- previewer = false,
- sorting_strategy = "ascending",
- layout_strategy = "bottom_pane",
- layout_config = {
- height = 5,
- width = 0.5,
- },
- prompt = ">> ",
- prompt_title = "~ LunarVim files ~",
- cwd = CONFIG_PATH,
- find_command = { "git", "ls-files" },
- }
- opts = vim.tbl_deep_extend("force", theme_opts, opts)
- require("telescope.builtin").find_files(opts)
- end
- function M.grep_lunarvim_files(opts)
- opts = opts or {}
- local themes = require "telescope.themes"
- local theme_opts = themes.get_ivy {
- sorting_strategy = "ascending",
- layout_strategy = "bottom_pane",
- prompt = ">> ",
- prompt_title = "~ search LunarVim ~",
- cwd = CONFIG_PATH,
- }
- opts = vim.tbl_deep_extend("force", theme_opts, opts)
- require("telescope.builtin").live_grep(opts)
- end
- function M.setup()
- local status_ok, telescope = pcall(require, "telescope")
- if not status_ok then
- local Log = require "core.log"
- Log:get_default().error "Failed to load telescope"
- return
- end
- telescope.setup(lvim.builtin.telescope)
- end
- return M
|