summaryrefslogtreecommitdiff
path: root/.config
diff options
context:
space:
mode:
Diffstat (limited to '.config')
-rw-r--r--.config/nvim/lazy-lock.json1
-rw-r--r--.config/nvim/lua/plugins/telescope.lua81
2 files changed, 54 insertions, 28 deletions
diff --git a/.config/nvim/lazy-lock.json b/.config/nvim/lazy-lock.json
index 3b12496..789d9f6 100644
--- a/.config/nvim/lazy-lock.json
+++ b/.config/nvim/lazy-lock.json
@@ -22,6 +22,7 @@
"nvim-treesitter": { "branch": "master", "commit": "2e9c346aefda680bd14ebf40a50c2897fd637bc2" },
"nvim-web-devicons": { "branch": "master", "commit": "c0cfc1738361b5da1cd0a962dd6f774cc444f856" },
"plenary.nvim": { "branch": "master", "commit": "a3e3bc82a3f95c5ed0d7201546d5d2c19b20d683" },
+ "telescope-fzf-native.nvim": { "branch": "main", "commit": "9ef21b2e6bb6ebeaf349a0781745549bbb870d27" },
"telescope-ui-select.nvim": { "branch": "master", "commit": "6e51d7da30bd139a6950adf2a47fda6df9fa06d2" },
"telescope.nvim": { "branch": "master", "commit": "d90956833d7c27e73c621a61f20b29fdb7122709" },
"todo-comments.nvim": { "branch": "main", "commit": "51e10f838e84b4756c16311d0b1ef0972c6482d2" },
diff --git a/.config/nvim/lua/plugins/telescope.lua b/.config/nvim/lua/plugins/telescope.lua
index 8c0a52b..90add72 100644
--- a/.config/nvim/lua/plugins/telescope.lua
+++ b/.config/nvim/lua/plugins/telescope.lua
@@ -1,4 +1,6 @@
return {
+ { 'nvim-telescope/telescope-fzf-native.nvim' },
+ { 'nvim-telescope/telescope-ui-select.nvim' },
{
'nvim-telescope/telescope.nvim',
tag = '0.1.5',
@@ -6,49 +8,72 @@ return {
config = function()
local builtin = require('telescope.builtin')
- local find_files = function()
- builtin.find_files({ follow = true })
- end
-
- local grep = function(grep_func)
- return function()
- grep_func({ additional_args = { '--follow' } })
- end
- end
-
+ vim.keymap.set('n', '<leader>h', builtin.help_tags, { desc = '[H]elp' })
+ vim.keymap.set('n', '<leader>m', builtin.man_pages, { desc = '[M]an Pages' })
vim.keymap.set('n', '<leader>th', builtin.colorscheme, { desc = 'List [Th]eme' })
- vim.keymap.set('n', '<leader>ff', find_files, { desc = '[F]ind [F]iles' })
- vim.keymap.set('n', '<leader>fh', builtin.help_tags, { desc = '[F]ind [H]elp' })
- vim.keymap.set('n', '<leader>fk', builtin.keymaps, { desc = '[F]ind [K]eymaps' })
- vim.keymap.set('n', '<leader>fs', builtin.builtin, { desc = '[F]ind [S]elect Telescope' })
- -- vim.keymap.set('n', '<leader>fw', builtin.grep_string, { desc = '[F]ind current [W]ord' })
- -- vim.keymap.set('n', '<leader>fg', builtin.live_grep, { desc = '[F]ind by [G]rep' })
- vim.keymap.set('n', '<leader>fw', grep(builtin.grep_string), { desc = '[F]ind current [W]ord' })
- vim.keymap.set('n', '<leader>fg', grep(builtin.live_grep), { desc = '[F]ind by [G]rep' })
- vim.keymap.set('n', '<leader>f.', builtin.oldfiles, { desc = '[F]ind Recent Files ("." for repeat)' })
- vim.keymap.set('n', 'gh', vim.lsp.buf.hover, { desc = '[G]oto [H]over' })
+ vim.keymap.set('n', '<leader>fs', builtin.find_files, { desc = '[F]ile [S]ystem' })
+ vim.keymap.set('n', '<leader>fw', builtin.grep_string, { desc = '[F]ind current [W]ord' })
+ vim.keymap.set('n', '<leader>lv', builtin.live_grep, { desc = '[L]ive [G]rep' })
+ vim.keymap.set('n', '<leader>f.', builtin.oldfiles, { desc = '[F]ind Recent Files ("." for old)' })
+
vim.keymap.set('n', 'gd', builtin.lsp_definitions, { desc = '[G]oto [D]efinition' })
+ vim.keymap.set('n', 'gh', vim.lsp.buf.hover, { desc = '[G]oto [H]over' })
vim.keymap.set('n', 'gu', builtin.lsp_references, { desc = '[G]oto [U]sages' })
- vim.keymap.set('n', '<leader>s', builtin.lsp_workspace_symbols, { desc = 'Show [S]tructure' })
- vim.keymap.set('n', '<leader>ds', builtin.lsp_document_symbols, { desc = 'Show [S]tructure' })
+ vim.keymap.set('n', 'gi', builtin.lsp_implementations, { desc = '[G]oto [I]mplementations' })
+ vim.keymap.set('n', 'gt', builtin.lsp_type_definitions, { desc = '[G]oto [T]ype Definitions' })
+ vim.keymap.set('n', 'gw', builtin.diagnostics, { desc = '[G]oto [W]arnings' })
+
+ vim.keymap.set('n', '<leader>ds', builtin.lsp_document_symbols, { desc = '[D]ocument [S]symbols' })
+ vim.keymap.set('n', '<leader>ps', builtin.lsp_workspace_symbols, { desc = '[P]roject [S]ymbols' })
+
vim.keymap.set('n', '<leader>ca', vim.lsp.buf.code_action, { desc = '[C]ode [A]ction' })
vim.keymap.set('n', '<M-Enter>', vim.lsp.buf.code_action, { desc = 'Code Actions' })
+
+ -- TODO: Use some cool plugin to have IntelliJ-like renaming
+ -- Make sure to include a rr version for normal renaming and Shift+R for ciw + rr
vim.keymap.set('n', 'R', vim.lsp.buf.rename, { desc = '[R]ename' })
- end,
- },
- {
- 'nvim-telescope/telescope-ui-select.nvim',
- config = function()
+
+ -- TODO: Look into the following
+ -- builtin.git_commits
+ -- builtin.git_branches
+ -- builtin.git_status
+ -- builtin.git_stash
+
local telescope = require('telescope')
telescope.setup({
+ defaults = {
+ mappings = {
+ i = {
+ -- map actions.which_key to <C-h> (default: <C-/>)
+ -- actions.which_key shows the mappings for your picker,
+ -- e.g. git_{create, delete, ...}_branch for the git_branches picker
+ ['<C-h>'] = 'which_key',
+ ['<C-s>'] = 'cycle_previewers_next',
+ ['<C-a>'] = 'cycle_previewers_prev',
+ },
+ },
+ },
+ pickers = {
+ find_files = { follow = true },
+ grep_string = { additional_args = '--follow' },
+ live_grep = { additional_args = '--follow' },
+ },
extensions = {
- ['ui_select'] = {
+ ui_select = {
require('telescope.themes').get_dropdown({}),
},
+ fzf = {
+ fuzzy = true, -- false will only do exact matching
+ override_generic_sorter = true, -- override the generic sorter
+ override_file_sorter = true, -- override the file sorter
+ case_mode = 'smart_case', -- or "ignore_case" or "respect_case"
+ -- the default case_mode is "smart_case"
+ },
},
})
telescope.load_extension('ui-select')
+ telescope.load_extension('fzf')
end,
},
}