diff options
Diffstat (limited to 'lua/lvim/core/telescope.lua')
-rw-r--r-- | lua/lvim/core/telescope.lua | 178 |
1 files changed, 90 insertions, 88 deletions
diff --git a/lua/lvim/core/telescope.lua b/lua/lvim/core/telescope.lua index 74163b6c..332a0f50 100644 --- a/lua/lvim/core/telescope.lua +++ b/lua/lvim/core/telescope.lua @@ -10,97 +10,99 @@ function M.config() local actions = require("lvim.utils.modules").require_on_exported_call "telescope.actions" local config = { theme = "dropdown", ---@type telescope_themes - defaults = { - prompt_prefix = lvim.icons.ui.Telescope .. " ", - selection_caret = lvim.icons.ui.Forward .. " ", - entry_prefix = " ", - initial_mode = "insert", - selection_strategy = "reset", - sorting_strategy = nil, - layout_strategy = nil, - layout_config = {}, - vimgrep_arguments = { - "rg", - "--color=never", - "--no-heading", - "--with-filename", - "--line-number", - "--column", - "--smart-case", - "--hidden", - "--glob=!.git/", - }, - ---@usage Mappings are fully customizable. Many familiar mapping patterns are setup as defaults. - 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>"] = function(...) - actions.smart_send_to_qflist(...) - actions.open_qflist(...) - end, - ["<CR>"] = actions.select_default, - }, - n = { - ["<C-n>"] = actions.move_selection_next, - ["<C-p>"] = actions.move_selection_previous, - ["<C-q>"] = function(...) - actions.smart_send_to_qflist(...) - actions.open_qflist(...) - end, + opts = { + defaults = { + prompt_prefix = lvim.icons.ui.Telescope .. " ", + selection_caret = lvim.icons.ui.Forward .. " ", + entry_prefix = " ", + initial_mode = "insert", + selection_strategy = "reset", + sorting_strategy = nil, + layout_strategy = nil, + layout_config = {}, + vimgrep_arguments = { + "rg", + "--color=never", + "--no-heading", + "--with-filename", + "--line-number", + "--column", + "--smart-case", + "--hidden", + "--glob=!.git/", }, - }, - file_ignore_patterns = {}, - path_display = { "smart" }, - winblend = 0, - border = {}, - borderchars = nil, - color_devicons = true, - set_env = { ["COLORTERM"] = "truecolor" }, -- default = nil, - }, - pickers = { - find_files = { - hidden = true, - }, - live_grep = { - --@usage don't include the filename in the search results - only_sort_text = true, - }, - grep_string = { - only_sort_text = true, - }, - buffers = { - initial_mode = "normal", + ---@usage Mappings are fully customizable. Many familiar mapping patterns are setup as defaults. mappings = { i = { - ["<C-d>"] = actions.delete_buffer, + ["<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>"] = function(...) + actions.smart_send_to_qflist(...) + actions.open_qflist(...) + end, + ["<CR>"] = actions.select_default, }, n = { - ["dd"] = actions.delete_buffer, + ["<C-n>"] = actions.move_selection_next, + ["<C-p>"] = actions.move_selection_previous, + ["<C-q>"] = function(...) + actions.smart_send_to_qflist(...) + actions.open_qflist(...) + end, }, }, + file_ignore_patterns = {}, + path_display = { "smart" }, + winblend = 0, + border = {}, + borderchars = nil, + color_devicons = true, + set_env = { ["COLORTERM"] = "truecolor" }, -- default = nil, }, - planets = { - show_pluto = true, - show_moon = true, - }, - git_files = { - hidden = true, - show_untracked = true, - }, - colorscheme = { - enable_preview = true, + pickers = { + find_files = { + hidden = true, + }, + live_grep = { + --@usage don't include the filename in the search results + only_sort_text = true, + }, + grep_string = { + only_sort_text = true, + }, + buffers = { + initial_mode = "normal", + mappings = { + i = { + ["<C-d>"] = actions.delete_buffer, + }, + n = { + ["dd"] = actions.delete_buffer, + }, + }, + }, + planets = { + show_pluto = true, + show_moon = true, + }, + git_files = { + hidden = true, + show_untracked = true, + }, + colorscheme = { + enable_preview = true, + }, }, - }, - extensions = { - fzf = { - fuzzy = true, -- false will only do exact matching - override_generic_sorter = true, -- override the generic sorter - override_file_sorter = true, -- override the file sorter - case_mode = "smart_case", -- or "ignore_case" or "respect_case" + extensions = { + fzf = { + fuzzy = true, -- false will only do exact matching + override_generic_sorter = true, -- override the generic sorter + override_file_sorter = true, -- override the file sorter + case_mode = "smart_case", -- or "ignore_case" or "respect_case" + }, }, }, } @@ -113,22 +115,22 @@ function M.setup() local previewers = require "telescope.previewers" local sorters = require "telescope.sorters" - lvim.builtin.telescope = vim.tbl_extend("keep", { + lvim.builtin.telescope.opts = vim.tbl_extend("keep", { file_previewer = previewers.vim_buffer_cat.new, grep_previewer = previewers.vim_buffer_vimgrep.new, qflist_previewer = previewers.vim_buffer_qflist.new, file_sorter = sorters.get_fuzzy_file, generic_sorter = sorters.get_generic_fuzzy_sorter, - }, lvim.builtin.telescope) + }, lvim.builtin.telescope.opts) local telescope = require "telescope" - local theme = require("telescope.themes")["get_" .. (lvim.builtin.telescope.theme or "")] + local theme = require("telescope.themes")["get_" .. (lvim.builtin.telescope.opts.theme or "")] if theme then - lvim.builtin.telescope.defaults = theme(lvim.builtin.telescope.defaults) + lvim.builtin.telescope.opts.defaults = theme(lvim.builtin.telescope.opts.defaults) end - telescope.setup(lvim.builtin.telescope) + telescope.setup(lvim.builtin.telescope.setup) if lvim.builtin.project.active then pcall(function() @@ -136,7 +138,7 @@ function M.setup() end) end - if lvim.builtin.telescope.extensions and lvim.builtin.telescope.extensions.fzf then + if lvim.builtin.telescope.setup.extensions and lvim.builtin.telescope.setup.extensions.fzf then pcall(function() require("telescope").load_extension "fzf" end) |