# Telescope - Fuzzy finder { config, lib, ... }: { config.programs.nixvim.plugins.telescope = lib.mkIf config.development.nixvim.enable { enable = true; extensions = { fzf-native.enable = true; # faster fuzzy sorting ui-select.enable = true; # use telescope for vim.ui.select (code actions etc.) }; settings = { defaults = { layout_strategy = "horizontal"; layout_config = { horizontal = { preview_width = 0.55; results_width = 0.45; }; width = 0.87; height = 0.80; }; mappings = { i = { "".__raw = "require('telescope.actions').move_selection_previous"; "".__raw = "require('telescope.actions').move_selection_next"; "".__raw = "require('telescope.actions').close"; }; }; }; }; keymaps = { # Files "ff" = { action = "find_files"; options.desc = "Find files"; }; "fg" = { action = "live_grep"; options.desc = "Live grep"; }; "fb" = { action = "buffers"; options.desc = "Find buffers"; }; "fr" = { action = "oldfiles"; options.desc = "Recent files"; }; # LSP "fd" = { action = "diagnostics"; options.desc = "Diagnostics"; }; "fs" = { action = "lsp_document_symbols"; options.desc = "Document symbols"; }; # Git "gc" = { action = "git_commits"; options.desc = "Git commits"; }; "gb" = { action = "git_branches"; options.desc = "Git branches"; }; # Misc "fh" = { action = "help_tags"; options.desc = "Help tags"; }; "fc" = { action = "commands"; options.desc = "Commands"; }; "fk" = { action = "keymaps"; options.desc = "Find keymaps"; }; }; }; }