summaryrefslogtreecommitdiff
path: root/.config/nvim/lua/plugins/telescope.lua
diff options
context:
space:
mode:
Diffstat (limited to '.config/nvim/lua/plugins/telescope.lua')
-rw-r--r--.config/nvim/lua/plugins/telescope.lua48
1 files changed, 48 insertions, 0 deletions
diff --git a/.config/nvim/lua/plugins/telescope.lua b/.config/nvim/lua/plugins/telescope.lua
new file mode 100644
index 0000000..4d8e86c
--- /dev/null
+++ b/.config/nvim/lua/plugins/telescope.lua
@@ -0,0 +1,48 @@
+return {
+ 'nvim-telescope/telescope.nvim',
+ dependencies = {
+ { 'nvim-lua/plenary.nvim' },
+ { 'nvim-telescope/telescope-fzf-native.nvim', build = 'make' },
+ { 'nvim-telescope/telescope-smart-history.nvim' },
+ { 'kkharji/sqlite.lua' },
+ },
+ config = function()
+ local data = assert(vim.fn.stdpath 'data') --[[@as string]]
+
+ require('telescope').setup {
+ extensions = {
+ fzf = {
+ fuzzy = true,
+ override_generic_sorter = true,
+ override_file_sorter = true,
+ case_mode = 'smart_case',
+ },
+ wrap_results = true,
+ history = {
+ path = vim.fs.joinpath(data, 'telescope_history.sqlite3'),
+ limit = 100,
+ },
+ },
+ }
+
+ pcall(require('telescope').load_extension, 'fzf')
+ pcall(require('telescope').load_extension, 'smart_history')
+
+ local builtin = require 'telescope.builtin'
+
+ vim.keymap.set('n', '<space>fd', builtin.find_files)
+ vim.keymap.set('n', '<space>fh', builtin.help_tags)
+ vim.keymap.set('n', '<space>fg', builtin.live_grep)
+ vim.keymap.set('n', '<space>/', builtin.current_buffer_fuzzy_find)
+ vim.keymap.set('n', '<space>gw', builtin.grep_string)
+
+ vim.keymap.set('n', '<space>fa', function()
+ ---@diagnostic disable-next-line: param-type-mismatch
+ builtin.find_files { cwd = vim.fs.joinpath(vim.fn.stdpath 'data', 'lazy') }
+ end)
+
+ vim.keymap.set('n', '<space>en', function()
+ builtin.find_files { cwd = vim.fn.stdpath 'config' }
+ end)
+ end,
+}