local M = {} local Log = require "core.log" M.config = function() local status_ok, actions = pcall(require, "telescope.actions") if not status_ok then return end options.builtin.telescope = { active = false, defaults = { find_command = { "rg", "--no-heading", "--with-filename", "--line-number", "--column", "--smart-case", }, prompt_prefix = " ", selection_caret = " ", entry_prefix = " ", initial_mode = "insert", selection_strategy = "reset", sorting_strategy = "ascending", layout_strategy = "horizontal", layout_config = { width = 0.75, prompt_position = "top", 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"}, winblend = 0, border = {}, borderchars = { "─", "│", "─", "│", "╭", "╮", "╯", "╰" }, color_devicons = true, use_less = true, set_env = { ["CoptionsLoptionsRTERM"] = "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 = { -- [""] = actions.cycle_history_next, -- [""] = actions.cycle_history_prev, [""] = actions.close, [""] = actions.move_selection_next, [""] = actions.move_selection_previous, [""] = actions.smart_send_to_qflist + actions.open_qflist, [""] = actions.select_default + actions.center, -- To disable a keymap, put [map] = false -- So, to not map "", just put -- [""] = trouble.open_with_trouble, -- [""] = false, -- [""] = actions.close, -- optionstherwise, just set the mapping to the function that you want it to be. -- [""] = actions.select_horizontal, -- Add up multiple actions -- You can perform as many actions in a row as you like -- [""] = actions.select_default + actions.center + my_cool_custom_action, }, n = { [""] = actions.move_selection_next, [""] = actions.move_selection_previous, [""] = actions.smart_send_to_qflist + actions.open_qflist, -- [""] = trouble.open_with_trouble, -- [""] = my_cool_custom_action, }, }, }, extensions = { fzy_native = { override_generic_sorter = false, override_file_sorter = true, }, }, } end M.setup = function() local status_ok, telescope = pcall(require, "telescope") if not status_ok then Log:get_default().error "Failed to load telescope" return end telescope.setup(options.builtin.telescope) end return M