dotfiles

My personal shell configs and stuff
git clone git://git.alex.balgavy.eu/dotfiles.git
Log | Files | Refs | Submodules | README | LICENSE

telescope.lua (2940B)


      1 -- Fuzzy Finder (files, lsp, etc)
      2 local configure_telescope = function()
      3   require('telescope').setup {
      4     defaults = {
      5       mappings = {
      6         i = {
      7           ['<C-u>'] = false,
      8           ['<C-d>'] = false,
      9         },
     10       },
     11     },
     12   }
     13   -- Call this after telescope's setup
     14   pcall(require('telescope').load_extension, 'fzf')
     15 
     16   -- Disable folding in Telescope's result window.
     17   vim.api.nvim_create_autocmd("FileType",
     18     { pattern = "TelescopeResults", command = [[setlocal nofoldenable foldlevelstart=99]] })
     19 
     20   local map = function(keys, desc, func, mode)
     21     mode = mode or 'n'
     22     vim.keymap.set(mode, keys, func, { desc = desc })
     23   end
     24   local tsbuiltin = require 'telescope.builtin'
     25 
     26   map('<leader>sp', '[S]earch [p]reviously opened files', require('telescope.builtin').oldfiles)
     27   map('<leader>b', 'Find existing buffers', require('telescope.builtin').buffers)
     28   map('<leader>sf', '[S]earch [F]iles', require('telescope.builtin').find_files)
     29   map('<leader>cv', 'Neovim configs',
     30     function() require('telescope.builtin').find_files({ cwd = vim.env.DOTFILES .. '/nvim' }) end)
     31   map('<leader>sh', '[S]earch [H]elp', require('telescope.builtin').help_tags)
     32   map('<leader>sw', '[S]earch current [W]ord', require('telescope.builtin').grep_string)
     33   map('<leader>sg', '[S]earch by [G]rep', require('telescope.builtin').live_grep)
     34   map('<leader>sd', '[S]earch [D]iagnostics', require('telescope.builtin').diagnostics)
     35   map('<leader>sr', '[S]earch [R]eferences', require('telescope.builtin').lsp_references)
     36   map('<leader>s<', '[S]earch [I]ncoming calls', require('telescope.builtin').lsp_incoming_calls)
     37   map('<leader>s>', '[S]earch [O]utgoing calls', require('telescope.builtin').lsp_outgoing_calls)
     38   map('<leader>st', '[Search] [T]his buffer', require('telescope.builtin').current_buffer_fuzzy_find)
     39   map('<leader>sI', '[S]earch [i]mplementations', require('telescope.builtin').lsp_implementations)
     40   map('<leader>sj', '[S]earch [J]umplist', require('telescope.builtin').jumplist)
     41   map('<leader>ss', '[S]earch [S]ymbols', function()
     42     local server_ready = not not vim.lsp.buf_notify(0, '$/progress', {})
     43     if server_ready then
     44       require('telescope.builtin').lsp_dynamic_workspace_symbols()
     45     else
     46       require('telescope.builtin').treesitter()
     47     end
     48   end)
     49   map('<leader>sb', 'Telescope [T]ags', function()
     50     local server_ready = not not vim.lsp.buf_notify(0, '$/progress', {})
     51     if server_ready then
     52       require('telescope.builtin').lsp_document_symbols()
     53     else
     54       require('telescope.builtin').tags()
     55     end
     56   end)
     57 end
     58 
     59 return {
     60   {
     61     'nvim-telescope/telescope.nvim',
     62     dependencies = { 'nvim-lua/plenary.nvim' },
     63     config = configure_telescope,
     64   },
     65   -- Fuzzy Finder Algorithm which requires local dependencies to be built. Only load if `make` is available
     66   {
     67     'nvim-telescope/telescope-fzf-native.nvim',
     68     build = 'make',
     69     cond = vim.fn.executable 'make' == 1
     70   },
     71 
     72 }