telescope.lua (3524B)
1 ---@diagnostic disable: undefined-global 2 return { 3 "nvim-telescope/telescope.nvim", 4 dependencies = { 5 "nvim-lua/plenary.nvim", 6 "nvim-lua/popup.nvim", 7 "nvim-telescope/telescope-fzy-native.nvim", 8 }, 9 10 config = function() 11 local previewers = require("telescope.previewers") 12 local _bad = { ".*%.tex", ".*%.md", ".*%.html" } 13 local bad_files = function(filepath) 14 for _, v in ipairs(_bad) do 15 if filepath:match(v) then 16 return false 17 end 18 end 19 return true 20 end 21 local new_maker = function(filepath, bufnr, opts) 22 opts = opts or {} 23 if opts.use_ft_detect == nil then opts.use_ft_detect = true end 24 opts.use_ft_detect = opts.use_ft_detect == false and false or bad_files(filepath) 25 previewers.buffer_previewer_maker(filepath, bufnr, opts) 26 end 27 28 29 local edge_borders = { 30 prompt = { "─", "│", "─", "│", "┌", "┐", "┘", "└" }, 31 results = { "─", "│", "─", "│", "┌", "┐", "┘", "└" }, 32 preview = { "─", "│", "─", "│", "┌", "┐", "┘", "└" }, 33 } 34 35 36 require("telescope").setup { 37 defaults = 38 vim.tbl_extend( 39 "force", 40 require("telescope.themes").get_dropdown({}), 41 { 42 borderchars = edge_borders, 43 layout_strategy = "horizontal", 44 layout_config = { 45 horizontal = { 46 prompt_position = "top", 47 preview_width = 0.55, 48 results_width = 0.8, 49 }, 50 }, 51 } 52 ), 53 extentions = { 54 fzf = {} 55 } 56 } 57 58 local builtin = require('telescope.builtin') 59 require('telescope').load_extension('fzy_native') 60 61 vim.keymap.set('n', '<leader>ff', builtin.find_files, {}) 62 vim.keymap.set('n', '<leader>fg', builtin.live_grep, {}) 63 vim.keymap.set('n', '<leader>fb', builtin.buffers, {}) 64 vim.keymap.set('n', '<leader>fh', builtin.help_tags, {}) 65 66 vim.api.nvim_create_user_command( 67 'FindConfig', 68 function() 69 builtin.find_files({ 70 search_dirs = { 71 os.getenv("XDG_CONFIG_HOME") .. "/nvim/lua", 72 os.getenv("XDG_CONFIG_HOME") .. "/nvim/after", 73 os.getenv("XDG_CONFIG_HOME") .. "/zsh", 74 os.getenv("XDG_CONFIG_HOME") .. "/shell", 75 os.getenv("XDG_CONFIG_HOME") .. "/X", 76 os.getenv("XDG_CONFIG_HOME") .. "/X11", 77 os.getenv("XDG_LOCAL_HOME") .. "/src", 78 os.getenv("XDG_LOCAL_HOME") .. "/bin", 79 os.getenv("XDG_DOTFILES"), 80 }, 81 hidden = true, 82 }) 83 end, 84 {} 85 ) 86 vim.keymap.set('n', '<leader>lf', ":FindConfig<CR>") 87 88 vim.api.nvim_create_user_command( 89 'GrepConfig', 90 function() 91 builtin.live_grep({ 92 search_dirs = { 93 os.getenv("XDG_CONFIG_HOME") .. "/nvim/lua", 94 os.getenv("XDG_CONFIG_HOME") .. "/nvim/after", 95 os.getenv("XDG_CONFIG_HOME") .. "/zsh", 96 os.getenv("XDG_CONFIG_HOME") .. "/shell", 97 os.getenv("XDG_CONFIG_HOME") .. "/X", 98 os.getenv("XDG_CONFIG_HOME") .. "/X11", 99 os.getenv("XDG_LOCAL_HOME") .. "/src", 100 os.getenv("XDG_LOCAL_HOME") .. "/bin", 101 os.getenv("XDG_DOTFILES"), 102 }, 103 hidden = true, 104 }) 105 end, 106 {} 107 ) 108 vim.keymap.set('n', '<leader>lg', ":GrepConfig<CR>") 109 110 vim.keymap.set('n', '<C-s>', builtin.spell_suggest, {}) 111 end 112 }