config.nvim

NeoVim config
git clone git://popovic.xyz/nvim.config.git/
Log | Files | Refs

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 }