- Add missing Fish configs (direnv, ssh function) - Add Tokyo Night theme for Ghostty - Complete Neovim scratch config sync - Rewrite install.sh for new structure - Add comprehensive README.md
90 lines
3.2 KiB
Lua
90 lines
3.2 KiB
Lua
-- ============================================================================
|
|
-- Telescope - Fuzzy Finder
|
|
-- ============================================================================
|
|
|
|
return {
|
|
{
|
|
'nvim-telescope/telescope.nvim',
|
|
event = 'VimEnter',
|
|
branch = '0.1.x',
|
|
dependencies = {
|
|
'nvim-lua/plenary.nvim',
|
|
{
|
|
'nvim-telescope/telescope-fzf-native.nvim',
|
|
build = 'make',
|
|
cond = function()
|
|
return vim.fn.executable('make') == 1
|
|
end,
|
|
},
|
|
{ 'nvim-telescope/telescope-ui-select.nvim' },
|
|
{ 'nvim-tree/nvim-web-devicons', enabled = vim.g.have_nerd_font },
|
|
},
|
|
config = function()
|
|
local telescope = require('telescope')
|
|
local actions = require('telescope.actions')
|
|
|
|
telescope.setup({
|
|
defaults = {
|
|
prompt_prefix = ' ',
|
|
selection_caret = ' ',
|
|
path_display = { 'truncate' },
|
|
sorting_strategy = 'ascending',
|
|
layout_config = {
|
|
horizontal = {
|
|
prompt_position = 'top',
|
|
preview_width = 0.55,
|
|
},
|
|
vertical = {
|
|
mirror = false,
|
|
},
|
|
width = 0.87,
|
|
height = 0.80,
|
|
preview_cutoff = 120,
|
|
},
|
|
mappings = {
|
|
i = {
|
|
['<C-n>'] = actions.cycle_history_next,
|
|
['<C-p>'] = actions.cycle_history_prev,
|
|
['<C-j>'] = actions.move_selection_next,
|
|
['<C-k>'] = actions.move_selection_previous,
|
|
},
|
|
},
|
|
},
|
|
pickers = {
|
|
find_files = {
|
|
hidden = true,
|
|
find_command = { 'rg', '--files', '--hidden', '--glob', '!**/.git/*' },
|
|
},
|
|
},
|
|
extensions = {
|
|
['ui-select'] = {
|
|
require('telescope.themes').get_dropdown(),
|
|
},
|
|
},
|
|
})
|
|
|
|
-- Extensions laden
|
|
pcall(telescope.load_extension, 'fzf')
|
|
pcall(telescope.load_extension, 'ui-select')
|
|
|
|
-- Keymaps
|
|
local builtin = require('telescope.builtin')
|
|
vim.keymap.set('n', '<leader>ff', builtin.find_files, { desc = 'Find files' })
|
|
vim.keymap.set('n', '<leader>fg', builtin.live_grep, { desc = 'Live grep' })
|
|
vim.keymap.set('n', '<leader>fb', builtin.buffers, { desc = 'Buffers' })
|
|
vim.keymap.set('n', '<leader>fh', builtin.help_tags, { desc = 'Help tags' })
|
|
vim.keymap.set('n', '<leader>fo', builtin.oldfiles, { desc = 'Recent files' })
|
|
vim.keymap.set('n', '<leader>fw', builtin.grep_string, { desc = 'Current word' })
|
|
vim.keymap.set('n', '<leader>fd', builtin.diagnostics, { desc = 'Diagnostics' })
|
|
vim.keymap.set('n', '<leader>fr', builtin.resume, { desc = 'Resume' })
|
|
vim.keymap.set('n', '<leader>f.', builtin.oldfiles, { desc = 'Recent files' })
|
|
vim.keymap.set('n', '<leader>/', builtin.current_buffer_fuzzy_find, { desc = 'Search in buffer' })
|
|
|
|
-- Git
|
|
vim.keymap.set('n', '<leader>gc', builtin.git_commits, { desc = 'Git commits' })
|
|
vim.keymap.set('n', '<leader>gf', builtin.git_files, { desc = 'Git files' })
|
|
vim.keymap.set('n', '<leader>gs', builtin.git_status, { desc = 'Git status' })
|
|
end,
|
|
},
|
|
}
|