From 97944d04bf635f869557e25ef802e27c21fcb6e8 Mon Sep 17 00:00:00 2001 From: Stefan Imhoff Date: Sat, 11 Dec 2021 14:09:10 +0100 Subject: [PATCH] chore(vim): add Telescope and configuration --- nvim/plugin-config.vim | 1 + nvim/plugins.vim | 8 ++++ nvim/plugins/telescope.lua | 85 ++++++++++++++++++++++++++++++++++++++ 3 files changed, 94 insertions(+) create mode 100644 nvim/plugins/telescope.lua diff --git a/nvim/plugin-config.vim b/nvim/plugin-config.vim index 791375a..d2f0411 100644 --- a/nvim/plugin-config.vim +++ b/nvim/plugin-config.vim @@ -20,6 +20,7 @@ source ~/.config/nvim/plugins/neoscroll.lua source ~/.config/nvim/plugins/prettier.vim source ~/.config/nvim/plugins/sidebar.lua source ~/.config/nvim/plugins/speeddating.vim +source ~/.config/nvim/plugins/telescope.lua source ~/.config/nvim/plugins/ultisnips.vim source ~/.config/nvim/plugins/vim-easymotion.vim source ~/.config/nvim/plugins/web-devicons.lua diff --git a/nvim/plugins.vim b/nvim/plugins.vim index fe8c4ee..a3d4214 100644 --- a/nvim/plugins.vim +++ b/nvim/plugins.vim @@ -35,6 +35,14 @@ Plug 'quangnguyen30192/cmp-nvim-ultisnips' Plug 'David-Kunz/cmp-npm' " File Management +Plug 'nvim-telescope/telescope.nvim' +Plug 'nvim-telescope/telescope-file-browser.nvim' +Plug 'nvim-telescope/telescope-fzf-native.nvim', { 'do': 'make' } +Plug 'nvim-telescope/telescope-frecency.nvim' +Plug 'nvim-telescope/telescope-node-modules.nvim' +Plug 'gbrlsnchs/telescope-lsp-handlers.nvim' +Plug 'dhruvmanila/telescope-bookmarks.nvim' +Plug 'tami5/sqlite.lua' Plug 'junegunn/fzf', { 'dir': '~/.fzf', 'do': './install --all' } Plug 'lewis6991/gitsigns.nvim' Plug 'ThePrimeagen/harpoon' diff --git a/nvim/plugins/telescope.lua b/nvim/plugins/telescope.lua new file mode 100644 index 0000000..8febfac --- /dev/null +++ b/nvim/plugins/telescope.lua @@ -0,0 +1,85 @@ +-- telescope.nvim +-- https://github.com/nvim-telescope/telescope.nvim/ + +local status, telescope = pcall(require, 'telescope') +if (not status) then return end + +telescope.setup({ + defaults = { + file_ignore_pattern = { 'yarn.lock' } + }, + extensions = { + lsp_handlers = { + disable = {}, + location = { + telescope = {}, + no_results_message = 'No references found', + }, + symbol = { + telescope = {}, + no_results_message = 'No symbols found', + }, + call_hierarchy = { + telescope = {}, + no_results_message = 'No calls found', + }, + code_action = { + telescope = require('telescope.themes').get_dropdown({}), + no_results_message = 'No code actions available', + prefix = '', + }, + }, + bookmarks = { + selected_browser = 'brave', + url_open_command = 'open', + } + }, + fzf = { + fuzzy = true, + override_generic_sorter = false, + override_file_sorter = true, + case_mode = "smart_case" + }, + buffers = { + show_all_buffers = true, + sort_lastused = true, + -- theme = "dropdown", + -- previewer = false, + mappings = { + i = { + [""] = "delete_buffer", + } + } + } +}) + +--- Extensions +require('telescope').load_extension('bookmarks') +require('telescope').load_extension('frecency') +require('telescope').load_extension('fzf') +require('telescope').load_extension('harpoon') +require('telescope').load_extension('lsp_handlers') +require('telescope').load_extension('node_modules') + +--- Mappings +local opts = { noremap = true, silent = true } + +vim.api.nvim_set_keymap('n', '', [[Telescope find_files]], opts) +vim.api.nvim_set_keymap('n', 'b', [[Telescope buffers]], opts) +vim.api.nvim_set_keymap('n', 'bh', [[Telescope bookmarks]], opts) +vim.api.nvim_set_keymap('n', 'cheat', [[:Cheatsheet]], opts) +vim.api.nvim_set_keymap('n', 'fb', [[Telescope buffers]], opts) +vim.api.nvim_set_keymap('n', 'fc', [[Telescope git_status]], opts) +vim.api.nvim_set_keymap('n', 'fcb', [[Telescope git_branches]], opts) +vim.api.nvim_set_keymap('n', 'ff', [[lua require('telescope.builtin').find_files({ hidden = true })]], opts) +vim.api.nvim_set_keymap('n', 'fht', [[Telescope help_tags]], opts) +vim.api.nvim_set_keymap('n', 'fnm', [[Telescope node_modules list]], opts) +vim.api.nvim_set_keymap('n', 'fr', [[Telescope resume]], opts) +vim.api.nvim_set_keymap('n', 'frg', [[Telescope live_grep]], opts) +vim.api.nvim_set_keymap('n', 'fs', [[lua require('telescope.builtin').file_browser({ cwd = vim.fn.expand('%:p:h') })]], opts) +vim.api.nvim_set_keymap('n', 'ft', [[Telescope tags]], opts) +vim.api.nvim_set_keymap('n', 'm', [[Telescope marks]], opts) +vim.api.nvim_set_keymap('n', 'mru', [[Telescope frecency]], opts) +vim.api.nvim_set_keymap('n', 'ps', [[lua require('telescope.builtin').grep_string({ search = vim.fn.input('Grep for > ') })]], opts) +vim.api.nvim_set_keymap('n', 'r', [[Telescope live_grep]], opts) +vim.api.nvim_set_keymap('n', 't', [[Telescope tags]], opts)