Files
lua-nvim/TELESCOPE_TO_SNACKS_MIGRATION.md
2025-08-03 21:09:30 -04:00

3.8 KiB

Telescope to Snacks Migration

Overview

Successfully migrated from Telescope to Snacks throughout the project for a more modern, faster, and cleaner interface.

Changes Made

1. Alpha Menu (lua/cargdev/plugins/alpha.lua)

  • Find File: Telescope find_filesSnacks.picker.files()
  • Find Text: Telescope live_grepSnacks.picker.grep()
  • Recent Files: Telescope oldfilesSnacks.picker.oldfiles()

2. Keymaps (lua/cargdev/core/keymaps/snacks.lua)

  • File Navigation: All file search keymaps updated to Snacks
  • Buffer Management: Buffer search updated to Snacks
  • LSP Integration: LSP pickers updated to Snacks
  • Symbol Search: Document and workspace symbols updated to Snacks

3. LSP Keymaps (lua/cargdev/core/keymaps/lsp.lua)

  • Navigation: gd, gi, gr, gt updated to Snacks
  • Symbols: <leader>ds, <leader>ws updated to Snacks
  • Diagnostics: <leader>D updated to Snacks

4. DAP Keymaps (lua/cargdev/core/keymaps/dap.lua)

  • DAP Integration: All DAP pickers updated to Snacks

5. File Structure

  • Renamed: telescope.luasnacks.lua
  • Updated: All documentation references

Kept Telescope For

Some features were kept with Telescope as Snacks may not have equivalent functionality:

Git Features

-- Git (using Telescope for git features as Snacks may not have all git pickers)
keymap.set("n", "<leader>fG", "<cmd>Telescope git_commits<cr>", { desc = "Git commits" })
keymap.set("n", "<leader>fB", "<cmd>Telescope git_bcommits<cr>", { desc = "Git buffer commits" })
keymap.set("n", "<leader>fg", "<cmd>Telescope git_branches<cr>", { desc = "Git branches" })
keymap.set("n", "<leader>gs", "<cmd>Telescope git_status<cr>", { desc = "Git status" })

Todos

-- Todos (keep Telescope for todos as Snacks may not have this)
keymap.set("n", "<leader>ft", "<cmd>TodoTelescope<cr>", { desc = "Find todos" })

Benefits of Migration

Performance

  • Faster: Snacks is generally faster than Telescope
  • 🚀 Better UX: Smoother animations and transitions
  • 📱 Modern: Better touch/gesture support

Interface

  • 🎨 Cleaner: More modern, less overwhelming interface
  • 🎯 Focused: Streamlined experience
  • 🔧 Integrated: Better integration with other Snacks components

Consistency

  • 🎯 Unified: All pickers now use the same interface
  • 🔄 Cohesive: Consistent experience across all features
  • 📱 Modern: Contemporary design language

Keymaps Summary

File Navigation

  • <leader>ff - Find files (Snacks)
  • <leader>fs - Live grep (Snacks)
  • <leader>fc - Grep string (Snacks)
  • <leader>fr - Recent files (Snacks)

Buffer Management

  • <leader>fb - Find buffers (Snacks)
  • <leader>fh - Help tags (Snacks)
  • <leader>fm - Find marks (Snacks)
  • <leader>fk - Find keymaps (Snacks)
  • <leader>fC - Find commands (Snacks)

LSP Navigation

  • gd - Go to definition (Snacks)
  • gi - Go to implementation (Snacks)
  • gr - Show references (Snacks)
  • gt - Go to type definition (Snacks)
  • <leader>ds - Document symbols (Snacks)
  • <leader>ws - Workspace symbols (Snacks)
  • <leader>D - Show diagnostics (Snacks)

DAP Integration

  • <leader>dcf - DAP configurations (Snacks)
  • <leader>dcb - List breakpoints (Snacks)
  • <leader>dco - DAP commands (Snacks)

Alpha Menu

The alpha menu now uses Snacks for all navigation:

  • f - Find File (Snacks)
  • g - Find Text (Snacks)
  • r - Recent Files (Snacks)

Migration Complete! 🎉

Your Neovim configuration now uses Snacks for all primary navigation and search functionality, providing a faster, more modern, and consistent experience throughout your editor.