Compare commits
2 Commits
28410ecfab
...
9e529ef0bb
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
9e529ef0bb | ||
|
|
6738adc58b |
106
TELESCOPE_TO_SNACKS_MIGRATION.md
Normal file
106
TELESCOPE_TO_SNACKS_MIGRATION.md
Normal file
@@ -0,0 +1,106 @@
|
||||
# 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_files` → `Snacks.picker.files()`
|
||||
- ✅ **Find Text**: `Telescope live_grep` → `Snacks.picker.grep()`
|
||||
- ✅ **Recent Files**: `Telescope oldfiles` → `Snacks.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.lua` → `snacks.lua`
|
||||
- ✅ **Updated**: All documentation references
|
||||
|
||||
## Kept Telescope For
|
||||
|
||||
Some features were kept with Telescope as Snacks may not have equivalent functionality:
|
||||
|
||||
### **Git Features**
|
||||
```lua
|
||||
-- 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**
|
||||
```lua
|
||||
-- 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.
|
||||
7
lua/cargdev/core/function/highlights.lua
Normal file
7
lua/cargdev/core/function/highlights.lua
Normal file
@@ -0,0 +1,7 @@
|
||||
-- Highlight .njk files as htmldjango for better templating syntax
|
||||
vim.api.nvim_create_autocmd({"BufRead", "BufNewFile"}, {
|
||||
pattern = "*.njk",
|
||||
callback = function()
|
||||
vim.cmd("set filetype=htmldjango")
|
||||
end,
|
||||
})
|
||||
@@ -10,7 +10,7 @@ keymaps/
|
||||
├── general.lua # General keymaps (leader, basic navigation)
|
||||
├── personal.lua # Personal workflow keymaps
|
||||
├── lsp.lua # LSP and function navigation keymaps
|
||||
├── telescope.lua # Telescope search and navigation keymaps
|
||||
├── snacks.lua # Snacks search and navigation keymaps (replacing Telescope)
|
||||
└── plugins.lua # Plugin-specific keymaps
|
||||
```
|
||||
|
||||
@@ -36,7 +36,7 @@ The main `keymaps.lua` file automatically loads all `.lua` files from this folde
|
||||
- Code actions and documentation
|
||||
- Diagnostics
|
||||
|
||||
### **telescope.lua**
|
||||
### **snacks.lua**
|
||||
- File search (`<leader>ff`, `<leader>fs`)
|
||||
- Buffer management
|
||||
- Git integration
|
||||
@@ -71,7 +71,7 @@ To add new keymaps:
|
||||
| General | `general.lua` | Basic setup and utilities |
|
||||
| Personal | `personal.lua` | Your workflow shortcuts |
|
||||
| LSP | `lsp.lua` | Function navigation and LSP features |
|
||||
| Search | `telescope.lua` | File and text search |
|
||||
| Search | `snacks.lua` | File and text search |
|
||||
| Plugins | `plugins.lua` | Plugin-specific functionality |
|
||||
|
||||
## 🔄 Benefits
|
||||
@@ -86,8 +86,8 @@ To add new keymaps:
|
||||
|
||||
The keymaps are automatically loaded when Neovim starts. You can:
|
||||
|
||||
- **View all keymaps**: `<leader>fk` (Telescope keymaps)
|
||||
- **Search keymaps**: Use Telescope to search through your keymaps
|
||||
- **View all keymaps**: `<leader>fk` (Snacks keymaps)
|
||||
- **Search keymaps**: Use Snacks to search through your keymaps
|
||||
- **Modify keymaps**: Edit the appropriate file and restart Neovim
|
||||
|
||||
## 📝 Notes
|
||||
|
||||
11
lua/cargdev/core/keymaps/copilot.lua
Normal file
11
lua/cargdev/core/keymaps/copilot.lua
Normal file
@@ -0,0 +1,11 @@
|
||||
-- Copilot Chat keymaps
|
||||
local keymap = vim.keymap
|
||||
|
||||
keymap.set("v", "<leader>zn", ":CopilotChatRename<CR>", { desc = "Rename variable (Copilot Chat)" })
|
||||
keymap.set("n", "<leader>zc", ":CopilotChat<CR>", { desc = "Open Copilot Chat" })
|
||||
keymap.set("v", "<leader>ze", ":CopilotChatExplain<CR>", { desc = "Explain code (Copilot Chat)" })
|
||||
keymap.set("v", "<leader>zr", ":CopilotChatReview<CR>", { desc = "Review code (Copilot Chat)" })
|
||||
keymap.set("v", "<leader>zf", ":CopilotChatFix<CR>", { desc = "Fix code issues (Copilot Chat)" })
|
||||
keymap.set("v", "<leader>zo", ":CopilotChatOptimize<CR>", { desc = "Optimize code (Copilot Chat)" })
|
||||
keymap.set("v", "<leader>zd", ":CopilotChatDocs<CR>", { desc = "Generate docs (Copilot Chat)" })
|
||||
keymap.set("n", "<leader>cp", ":Copilot panel<CR>", { desc = "Copilot: Open copilot panel" })
|
||||
35
lua/cargdev/core/keymaps/dap.lua
Normal file
35
lua/cargdev/core/keymaps/dap.lua
Normal file
@@ -0,0 +1,35 @@
|
||||
-- DAP (Debug Adapter Protocol) keymaps
|
||||
|
||||
local ok_dap, dap = pcall(require, "dap")
|
||||
local ok_dapui, dapui = pcall(require, "dapui")
|
||||
local fn = vim.fn
|
||||
local keymap = vim.keymap.set
|
||||
|
||||
if ok_dap and ok_dapui then
|
||||
keymap("n", "<leader>dc", dap.continue, { desc = "▶ Start Debugging" })
|
||||
keymap("n", "<leader>do", dap.step_over, { desc = "⏭ Step Over" })
|
||||
keymap("n", "<leader>di", dap.step_into, { desc = "⤵ Step Into" })
|
||||
keymap("n", "<leader>dot", dap.step_out, { desc = "⤴ Step Out" })
|
||||
keymap("n", "<leader>db", dap.toggle_breakpoint, { desc = "🔴 Toggle Breakpoint" })
|
||||
keymap("n", "<leader>dB", function()
|
||||
dap.set_breakpoint(fn.input("Breakpoint condition: "))
|
||||
end, { desc = "⚠ Conditional Breakpoint" })
|
||||
keymap("n", "<leader>dr", dap.repl.open, { desc = "💬 Open REPL" })
|
||||
keymap("n", "<leader>dl", dap.run_last, { desc = "🔁 Run Last Debug" })
|
||||
keymap("n", "<leader>du", dapui.toggle, { desc = "🧩 Toggle DAP UI" })
|
||||
keymap("n", "<leader>dq", dap.terminate, { desc = "⛔ Stop Debugging" })
|
||||
|
||||
-- 🧼 Reset UI
|
||||
keymap("n", "<leader>drt", function()
|
||||
dap.terminate()
|
||||
dapui.close()
|
||||
vim.defer_fn(function()
|
||||
dapui.open()
|
||||
end, 200)
|
||||
end, { desc = "🧼 Reset DAP UI Layout" })
|
||||
|
||||
-- 🔭 Snacks Integration (replacing Telescope)
|
||||
keymap("n", "<leader>dcf", "<cmd>lua require('snacks.picker').dap_configurations()<cr>", { desc = "🔭 DAP Configs" })
|
||||
keymap("n", "<leader>dcb", "<cmd>lua require('snacks.picker').dap_list_breakpoints()<cr>", { desc = "🧷 List Breakpoints" })
|
||||
keymap("n", "<leader>dco", "<cmd>lua require('snacks.picker').dap_commands()<cr>", { desc = "⚙️ DAP Commands" })
|
||||
end
|
||||
10
lua/cargdev/core/keymaps/gitconflict.lua
Normal file
10
lua/cargdev/core/keymaps/gitconflict.lua
Normal file
@@ -0,0 +1,10 @@
|
||||
-- Git Conflict keymaps
|
||||
local keymap = vim.keymap
|
||||
|
||||
keymap.set("n", "]x", "<Plug>(git-conflict-next-conflict)", { desc = "Go to next git conflict" })
|
||||
keymap.set("n", "[x", "<Plug>(git-conflict-prev-conflict)", { desc = "Go to previous git conflict" })
|
||||
keymap.set("n", "<leader>co", "<Plug>(git-conflict-ours)", { desc = "Choose ours (git conflict)" })
|
||||
keymap.set("n", "<leader>ct", "<Plug>(git-conflict-theirs)", { desc = "Choose theirs (git conflict)" })
|
||||
keymap.set("n", "<leader>cb", "<Plug>(git-conflict-both)", { desc = "Choose both (git conflict)" })
|
||||
keymap.set("n", "<leader>c0", "<Plug>(git-conflict-none)", { desc = "Choose none (git conflict)" })
|
||||
keymap.set("n", "<leader>cq", "<Plug>(git-conflict-list)", { desc = "List all git conflicts" })
|
||||
6
lua/cargdev/core/keymaps/leet.lua
Normal file
6
lua/cargdev/core/keymaps/leet.lua
Normal file
@@ -0,0 +1,6 @@
|
||||
-- Leet keymaps
|
||||
local keymap = vim.keymap
|
||||
|
||||
keymap.set("n", "<leader>lr", ":Leet test<CR>", { desc = "Test the leet current problem code" })
|
||||
keymap.set("n", "<leader>ls", ":Leet submit<CR>", { desc = "Submit the leet solution" })
|
||||
keymap.set("n", "<leader>lls", ":Leet last_submit<CR>", { desc = "Brings the latest submition from leetcode" })
|
||||
@@ -6,14 +6,14 @@ local keymap = vim.keymap
|
||||
-- =============================================================================
|
||||
|
||||
-- Primary LSP navigation
|
||||
keymap.set("n", "gd", "<cmd>Telescope lsp_definitions<cr>", { desc = "Go to definition" })
|
||||
keymap.set("n", "gi", "<cmd>Telescope lsp_implementations<cr>", { desc = "Go to implementation" })
|
||||
keymap.set("n", "gr", "<cmd>Telescope lsp_references<cr>", { desc = "Show references" })
|
||||
keymap.set("n", "gt", "<cmd>Telescope lsp_type_definitions<cr>", { desc = "Go to type definition" })
|
||||
keymap.set("n", "gd", "<cmd>lua require('snacks.picker').lsp_definitions()<cr>", { desc = "Go to definition" })
|
||||
keymap.set("n", "gi", "<cmd>lua require('snacks.picker').lsp_implementations()<cr>", { desc = "Go to implementation" })
|
||||
keymap.set("n", "gr", "<cmd>lua require('snacks.picker').lsp_references()<cr>", { desc = "Show references" })
|
||||
keymap.set("n", "gt", "<cmd>lua require('snacks.picker').lsp_type_definitions()<cr>", { desc = "Go to type definition" })
|
||||
|
||||
-- Symbol search
|
||||
keymap.set("n", "<leader>ds", "<cmd>Telescope lsp_document_symbols<cr>", { desc = "Document symbols" })
|
||||
keymap.set("n", "<leader>ws", "<cmd>Telescope lsp_workspace_symbols<cr>", { desc = "Workspace symbols" })
|
||||
keymap.set("n", "<leader>ds", "<cmd>lua require('snacks.picker').lsp_document_symbols()<cr>", { desc = "Document symbols" })
|
||||
keymap.set("n", "<leader>ws", "<cmd>lua require('snacks.picker').lsp_workspace_symbols()<cr>", { desc = "Workspace symbols" })
|
||||
|
||||
-- Code actions and documentation
|
||||
keymap.set("n", "<leader>ca", "<cmd>lua vim.lsp.buf.code_action()<cr>", { desc = "Code actions" })
|
||||
@@ -21,7 +21,7 @@ keymap.set("n", "<leader>rn", "<cmd>lua vim.lsp.buf.rename()<cr>", { desc = "Ren
|
||||
keymap.set("n", "K", "<cmd>lua vim.lsp.buf.hover()<cr>", { desc = "Hover documentation" })
|
||||
|
||||
-- Diagnostics
|
||||
keymap.set("n", "<leader>D", "<cmd>Telescope diagnostics<cr>", { desc = "Show diagnostics" })
|
||||
keymap.set("n", "<leader>D", "<cmd>lua require('snacks.picker').diagnostics()<cr>", { desc = "Show diagnostics" })
|
||||
keymap.set("n", "<leader>dd", "<cmd>lua vim.diagnostic.open_float()<cr>", { desc = "Line diagnostics" })
|
||||
keymap.set("n", "[d", "<cmd>lua vim.diagnostic.goto_prev()<cr>", { desc = "Previous diagnostic" })
|
||||
keymap.set("n", "]d", "<cmd>lua vim.diagnostic.goto_next()<cr>", { desc = "Next diagnostic" })
|
||||
5
lua/cargdev/core/keymaps/project.lua
Normal file
5
lua/cargdev/core/keymaps/project.lua
Normal file
@@ -0,0 +1,5 @@
|
||||
-- Project Run/Debug keymaps
|
||||
local keymap = vim.keymap
|
||||
|
||||
keymap.set("n", "<leader>pr", ":RunProject<CR>", { desc = "Run Project" })
|
||||
keymap.set("n", "<leader>pd", ":DebugProject<CR>", { desc = "Debug Project" })
|
||||
28
lua/cargdev/core/keymaps/snacks.lua
Normal file
28
lua/cargdev/core/keymaps/snacks.lua
Normal file
@@ -0,0 +1,28 @@
|
||||
-- Snacks keymaps (replacing Telescope)
|
||||
local keymap = vim.keymap
|
||||
|
||||
-- =============================================================================
|
||||
-- SNACKS NAVIGATION
|
||||
-- =============================================================================
|
||||
|
||||
-- File navigation
|
||||
keymap.set("n", "<leader>ff", "<cmd>lua require('snacks.picker').files()<cr>", { desc = "Find files" })
|
||||
keymap.set("n", "<leader>fs", "<cmd>lua require('snacks.picker').grep()<cr>", { desc = "Live grep" })
|
||||
keymap.set("n", "<leader>fc", "<cmd>lua require('snacks.picker').grep_string()<cr>", { desc = "Grep string" })
|
||||
keymap.set("n", "<leader>fr", "<cmd>lua require('snacks.picker').oldfiles()<cr>", { desc = "Recent files" })
|
||||
|
||||
-- Buffer and session management
|
||||
keymap.set("n", "<leader>fb", "<cmd>lua require('snacks.picker').buffers()<cr>", { desc = "Find buffers" })
|
||||
keymap.set("n", "<leader>fh", "<cmd>lua require('snacks.picker').help_tags()<cr>", { desc = "Help tags" })
|
||||
keymap.set("n", "<leader>fm", "<cmd>lua require('snacks.picker').marks()<cr>", { desc = "Find marks" })
|
||||
keymap.set("n", "<leader>fk", "<cmd>lua require('snacks.picker').keymaps()<cr>", { desc = "Find keymaps" })
|
||||
keymap.set("n", "<leader>fC", "<cmd>lua require('snacks.picker').commands()<cr>", { desc = "Find commands" })
|
||||
|
||||
-- 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 (keep Telescope for todos as Snacks may not have this)
|
||||
keymap.set("n", "<leader>ft", "<cmd>TodoTelescope<cr>", { desc = "Find todos" })
|
||||
18
lua/cargdev/core/keymaps/sudoku.lua
Normal file
18
lua/cargdev/core/keymaps/sudoku.lua
Normal file
@@ -0,0 +1,18 @@
|
||||
-- Sudoku keymaps
|
||||
-- WARNING: <leader>sng is mapped to two different commands below. Only the last one will take effect in Neovim.
|
||||
-- Consider changing one of the mappings if you want both actions available.
|
||||
local keymap = vim.keymap
|
||||
|
||||
keymap.set("n", "<leader>si1", ":Sudoku insert=1<CR>", { desc = "Add number 1" })
|
||||
keymap.set("n", "<leader>si2", ":Sudoku insert=2<CR>", { desc = "Add number 2" })
|
||||
keymap.set("n", "<leader>si3", ":Sudoku insert=3<CR>", { desc = "Add number 3" })
|
||||
keymap.set("n", "<leader>si4", ":Sudoku insert=4<CR>", { desc = "Add number 4" })
|
||||
keymap.set("n", "<leader>si5", ":Sudoku insert=5<CR>", { desc = "Add number 5" })
|
||||
keymap.set("n", "<leader>si6", ":Sudoku insert=6<CR>", { desc = "Add number 6" })
|
||||
keymap.set("n", "<leader>si7", ":Sudoku insert=7<CR>", { desc = "Add number 7" })
|
||||
keymap.set("n", "<leader>si8", ":Sudoku insert=8<CR>", { desc = "Add number 8" })
|
||||
keymap.set("n", "<leader>si9", ":Sudoku insert=9<CR>", { desc = "Add number 9" })
|
||||
keymap.set("n", "<leader>scc", ":Sudoku clear_cell<CR>", { desc = "Clear current cell" })
|
||||
keymap.set("n", "<leader>su", ":Sudoku undo<CR>", { desc = "Undo last action" })
|
||||
keymap.set("n", "<leader>sng", ":Sudoku new_game<CR>", { desc = "Starts new game" })
|
||||
keymap.set("n", "<leader>sng", ":Sudoku view=settings<CR>", { desc = "Display the settings" })
|
||||
@@ -1,28 +0,0 @@
|
||||
-- Telescope keymaps
|
||||
local keymap = vim.keymap
|
||||
|
||||
-- =============================================================================
|
||||
-- TELESCOPE NAVIGATION
|
||||
-- =============================================================================
|
||||
|
||||
-- File navigation
|
||||
keymap.set("n", "<leader>ff", "<cmd>Telescope find_files<cr>", { desc = "Find files" })
|
||||
keymap.set("n", "<leader>fs", "<cmd>Telescope live_grep<cr>", { desc = "Live grep" })
|
||||
keymap.set("n", "<leader>fc", "<cmd>Telescope grep_string<cr>", { desc = "Grep string" })
|
||||
keymap.set("n", "<leader>fr", "<cmd>Telescope oldfiles<cr>", { desc = "Recent files" })
|
||||
|
||||
-- Buffer and session management
|
||||
keymap.set("n", "<leader>fb", "<cmd>Telescope buffers<cr>", { desc = "Find buffers" })
|
||||
keymap.set("n", "<leader>fh", "<cmd>Telescope help_tags<cr>", { desc = "Help tags" })
|
||||
keymap.set("n", "<leader>fm", "<cmd>Telescope marks<cr>", { desc = "Find marks" })
|
||||
keymap.set("n", "<leader>fk", "<cmd>Telescope keymaps<cr>", { desc = "Find keymaps" })
|
||||
keymap.set("n", "<leader>fC", "<cmd>Telescope commands<cr>", { desc = "Find commands" })
|
||||
|
||||
-- Git
|
||||
keymap.set("n", "<leader>fg", "<cmd>Telescope git_commits<cr>", { desc = "Git commits" })
|
||||
keymap.set("n", "<leader>fG", "<cmd>Telescope git_bcommits<cr>", { desc = "Git buffer commits" })
|
||||
keymap.set("n", "<leader>fb", "<cmd>Telescope git_branches<cr>", { desc = "Git branches" })
|
||||
keymap.set("n", "<leader>gs", "<cmd>Telescope git_status<cr>", { desc = "Git status" })
|
||||
|
||||
-- Todos
|
||||
keymap.set("n", "<leader>ft", "<cmd>TodoTelescope<cr>", { desc = "Find todos" })
|
||||
16
lua/cargdev/core/keymaps/ufo.lua
Normal file
16
lua/cargdev/core/keymaps/ufo.lua
Normal file
@@ -0,0 +1,16 @@
|
||||
-- nvim-ufo folding keymaps
|
||||
local ok_ufo, ufo = pcall(require, "ufo")
|
||||
local keymap = vim.keymap.set
|
||||
|
||||
if ok_ufo then
|
||||
keymap("n", "zR", ufo.openAllFolds, { desc = "Open all folds" })
|
||||
keymap("n", "zM", ufo.closeAllFolds, { desc = "Close all folds" })
|
||||
keymap("n", "zr", ufo.openFoldsExceptKinds, { desc = "Open folds except kinds" })
|
||||
keymap("n", "zm", ufo.closeFoldsWith, { desc = "Close folds with" })
|
||||
keymap("n", "K", function()
|
||||
local winid = ufo.peekFoldedLinesUnderCursor()
|
||||
if not winid then
|
||||
vim.lsp.buf.hover()
|
||||
end
|
||||
end, { desc = "Peek fold or hover" })
|
||||
end
|
||||
16
lua/cargdev/core/keymaps/window.lua
Normal file
16
lua/cargdev/core/keymaps/window.lua
Normal file
@@ -0,0 +1,16 @@
|
||||
-- Window management keymaps
|
||||
local keymap = vim.keymap
|
||||
|
||||
keymap.set("n", "<leader>sv", "<C-w>v", { desc = "Split window vertically" })
|
||||
keymap.set("n", "<leader>sh", "<C-w>s", { desc = "Split window horizontally" })
|
||||
keymap.set("n", "<leader>se", "<C-w>=", { desc = "Make splits equal size" })
|
||||
keymap.set("n", "<leader>sx", "<cmd>close<CR>", { desc = "Close current split" })
|
||||
keymap.set("n", "<leader>to", "<cmd>tabnew<CR>", { desc = "Open new tab" })
|
||||
keymap.set("n", "<leader>tx", "<cmd>tabclose<CR>", { desc = "Close current tab" })
|
||||
keymap.set("n", "<leader>tn", "<cmd>tabn<CR>", { desc = "Go to next tab" })
|
||||
keymap.set("n", "<leader>tp", "<cmd>tabp<CR>", { desc = "Go to previous tab" })
|
||||
keymap.set("n", "<leader>tf", "<cmd>tabnew %<CR>", { desc = "Open current buffer in new tab" })
|
||||
keymap.set("n", "<C-l>", ":vertical resize -5<CR>", { noremap = true, silent = true })
|
||||
keymap.set("n", "<C-h>", ":vertical resize +5<CR>", { noremap = true, silent = true })
|
||||
keymap.set("n", "<C-k>", ":resize +5<CR>", { noremap = true, silent = true })
|
||||
keymap.set("n", "<C-j>", ":resize -5<CR>", { noremap = true, silent = true })
|
||||
@@ -29,10 +29,10 @@ return {
|
||||
|
||||
-- 📂 Set menu with improved icons
|
||||
dashboard.section.buttons.val = {
|
||||
dashboard.button("f", "🔎 Find File", "<cmd>Telescope find_files<CR>"),
|
||||
dashboard.button("f", "🔎 Find File", "<cmd>lua require('snacks.picker').files()<CR>"),
|
||||
dashboard.button("n", "📜 New File", "<cmd>ene<CR>"),
|
||||
dashboard.button("g", "📝 Find Text", "<cmd>Telescope live_grep<CR>"),
|
||||
dashboard.button("r", "📚 Recent Files", "<cmd>Telescope oldfiles<CR>"),
|
||||
dashboard.button("g", "📝 Find Text", "<cmd>lua require('snacks.picker').grep()<CR>"),
|
||||
dashboard.button("r", "📚 Recent Files", "<cmd>lua require('snacks.picker').oldfiles()<CR>"),
|
||||
dashboard.button("c", "⚙️ Config", "<cmd>e ~/.config/nvim/init.lua<CR>"),
|
||||
dashboard.button("L", "🦥 Lazy", "<cmd>Lazy<CR>"),
|
||||
dashboard.button("q", "🚪 Quit", "<cmd>qa<CR>"),
|
||||
|
||||
@@ -112,29 +112,6 @@ return {
|
||||
dapui.close()
|
||||
end
|
||||
|
||||
-- 🎮 Keymaps
|
||||
keymap("n", "<leader>dc", dap.continue, { desc = "▶ Start Debugging" })
|
||||
keymap("n", "<leader>do", dap.step_over, { desc = "⏭ Step Over" })
|
||||
keymap("n", "<leader>di", dap.step_into, { desc = "⤵ Step Into" })
|
||||
keymap("n", "<leader>dot", dap.step_out, { desc = "⤴ Step Out" })
|
||||
keymap("n", "<leader>db", dap.toggle_breakpoint, { desc = "🔴 Toggle Breakpoint" })
|
||||
keymap("n", "<leader>dB", function()
|
||||
dap.set_breakpoint(fn.input("Breakpoint condition: "))
|
||||
end, { desc = "⚠ Conditional Breakpoint" })
|
||||
keymap("n", "<leader>dr", dap.repl.open, { desc = "💬 Open REPL" })
|
||||
keymap("n", "<leader>dl", dap.run_last, { desc = "🔁 Run Last Debug" })
|
||||
keymap("n", "<leader>du", dapui.toggle, { desc = "🧩 Toggle DAP UI" })
|
||||
keymap("n", "<leader>dq", dap.terminate, { desc = "⛔ Stop Debugging" })
|
||||
|
||||
-- 🧼 Reset UI
|
||||
keymap("n", "<leader>drt", function()
|
||||
dap.terminate()
|
||||
dapui.close()
|
||||
vim.defer_fn(function()
|
||||
dapui.open()
|
||||
end, 200)
|
||||
end, { desc = "🧼 Reset DAP UI Layout" })
|
||||
|
||||
-- 🧿 Sign Icons
|
||||
for name, icon in pairs({
|
||||
DapBreakpoint = "🔴",
|
||||
|
||||
27
lua/cargdev/plugins/nvim-treesitter-context.lua
Normal file
27
lua/cargdev/plugins/nvim-treesitter-context.lua
Normal file
@@ -0,0 +1,27 @@
|
||||
return {
|
||||
"nvim-treesitter/nvim-treesitter-context",
|
||||
dependencies = { "nvim-treesitter/nvim-treesitter" },
|
||||
event = { "BufReadPre", "BufNewFile" },
|
||||
opts = {
|
||||
enable = true, -- Enable this plugin (Can be enabled/disabled later via commands)
|
||||
max_lines = 10, -- How many lines the window should span. Values <= 0 mean no limit.
|
||||
min_window_height = 0, -- Minimum editor window height to enable context. Values <= 0 mean no limit.
|
||||
line_numbers = true,
|
||||
multiline_threshold = 20, -- Maximum number of lines to show for a single context
|
||||
trim_scope = "outer", -- Which context lines to discard if `max_lines` is exceeded. Choices: 'inner', 'outer'
|
||||
mode = "cursor", -- Line used to calculate context. Choices: 'cursor', 'topline'
|
||||
-- Separator between context and content. Should be a single character string, like '-'.
|
||||
-- When separator is set, the context will only show up when there are at least 2 lines above cursorline.
|
||||
separator = nil,
|
||||
zindex = 20, -- The Z-index of the context window
|
||||
on_attach = nil, -- (fun(buf: integer): boolean) return false to disable attaching
|
||||
},
|
||||
config = function(_, opts)
|
||||
require("treesitter-context").setup(opts)
|
||||
|
||||
-- Optional: Add keymaps for navigating context
|
||||
vim.keymap.set("n", "[c", function()
|
||||
require("treesitter-context").go_to_context(vim.v.count1)
|
||||
end, { silent = true, desc = "Jump to context" })
|
||||
end,
|
||||
}
|
||||
17
lua/cargdev/plugins/ship.lua
Normal file
17
lua/cargdev/plugins/ship.lua
Normal file
@@ -0,0 +1,17 @@
|
||||
return {
|
||||
"seandewar/killersheep.nvim",
|
||||
event = "VeryLazy",
|
||||
dependencies = {
|
||||
"nvim-lua/plenary.nvim", -- Required dependency for killersheep.nvim
|
||||
},
|
||||
config = function()
|
||||
require("killersheep").setup({
|
||||
gore = true, -- Enables/disables blood and gore.
|
||||
keymaps = {
|
||||
move_left = "h", -- Keymap to move cannon to the left.
|
||||
move_right = "l", -- Keymap to move cannon to the right.
|
||||
shoot = "<Space>", -- Keymap to shoot the cannon.
|
||||
},
|
||||
})
|
||||
end,
|
||||
}
|
||||
41
lua/cargdev/plugins/sudoku.lua
Normal file
41
lua/cargdev/plugins/sudoku.lua
Normal file
@@ -0,0 +1,41 @@
|
||||
return {
|
||||
"jim-fx/sudoku.nvim",
|
||||
event = "VeryLazy",
|
||||
config = function()
|
||||
require("sudoku").setup({
|
||||
persist_settings = true, -- safe the settings under vim.fn.stdpath("data"), usually ~/.local/share/nvim,
|
||||
persist_games = true, -- persist a history of all played games
|
||||
default_mappings = true, -- if set to false you need to set your own, like the following:
|
||||
mappings = {
|
||||
{ key = "x", action = "clear_cell" },
|
||||
{ key = "r1", action = "insert=1" },
|
||||
{ key = "r2", action = "insert=2" },
|
||||
{ key = "r3", action = "insert=3" },
|
||||
{ key = "r9", action = "insert=9" },
|
||||
{ key = "gn", action = "new_game" },
|
||||
{ key = "gr", action = "reset_game" },
|
||||
{ key = "gs", action = "view=settings" },
|
||||
{ key = "gt", action = "view=tip" },
|
||||
{ key = "gz", action = "view=zen" },
|
||||
{ key = "gh", action = "view=help" },
|
||||
{ key = "u", action = "undo" },
|
||||
{ key = "<C-r>", action = "redo" },
|
||||
{ key = "+", action = "increment" },
|
||||
{ key = "-", action = "decrement" },
|
||||
},
|
||||
custom_highlights = {
|
||||
board = { fg = "#7d7d7d" },
|
||||
number = { fg = "white", bg = "black" },
|
||||
active_menu = { fg = "white", bg = "black", gui = "bold" },
|
||||
hint_cell = { fg = "white", bg = "yellow" },
|
||||
square = { bg = "#292b35", fg = "white" },
|
||||
column = { bg = "#14151a", fg = "#d5d5d5" },
|
||||
row = { bg = "#14151a", fg = "#d5d5d5" },
|
||||
settings_disabled = { fg = "#8e8e8e", gui = "italic" },
|
||||
same_number = { fg = "white", gui = "bold" },
|
||||
set_number = { fg = "white", gui = "italic" },
|
||||
error = { fg = "white", bg = "#843434" },
|
||||
},
|
||||
})
|
||||
end,
|
||||
}
|
||||
@@ -50,30 +50,5 @@ return {
|
||||
-- Load extensions
|
||||
telescope.load_extension("fzf")
|
||||
telescope.load_extension("dap")
|
||||
|
||||
-- set keymaps
|
||||
local keymap = vim.keymap -- for conciseness
|
||||
|
||||
-- File navigation
|
||||
keymap.set("n", "<leader>ff", "<cmd>Telescope find_files<cr>", { desc = "Find files" })
|
||||
keymap.set("n", "<leader>fs", "<cmd>Telescope live_grep<cr>", { desc = "Live grep" })
|
||||
keymap.set("n", "<leader>fc", "<cmd>Telescope grep_string<cr>", { desc = "Grep string" })
|
||||
keymap.set("n", "<leader>fr", "<cmd>Telescope oldfiles<cr>", { desc = "Recent files" })
|
||||
|
||||
-- Buffer and session management
|
||||
keymap.set("n", "<leader>fb", "<cmd>Telescope buffers<cr>", { desc = "Find buffers" })
|
||||
keymap.set("n", "<leader>fh", "<cmd>Telescope help_tags<cr>", { desc = "Help tags" })
|
||||
keymap.set("n", "<leader>fm", "<cmd>Telescope marks<cr>", { desc = "Find marks" })
|
||||
keymap.set("n", "<leader>fk", "<cmd>Telescope keymaps<cr>", { desc = "Find keymaps" })
|
||||
keymap.set("n", "<leader>fC", "<cmd>Telescope commands<cr>", { desc = "Find commands" })
|
||||
|
||||
-- Git
|
||||
keymap.set("n", "<leader>fg", "<cmd>Telescope git_commits<cr>", { desc = "Git commits" })
|
||||
keymap.set("n", "<leader>fG", "<cmd>Telescope git_bcommits<cr>", { desc = "Git buffer commits" })
|
||||
keymap.set("n", "<leader>fb", "<cmd>Telescope git_branches<cr>", { desc = "Git branches" })
|
||||
keymap.set("n", "<leader>gs", "<cmd>Telescope git_status<cr>", { desc = "Git status" })
|
||||
|
||||
-- Todos
|
||||
keymap.set("n", "<leader>ft", "<cmd>TodoTelescope<cr>", { desc = "Find todos" })
|
||||
end,
|
||||
}
|
||||
|
||||
118
lua/cargdev/plugins/ufo.lua
Normal file
118
lua/cargdev/plugins/ufo.lua
Normal file
@@ -0,0 +1,118 @@
|
||||
return {
|
||||
"kevinhwang91/nvim-ufo",
|
||||
dependencies = {
|
||||
"kevinhwang91/promise-async",
|
||||
"nvim-treesitter/nvim-treesitter",
|
||||
{
|
||||
"luukvbaal/statuscol.nvim",
|
||||
config = function()
|
||||
local builtin = require("statuscol.builtin")
|
||||
require("statuscol").setup({
|
||||
relculright = true,
|
||||
segments = {
|
||||
{ text = { builtin.foldfunc }, click = "v:lua.ScFa" },
|
||||
{ text = { "%s" }, click = "v:lua.ScSa" },
|
||||
{ text = { builtin.lnumfunc, " " }, click = "v:lua.ScLa" },
|
||||
},
|
||||
})
|
||||
end,
|
||||
},
|
||||
},
|
||||
event = { "BufReadPost", "BufNewFile" },
|
||||
init = function()
|
||||
vim.o.foldcolumn = "1"
|
||||
vim.o.foldlevel = 99
|
||||
vim.o.foldlevelstart = 99
|
||||
vim.o.foldenable = true
|
||||
-- Use valid Unicode characters for foldopen and foldclose
|
||||
vim.o.fillchars = [[eob: ,fold: ,foldopen:▾,foldsep: ,foldclose:▸]]
|
||||
vim.o.foldmethod = "manual"
|
||||
vim.o.foldexpr = ""
|
||||
end,
|
||||
opts = {
|
||||
open_fold_hl_timeout = 150,
|
||||
close_fold_kinds_for_ft = {
|
||||
default = { 'imports', 'comment' },
|
||||
json = { 'array' },
|
||||
c = { 'comment', 'region' },
|
||||
},
|
||||
preview = {
|
||||
win_config = {
|
||||
border = { "", "─", "", "", "", "─", "", "" },
|
||||
winhighlight = "Normal:Folded",
|
||||
winblend = 0,
|
||||
},
|
||||
mappings = {
|
||||
scrollU = "<C-u>",
|
||||
scrollD = "<C-d>",
|
||||
jumpTop = "[",
|
||||
jumpBot = "]",
|
||||
},
|
||||
},
|
||||
provider_selector = function(bufnr, filetype, buftype)
|
||||
return { "treesitter", "indent" }
|
||||
end,
|
||||
fold_virt_text_handler = function(virtText, lnum, endLnum, width, truncate)
|
||||
local newVirtText = {}
|
||||
local suffix = (" %d "):format(endLnum - lnum)
|
||||
local sufWidth = vim.fn.strdisplaywidth(suffix)
|
||||
local targetWidth = width - sufWidth
|
||||
local curWidth = 0
|
||||
for _, chunk in ipairs(virtText) do
|
||||
local chunkText = chunk[1]
|
||||
local chunkWidth = vim.fn.strdisplaywidth(chunkText)
|
||||
if targetWidth > curWidth + chunkWidth then
|
||||
table.insert(newVirtText, chunk)
|
||||
else
|
||||
chunkText = truncate(chunkText, targetWidth - curWidth)
|
||||
local hlGroup = chunk[2]
|
||||
table.insert(newVirtText, { chunkText, hlGroup })
|
||||
chunkWidth = vim.fn.strdisplaywidth(chunkText)
|
||||
if curWidth + chunkWidth < targetWidth then
|
||||
suffix = suffix .. (" "):rep(targetWidth - curWidth - chunkWidth)
|
||||
end
|
||||
break
|
||||
end
|
||||
curWidth = curWidth + chunkWidth
|
||||
end
|
||||
table.insert(newVirtText, { suffix, "MoreMsg" })
|
||||
return newVirtText
|
||||
end,
|
||||
},
|
||||
config = function(_, opts)
|
||||
local ufo = require("ufo")
|
||||
ufo.setup(opts)
|
||||
-- Keymaps are in keymaps/ufo.lua
|
||||
vim.api.nvim_create_autocmd("FileType", {
|
||||
pattern = { "lua", "python", "javascript", "typescript", "c", "cpp", "rust", "go" },
|
||||
callback = function()
|
||||
ufo.setFoldVirtTextHandler(nil, function(virtText, lnum, endLnum, width, truncate)
|
||||
local newVirtText = {}
|
||||
local suffix = (" %d "):format(endLnum - lnum)
|
||||
local sufWidth = vim.fn.strdisplaywidth(suffix)
|
||||
local targetWidth = width - sufWidth
|
||||
local curWidth = 0
|
||||
for _, chunk in ipairs(virtText) do
|
||||
local chunkText = chunk[1]
|
||||
local chunkWidth = vim.fn.strdisplaywidth(chunkText)
|
||||
if targetWidth > curWidth + chunkWidth then
|
||||
table.insert(newVirtText, chunk)
|
||||
else
|
||||
chunkText = truncate(chunkText, targetWidth - curWidth)
|
||||
local hlGroup = chunk[2]
|
||||
table.insert(newVirtText, { chunkText, hlGroup })
|
||||
chunkWidth = vim.fn.strdisplaywidth(chunkText)
|
||||
if curWidth + chunkWidth < targetWidth then
|
||||
suffix = suffix .. (" "):rep(targetWidth - curWidth - chunkWidth)
|
||||
end
|
||||
break
|
||||
end
|
||||
curWidth = curWidth + chunkWidth
|
||||
end
|
||||
table.insert(newVirtText, { suffix, "MoreMsg" })
|
||||
return newVirtText
|
||||
end)
|
||||
end,
|
||||
})
|
||||
end,
|
||||
}
|
||||
10
lua/cargdev/plugins/yaml.lua
Normal file
10
lua/cargdev/plugins/yaml.lua
Normal file
@@ -0,0 +1,10 @@
|
||||
return {
|
||||
"cuducos/yaml.nvim",
|
||||
ft = { "yaml" }, -- optional
|
||||
dependencies = {
|
||||
"nvim-treesitter/nvim-treesitter",
|
||||
"folke/snacks.nvim", -- optional
|
||||
"nvim-telescope/telescope.nvim", -- optional
|
||||
"ibhagwan/fzf-lua", -- optional
|
||||
},
|
||||
}
|
||||
58
tree.log
58
tree.log
@@ -1,58 +0,0 @@
|
||||
.
|
||||
├── ftplugin
|
||||
│ └── java.lua
|
||||
├── init.lua
|
||||
├── keyboard_mappings.md
|
||||
├── kkk
|
||||
├── lazigitconfig.log
|
||||
├── lazy-lock.json
|
||||
├── lua
|
||||
│ └── cargdev
|
||||
│ ├── core
|
||||
│ │ ├── function
|
||||
│ │ │ └── openTerminal.lua
|
||||
│ │ ├── init.lua
|
||||
│ │ ├── keymaps.lua
|
||||
│ │ └── options.lua
|
||||
│ ├── lazy.lua
|
||||
│ └── plugins
|
||||
│ ├── aicargdev.lua
|
||||
│ ├── alpha.lua
|
||||
│ ├── auto-session.lua
|
||||
│ ├── autopairs.lua
|
||||
│ ├── bufferline.lua
|
||||
│ ├── buffertabs.lua
|
||||
│ ├── colorscheme.lua
|
||||
│ ├── comments.lua
|
||||
│ ├── copilot.lua
|
||||
│ ├── dap.lua
|
||||
│ ├── dressing.lua
|
||||
│ ├── formatting.lua
|
||||
│ ├── gitsigns.lua
|
||||
│ ├── indent-blankline.lua
|
||||
│ ├── init.lua
|
||||
│ ├── lazygit.lua
|
||||
│ ├── linting.lua
|
||||
│ ├── lsp
|
||||
│ │ ├── lspconfig.lua
|
||||
│ │ └── mason.lua
|
||||
│ ├── lualine.lua
|
||||
│ ├── noice.lua
|
||||
│ ├── nvim-cmp.lua
|
||||
│ ├── nvim-jdtls.lua
|
||||
│ ├── nvim-tree.lua
|
||||
│ ├── nvim-treesitter-text-objects.lua
|
||||
│ ├── substitute.lua
|
||||
│ ├── surround.lua
|
||||
│ ├── telescope.lua
|
||||
│ ├── tmux.lua
|
||||
│ ├── todo-comments.lua
|
||||
│ ├── treesitter.lua
|
||||
│ ├── trouble.lua
|
||||
│ ├── vim-maximizer.lua
|
||||
│ ├── wakatime.lua
|
||||
│ └── which-key.lua
|
||||
├── README.md
|
||||
└── tree.log
|
||||
|
||||
8 directories, 48 files
|
||||
Reference in New Issue
Block a user