doc: Update documentation
- Moved docs to docs/ - All documentation files moved: - docs/KEYMAPS.md - Complete keybinding reference(rewritten) - docs/PLUGINS.md - Plugin list - docs/NATIVE_AUTO_WRAPPER_GUIDE.md - Text wrapping guide - docs/TELESCOPE_TO_SNACKS_MIGRATION.md - Migration notes - docs/keyboard_mappings.md - QMK keyboard layout - docs/CHANGELOG_OLD.md - Previous changelog archived - Rewrote docs/KEYMAPS.md - Based on the actual current keymap files. Removed references to deleted plugins (flash, harpoon, dial, screenkey, persistence, LSPSaga). Updated LSP keymaps to reflect fzf-lua, DAP keymaps to reflect plugin-side registration, and added CopilotChat and g keymaps. - Updated README.md - Fixed all doc links to docs/, removed harpoon/flash/dial/screenkey/persistence references, updated essential keymaps to current reality (fzf-lua for LSP, Snacks for navigation, <leader>dcr for debug, <leader>jd for dynamic attach), added Bun debug support mention. - Created CHANGELOG.md at root with: - 2026-02-10: Documentation restructure - 2026-02-08: hlchunk, lspconfig, lualine, ufo fixes - 2026-02-05: Major cleanup - 15+ plugins removed, core refactors, keymap rework, DAP/Copilot reorganization, fzf-lua migration for LSP - 2026-01-13/15: Bug fixes and version bumps - 2026-01-10: Previous changelog entries preserved
This commit is contained in:
246
docs/CHANGELOG_OLD.md
Normal file
246
docs/CHANGELOG_OLD.md
Normal file
@@ -0,0 +1,246 @@
|
||||
# Changelog
|
||||
|
||||
All notable changes to this Neovim configuration will be documented in this file.
|
||||
|
||||
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
|
||||
|
||||
---
|
||||
|
||||
## [Unreleased]
|
||||
|
||||
### Added
|
||||
- **Python Debugger (debugpy)**: Full Python debugging support with multiple configurations
|
||||
- Launch File - Debug current Python file
|
||||
- Launch with Arguments - Debug with custom arguments
|
||||
- Attach Remote - Attach to debugpy server (port 5678)
|
||||
- Django - Debug Django with `manage.py runserver`
|
||||
- FastAPI - Debug FastAPI with uvicorn
|
||||
- Flask - Debug Flask application
|
||||
- **Node.js/NestJS Debug Configurations**: Extended TypeScript/JavaScript debugging
|
||||
- Launch NestJS (`dist/main.js`) with source maps
|
||||
- Launch Current File
|
||||
- Launch with ts-node (debug TypeScript directly)
|
||||
- Attach to NestJS (port 9229)
|
||||
- Attach to Process (pick from running processes)
|
||||
- **Mason Debug Adapters**: Added `debugpy` and `js-debug-adapter` to auto-install list
|
||||
- **README Documentation**: Added comprehensive "Debugging Setup" section with all configurations
|
||||
- **Avante.nvim AI Assistant**: Added Avante.nvim with local LLM support to README documentation
|
||||
- **Bash Treesitter Parser**: Installed bash parser for noice.nvim cmdline highlighting
|
||||
- **Local Configuration Support**: `local.lua` is now loaded at startup and exposed via `vim.g.cargdev_local`
|
||||
- Enables machine-specific paths without hardcoding
|
||||
- Safe loading with `pcall` (won't error if file doesn't exist)
|
||||
- Plugins gracefully skip if required config is missing
|
||||
|
||||
### Changed
|
||||
- **Avante Plugin**: Now uses `local.lua` for all paths and settings
|
||||
- `avante_dev_path` for plugin directory
|
||||
- `avante_endpoint`, `avante_api_key_name`, `avante_model` for provider config
|
||||
- **IdeaDrop Plugin**: Now uses `IDEA_DIR` from `local.lua` instead of environment variable
|
||||
|
||||
### Removed
|
||||
- **Hardcoded Paths**: Removed all hardcoded user paths from plugin configs
|
||||
- `avante.lua` - uses `local.lua` values
|
||||
- `ideaMap.lua` - uses `local.lua` values
|
||||
- `leetcode.lua` - removed commented hardcoded path
|
||||
- `lazygit.lua` - removed commented hardcoded path
|
||||
|
||||
### Fixed
|
||||
- **Java Debug Adapter Paths**: Fixed incorrect paths in `ftplugin/java.lua`
|
||||
- Changed `java-debug` → `java-debug-adapter/extension/server/`
|
||||
- Changed `vscode-java-test` → `java-test/extension/server/`
|
||||
- **Node.js DAP Adapter**: Fixed js-debug-adapter configuration in `dap.lua`
|
||||
- Changed adapter type from `executable` to `server` (required by js-debug-adapter)
|
||||
- Renamed adapter from `node` to `pwa-node` (standard DAP name)
|
||||
- Added proper source map resolution and skipFiles patterns
|
||||
- **Auto-session Lazy Loading**: Changed from `event = "VeryLazy"` to `lazy = false` to enable session auto-restore on startup
|
||||
- **Alpha Dashboard Config**: Fixed `enable` to `enabled` (correct lazy.nvim spec key)
|
||||
- **Snacks vs Alpha Conflict**: Disabled `Snacks.dashboard` in favor of `alpha-nvim` for CARGDEV branding
|
||||
|
||||
### Added
|
||||
- **Java Debug & Run Keymaps**: New keybindings for Java development
|
||||
- `<leader>jd` - Debug Class (DAP)
|
||||
- `<leader>jt` - Test Class
|
||||
- `<leader>jn` - Test Nearest Method
|
||||
- `<leader>jr` - Run Java File
|
||||
- `<leader>jm` - Run Maven Project
|
||||
- `<leader>jg` - Run Gradle Project
|
||||
- **Java Debug Dependencies**: Added `java-debug-adapter` and `java-test` to Mason ensure_installed
|
||||
|
||||
### Changed
|
||||
- **Colorscheme Configuration**: Enhanced `cargdev-cyberpunk` setup
|
||||
- Enabled transparency
|
||||
- Enabled italic comments
|
||||
- Enabled bold keywords, functions, and types
|
||||
- Enabled terminal colors
|
||||
|
||||
### Fixed
|
||||
- **Java DAP Configuration**: Fixed debug adapter not loading
|
||||
- Changed `bundles = {}` to `bundles = bundles` to properly load debug JARs
|
||||
- Added `on_attach` callback to setup DAP after JDTLS attaches
|
||||
- Enables hot code replacement during debugging
|
||||
- **Broken Java DAP Adapter**: Removed manual Java adapter with undefined `port` variable
|
||||
- Now handled automatically by nvim-jdtls via `jdtls.setup_dap()`
|
||||
|
||||
---
|
||||
|
||||
## [2026-01-10]
|
||||
|
||||
### Added
|
||||
- **Custom Colorscheme**: Using `cargdev-cyberpunk` theme
|
||||
- Vibrant, high-contrast cyberpunk aesthetic with neon colors
|
||||
- Hot pink keywords, electric purple types, cyan strings, green functions
|
||||
- Full TypeScript/LSP/Treesitter support
|
||||
- Deep blue backgrounds with neon accents
|
||||
- Loaded with high priority for consistent UI
|
||||
- **Which-Key Group Names**: Added organized group names for better keymap discoverability
|
||||
- Groups: Buffer, Code/Copilot, Debug, Explorer, Find/Files, Git, LSP, Format, Quickfix, Session, Tab/Terminal, Trouble, Copilot Chat
|
||||
- **Auto-Format on Save**: Enabled smart auto-formatting with conform.nvim
|
||||
- Skips certain filetypes (sql, markdown)
|
||||
- Skips files in node_modules
|
||||
- Added `:FormatToggle` command to enable/disable
|
||||
- **Diagnostic Float on Hover**: Diagnostics now appear automatically when cursor holds
|
||||
- **Safe Buffer Close**: `<leader>bd` now prompts for unsaved changes
|
||||
- Options: Save & Close, Discard & Close, Cancel
|
||||
- `<leader>bD` for force close without confirmation
|
||||
- **Quickfix Navigation Keymaps**:
|
||||
- `<leader>qn` - Next quickfix item
|
||||
- `<leader>qp` - Previous quickfix item
|
||||
- `<leader>qo` - Open quickfix list
|
||||
- `<leader>qq` - Close quickfix list
|
||||
- `<leader>qf` - First quickfix item
|
||||
- `<leader>ql` - Last quickfix item
|
||||
- **Location List Navigation Keymaps**:
|
||||
- `<leader>ln` - Next location item
|
||||
- `<leader>lp` - Previous location item
|
||||
- `<leader>lo` - Open location list
|
||||
- `<leader>lq` - Close location list
|
||||
- **Configuration Validation**: Startup checks for:
|
||||
- Neovim version (0.9+ recommended)
|
||||
- Required executables (git, rg, node)
|
||||
- **Plugin Update Notifications**: Lazy.nvim now notifies about available updates (daily check)
|
||||
- **CheckConfig Command**: Quick access to health checks
|
||||
|
||||
### Changed
|
||||
- **Session Keymaps**: Renamed to avoid conflicts with substitute
|
||||
- `<leader>ss` → `<leader>sS` (Session Save)
|
||||
- `<leader>sr` → `<leader>sR` (Session Restore)
|
||||
- **Substitute Keymaps**: Reorganized to avoid conflicts
|
||||
- `<leader>ss` → `<leader>sl` (Substitute Line)
|
||||
- `<leader>sub` remains for substitute with motion
|
||||
- `<leader>S` remains for substitute to end of line
|
||||
- **Keymap Descriptions**: Standardized format (e.g., "Session: Save", "Substitute: Line")
|
||||
|
||||
### Fixed
|
||||
- **Duplicate Window Management Keymaps**: Removed duplicates from `personal.lua`, centralized in `window.lua`
|
||||
- **Duplicate Resize Keymaps**: Removed duplicates, centralized in `window.lua`
|
||||
- **Redundant Filetype Detection**: Now only runs if filetype is not already detected
|
||||
- **Double Function Loading**: Functions now load once on VimEnter with flag protection
|
||||
- **Duplicate synmaxcol Setting**: Removed duplicate (was 240 then 200), kept 200
|
||||
- **Duplicate foldmethod Setting**: Removed duplicate, kept `indent` (faster than `syntax`)
|
||||
- **Duplicate foldlevel Setting**: Removed duplicate setting
|
||||
- **Environment Variable Validation**: `IDEA_DIR` now validated before Obsidian link setup
|
||||
|
||||
### Removed
|
||||
- **Temporary Files**:
|
||||
- `kkk` - Unknown purpose temporary file
|
||||
- `cleanup_deprecated_adapters.lua` - Cleanup script no longer needed
|
||||
- **IMPROVEMENTS.md**: All issues resolved, file removed
|
||||
- **Commented Code**:
|
||||
- Tmux navigation keymaps from `personal.lua`
|
||||
- Commented `x` keymap explanation from `general.lua`
|
||||
- Commented `project_config` bootstrap from `init.lua`
|
||||
|
||||
### Performance
|
||||
- Optimized filetype detection (conditional execution)
|
||||
- Reduced redundant option settings
|
||||
- Single function loading instead of double
|
||||
|
||||
---
|
||||
|
||||
## [Previous] - Pre-Changelog
|
||||
|
||||
### Features Present
|
||||
- Lazy.nvim plugin management
|
||||
- Full LSP support with Mason
|
||||
- nvim-cmp completion
|
||||
- Snacks.nvim + Telescope file navigation
|
||||
- nvim-tree file explorer
|
||||
- LazyGit integration
|
||||
- GitHub Copilot + Copilot Chat
|
||||
- DAP debugging with UI
|
||||
- Conform.nvim formatting
|
||||
- Trouble.nvim diagnostics
|
||||
- Native auto-wrapping configuration
|
||||
- Custom lualine theme with word count
|
||||
|
||||
### Migration History
|
||||
- Migrated from Telescope to Snacks for primary navigation
|
||||
- Kept Telescope for git-specific features
|
||||
- See [TELESCOPE_TO_SNACKS_MIGRATION.md](./TELESCOPE_TO_SNACKS_MIGRATION.md) for details
|
||||
|
||||
---
|
||||
|
||||
## File Changes Summary
|
||||
|
||||
### Modified Files
|
||||
| File | Changes |
|
||||
|------|---------|
|
||||
| `lua/cargdev/plugins/dap.lua` | Fixed Node.js adapter, added Python debugpy config |
|
||||
| `ftplugin/java.lua` | Fixed java-debug-adapter and java-test paths |
|
||||
| `lua/cargdev/plugins/lsp/mason.lua` | Added debugpy and js-debug-adapter to ensure_installed |
|
||||
| `README.md` | Added Debugging Setup section with keymaps and configurations |
|
||||
| `lua/cargdev/core/keymaps/README.md` | Added dap.lua and other keymap files to structure |
|
||||
| `lua/cargdev/core/keymaps/personal.lua` | Removed duplicates, added quickfix/location keymaps, safe buffer close |
|
||||
| `lua/cargdev/core/keymaps/plugins.lua` | Fixed session/substitute keymap conflicts |
|
||||
| `lua/cargdev/core/keymaps/general.lua` | Added vault_path validation, removed commented code |
|
||||
| `lua/cargdev/core/keymaps/window.lua` | Centralized window management keymaps |
|
||||
| `lua/cargdev/core/init.lua` | Fixed double loading, added diagnostic hover, config validation, loads `local.lua` |
|
||||
| `lua/cargdev/plugins/avante.lua` | Uses `local.lua` for paths and settings, removed hardcoded values |
|
||||
| `lua/cargdev/plugins/ideaMap.lua` | Uses `local.lua` for `IDEA_DIR`, removed env var fallback |
|
||||
| `lua/cargdev/plugins/leetcode.lua` | Removed commented hardcoded path |
|
||||
| `lua/cargdev/plugins/lazygit.lua` | Removed commented hardcoded path |
|
||||
| `lua/cargdev/core/options.lua` | Removed duplicate settings (synmaxcol, foldmethod, foldlevel) |
|
||||
| `lua/cargdev/plugins/which-key.lua` | Added group names configuration |
|
||||
| `lua/cargdev/plugins/formatting.lua` | Enabled auto-format on save with smart filtering |
|
||||
| `lua/cargdev/lazy.lua` | Enabled plugin update notifications |
|
||||
| `README.md` | Complete rewrite with proper documentation |
|
||||
|
||||
### Deleted Files
|
||||
| File | Reason |
|
||||
|------|--------|
|
||||
| `kkk` | Temporary file, unknown purpose |
|
||||
| `cleanup_deprecated_adapters.lua` | One-time cleanup script, no longer needed |
|
||||
| `IMPROVEMENTS.md` | All issues resolved |
|
||||
|
||||
### New Files
|
||||
| File | Purpose |
|
||||
|------|---------|
|
||||
| `CHANGELOG.md` | Track configuration changes |
|
||||
|
||||
---
|
||||
|
||||
## Keymap Reference
|
||||
|
||||
### New/Changed Keymaps
|
||||
|
||||
| Keymap | Action | File |
|
||||
|--------|--------|------|
|
||||
| `<leader>sS` | Session: Save | plugins.lua |
|
||||
| `<leader>sR` | Session: Restore | plugins.lua |
|
||||
| `<leader>sl` | Substitute: Line | plugins.lua |
|
||||
| `<leader>bd` | Buffer: Close (safe) | personal.lua |
|
||||
| `<leader>bD` | Buffer: Force close | personal.lua |
|
||||
| `<leader>qn` | Quickfix: Next | personal.lua |
|
||||
| `<leader>qp` | Quickfix: Previous | personal.lua |
|
||||
| `<leader>qo` | Quickfix: Open | personal.lua |
|
||||
| `<leader>qq` | Quickfix: Close | personal.lua |
|
||||
| `<leader>qf` | Quickfix: First | personal.lua |
|
||||
| `<leader>ql` | Quickfix: Last | personal.lua |
|
||||
| `<leader>ln` | Location: Next | personal.lua |
|
||||
| `<leader>lp` | Location: Previous | personal.lua |
|
||||
| `<leader>lo` | Location: Open | personal.lua |
|
||||
| `<leader>lq` | Location: Close | personal.lua |
|
||||
|
||||
---
|
||||
|
||||
*Last Updated: January 13, 2026*
|
||||
546
docs/KEYMAPS.md
Normal file
546
docs/KEYMAPS.md
Normal file
@@ -0,0 +1,546 @@
|
||||
# Complete Keymaps Reference
|
||||
|
||||
**Leader Key: `<Space>`**
|
||||
|
||||
## Table of Contents
|
||||
- [General](#general)
|
||||
- [Personal Workflow](#personal-workflow)
|
||||
- [Navigation (Snacks Picker)](#navigation-snacks-picker)
|
||||
- [LSP & Code Intelligence](#lsp--code-intelligence)
|
||||
- [File Management](#file-management)
|
||||
- [Editing](#editing)
|
||||
- [Git](#git)
|
||||
- [Debugging (DAP)](#debugging-dap)
|
||||
- [Copilot & AI](#copilot--ai)
|
||||
- [Terminal](#terminal)
|
||||
- [Window Management](#window-management)
|
||||
- [Database](#database)
|
||||
- [LeetCode](#leetcode)
|
||||
- [Text Wrapping](#text-wrapping)
|
||||
- [Folding (nvim-ufo)](#folding-nvim-ufo)
|
||||
- [Session Management](#session-management)
|
||||
- [Commands](#commands)
|
||||
|
||||
---
|
||||
|
||||
## General
|
||||
|
||||
| Key | Mode | Action |
|
||||
|-----|------|--------|
|
||||
| `jj` | i | Exit insert mode |
|
||||
| `<leader>nh` | n | Clear search highlights |
|
||||
| `<leader>Q` | n | Quit all |
|
||||
|
||||
---
|
||||
|
||||
## Personal Workflow
|
||||
|
||||
### File Management
|
||||
| Key | Mode | Action |
|
||||
|-----|------|--------|
|
||||
| `<leader>w` | n | Save file |
|
||||
| `<leader>q` | n | Quit |
|
||||
| `<leader>xa` | n | Save and close all |
|
||||
| `<leader>so` | n | Reload nvim (source %) |
|
||||
| `<leader>no` | n | Clear search highlight |
|
||||
|
||||
### Editing Shortcuts
|
||||
| Key | Mode | Action |
|
||||
|-----|------|--------|
|
||||
| `<leader>u` | n | Select entire file |
|
||||
| `<leader>4` | n | Duplicate line below |
|
||||
| `<leader>+` | n | Increment number |
|
||||
| `<leader>-` | n | Decrement number |
|
||||
| `<leader>sy` | n | Re-indent entire file |
|
||||
| `<C-e>` | n | Fast scroll down (10 lines) |
|
||||
| `<C-y>` | n | Fast scroll up (10 lines) |
|
||||
|
||||
### Buffer Management
|
||||
| Key | Mode | Action |
|
||||
|-----|------|--------|
|
||||
| `<leader>bd` | n | Close buffer (safe, prompts if modified) |
|
||||
| `<leader>bD` | n | Force close buffer |
|
||||
| `<C-p>` | n | Next buffer |
|
||||
| `<C-n>` | n | Previous buffer |
|
||||
|
||||
### Coding Shortcuts
|
||||
| Key | Mode | Action |
|
||||
|-----|------|--------|
|
||||
| `<leader>re` | n | Insert React import at top |
|
||||
| `<leader>,` | n | Add comma at end of line |
|
||||
| `<leader>;` | n | Add semicolon at end of line |
|
||||
| `<leader>xr` | n | Run file with Node.js |
|
||||
|
||||
### Quickfix Navigation
|
||||
| Key | Mode | Action |
|
||||
|-----|------|--------|
|
||||
| `<leader>xn` | n | Next quickfix item |
|
||||
| `<leader>xp` | n | Previous quickfix item |
|
||||
| `<leader>xo` | n | Open quickfix list |
|
||||
| `<leader>xq` | n | Close quickfix list |
|
||||
| `<leader>xf` | n | First quickfix item |
|
||||
| `<leader>xl` | n | Last quickfix item |
|
||||
|
||||
### Location List Navigation
|
||||
| Key | Mode | Action |
|
||||
|-----|------|--------|
|
||||
| `<leader>ln` | n | Next location item |
|
||||
| `<leader>lp` | n | Previous location item |
|
||||
| `<leader>lo` | n | Open location list |
|
||||
| `<leader>lq` | n | Close location list |
|
||||
|
||||
---
|
||||
|
||||
## Navigation (Snacks Picker)
|
||||
|
||||
### File Navigation
|
||||
| Key | Mode | Action |
|
||||
|-----|------|--------|
|
||||
| `<leader>ff` | n | Find files |
|
||||
| `<leader>fs` | n | Live grep |
|
||||
| `<leader>fc` | n | Grep string under cursor |
|
||||
| `<leader>fr` | n | Recent files |
|
||||
|
||||
### Buffer & Utility Search
|
||||
| Key | Mode | Action |
|
||||
|-----|------|--------|
|
||||
| `<leader>fb` | n | Find buffers |
|
||||
| `<leader>fh` | n | Help tags |
|
||||
| `<leader>fm` | n | Find marks |
|
||||
| `<leader>fk` | n | Find keymaps |
|
||||
| `<leader>fC` | n | Find commands |
|
||||
|
||||
### Git (Telescope Fallback)
|
||||
| Key | Mode | Action |
|
||||
|-----|------|--------|
|
||||
| `<leader>fG` | n | Git commits |
|
||||
| `<leader>fB` | n | Git buffer commits |
|
||||
| `<leader>fg` | n | Git branches |
|
||||
| `<leader>gs` | n | Git status |
|
||||
|
||||
### TODO Search
|
||||
| Key | Mode | Action |
|
||||
|-----|------|--------|
|
||||
| `<leader>ft` | n | Find TODOs (Telescope) |
|
||||
|
||||
### Telescope (Unfiltered)
|
||||
| Key | Mode | Action |
|
||||
|-----|------|--------|
|
||||
| `<leader>fF` | n | Find files (all, unfiltered) |
|
||||
|
||||
---
|
||||
|
||||
## LSP & Code Intelligence
|
||||
|
||||
### Navigation (fzf-lua)
|
||||
| Key | Mode | Action |
|
||||
|-----|------|--------|
|
||||
| `gd` | n | Go to definition |
|
||||
| `gi` | n | Go to implementation |
|
||||
| `gr` | n | Show references |
|
||||
| `gt` | n | Go to type definition |
|
||||
|
||||
### Symbols
|
||||
| Key | Mode | Action |
|
||||
|-----|------|--------|
|
||||
| `<leader>ds` | n | Document symbols |
|
||||
| `<leader>lw` | n | Workspace symbols |
|
||||
|
||||
### Code Actions & Rename
|
||||
| Key | Mode | Action |
|
||||
|-----|------|--------|
|
||||
| `<leader>ca` | n | Code actions |
|
||||
| `<leader>rn` | n | Rename symbol |
|
||||
| `H` | n | Hover documentation |
|
||||
|
||||
### Diagnostics
|
||||
| Key | Mode | Action |
|
||||
|-----|------|--------|
|
||||
| `<leader>D` | n | Workspace diagnostics |
|
||||
| `<leader>dd` | n | Line diagnostics (float) |
|
||||
| `[d` | n | Previous diagnostic |
|
||||
| `]d` | n | Next diagnostic |
|
||||
|
||||
### Formatting
|
||||
| Key | Mode | Action |
|
||||
|-----|------|--------|
|
||||
| `<leader>mm` | n, v | Format with conform |
|
||||
|
||||
---
|
||||
|
||||
## File Management
|
||||
|
||||
### File Explorer (nvim-tree)
|
||||
| Key | Mode | Action |
|
||||
|-----|------|--------|
|
||||
| `<leader>e` | n | Toggle file explorer |
|
||||
|
||||
Inside nvim-tree:
|
||||
| Key | Action |
|
||||
|-----|--------|
|
||||
| `o` | Open file |
|
||||
| `s` | Open in vertical split |
|
||||
| `i` | Open in horizontal split |
|
||||
| `a` | Create new file |
|
||||
| `r` | Rename |
|
||||
| `d` | Delete |
|
||||
| `x` | Cut |
|
||||
| `y` | Copy |
|
||||
| `p` | Paste |
|
||||
| `u` | Go up one directory |
|
||||
| `<leader>f` | Change root to node |
|
||||
|
||||
### Buffer Cycling
|
||||
| Key | Mode | Action |
|
||||
|-----|------|--------|
|
||||
| `<S-l>` | n | Next buffer |
|
||||
| `<S-h>` | n | Previous buffer |
|
||||
|
||||
---
|
||||
|
||||
## Editing
|
||||
|
||||
### Comments (Comment.nvim)
|
||||
| Key | Mode | Action |
|
||||
|-----|------|--------|
|
||||
| `<leader>/` | n, v | Toggle comment |
|
||||
| `gcc` | n | Toggle line comment |
|
||||
| `gc` | n | Toggle comment |
|
||||
| `gco` | n | Insert comment below |
|
||||
| `gcO` | n | Insert comment above |
|
||||
| `gcA` | n | Insert comment at end of line |
|
||||
| `gb` | n | Toggle block comment |
|
||||
| `gbc` | n | Toggle block comment |
|
||||
|
||||
### Substitute (substitute.nvim)
|
||||
| Key | Mode | Action |
|
||||
|-----|------|--------|
|
||||
| `<leader>sub` | n | Substitute with motion |
|
||||
| `<leader>sl` | n | Substitute line |
|
||||
| `<leader>S` | n | Substitute to end of line |
|
||||
|
||||
### Surround (nvim-surround)
|
||||
| Key | Mode | Action |
|
||||
|-----|------|--------|
|
||||
| `<leader>sa` | n | Add surrounding |
|
||||
| `<leader>sd` | n | Delete surrounding |
|
||||
| `<leader>sr` | n | Replace surrounding |
|
||||
| `ys` | n | Add surrounding (classic) |
|
||||
| `yss` | n | Add surrounding to line |
|
||||
| `yS` | n | Add surrounding on new lines |
|
||||
| `ySS` | n | Add surrounding to line on new lines |
|
||||
|
||||
### Console.log
|
||||
| Key | Mode | Action |
|
||||
|-----|------|--------|
|
||||
| `<leader>cl` | n | Insert console.log snippet |
|
||||
|
||||
### TODO Comments
|
||||
| Key | Mode | Action |
|
||||
|-----|------|--------|
|
||||
| `<leader>xt` | n | Open TODOs in Trouble |
|
||||
|
||||
---
|
||||
|
||||
## Git
|
||||
|
||||
### LazyGit
|
||||
| Key | Mode | Action |
|
||||
|-----|------|--------|
|
||||
| `<leader>gg` | n | Open LazyGit |
|
||||
|
||||
### Gitsigns (buffer-local)
|
||||
| Key | Mode | Action |
|
||||
|-----|------|--------|
|
||||
| `]h` | n | Next hunk |
|
||||
| `[h` | n | Previous hunk |
|
||||
| `<leader>hs` | n, v | Stage hunk |
|
||||
| `<leader>hr` | n, v | Reset hunk |
|
||||
| `<leader>hS` | n | Stage buffer |
|
||||
| `<leader>hR` | n | Reset buffer |
|
||||
| `<leader>hu` | n | Undo stage hunk |
|
||||
| `<leader>hp` | n | Preview hunk |
|
||||
| `<leader>hb` | n | Blame line (full) |
|
||||
| `<leader>hB` | n | Toggle line blame |
|
||||
| `<leader>hd` | n | Diff this |
|
||||
| `<leader>hD` | n | Diff this ~ |
|
||||
| `ih` | o, x | Select hunk (text object) |
|
||||
|
||||
### Trouble (Diagnostics Panel)
|
||||
| Key | Mode | Action |
|
||||
|-----|------|--------|
|
||||
| `<leader>Xx` | n | Toggle Trouble |
|
||||
| `<leader>Xw` | n | Workspace diagnostics |
|
||||
| `<leader>Xd` | n | Document diagnostics |
|
||||
| `<leader>Xl` | n | Location list |
|
||||
| `<leader>Xq` | n | Quickfix list |
|
||||
|
||||
---
|
||||
|
||||
## Debugging (DAP)
|
||||
|
||||
### Debug Control
|
||||
| Key | Mode | Action |
|
||||
|-----|------|--------|
|
||||
| `<leader>dcr` | n | Start/Continue debugging |
|
||||
| `<leader>do` | n | Step over |
|
||||
| `<leader>di` | n | Step into |
|
||||
| `<leader>dot` | n | Step out |
|
||||
| `<leader>db` | n | Toggle breakpoint |
|
||||
| `<leader>dB` | n | Set conditional breakpoint |
|
||||
| `<leader>dr` | n | Open REPL |
|
||||
| `<leader>dl` | n | Run last debug config |
|
||||
| `<leader>du` | n | Toggle DAP UI |
|
||||
| `<leader>dq` | n | Stop debugging |
|
||||
| `<leader>drt` | n | Reset DAP UI layout |
|
||||
|
||||
### Debug Navigation
|
||||
| Key | Mode | Action |
|
||||
|-----|------|--------|
|
||||
| `<leader>dcf` | n | List/select DAP configs |
|
||||
| `<leader>dcb` | n | List breakpoints |
|
||||
| `<leader>dco` | n | DAP Commands (REPL) |
|
||||
|
||||
### Dynamic Attach
|
||||
| Key | Mode | Action |
|
||||
|-----|------|--------|
|
||||
| `<leader>jd` | n | Debug attach (dynamic port, Bun/Node) |
|
||||
|
||||
### Project Run/Debug
|
||||
| Key | Mode | Action |
|
||||
|-----|------|--------|
|
||||
| `<leader>pr` | n | Run project |
|
||||
| `<leader>pd` | n | Debug project |
|
||||
| `<leader>p` | n | Run project (quick) |
|
||||
|
||||
---
|
||||
|
||||
## Copilot & AI
|
||||
|
||||
### Copilot Commands
|
||||
| Key | Mode | Action |
|
||||
|-----|------|--------|
|
||||
| `<leader>cp` | n | Open Copilot panel |
|
||||
| `<leader>cD` | n | Disable Copilot |
|
||||
| `<leader>cE` | n | Enable Copilot |
|
||||
| `<leader>cs` | n | Copilot status |
|
||||
|
||||
### Copilot Panel Navigation
|
||||
| Key | Mode | Action |
|
||||
|-----|------|--------|
|
||||
| `[[` | n | Previous suggestion (in panel) |
|
||||
| `]]` | n | Next suggestion (in panel) |
|
||||
| `<CR>` | n | Accept suggestion (in panel) |
|
||||
| `rp` | n | Refresh panel |
|
||||
| `<M-CR>` | n | Open panel |
|
||||
|
||||
### Inline Suggestions
|
||||
| Key | Mode | Action |
|
||||
|-----|------|--------|
|
||||
| `<leader>]` | i | Next suggestion |
|
||||
| `<leader>[` | i | Previous suggestion |
|
||||
| `<C-]>` | i | Dismiss suggestion |
|
||||
|
||||
### CopilotChat
|
||||
| Key | Mode | Action |
|
||||
|-----|------|--------|
|
||||
| `<leader>cc` | n | Toggle CopilotChat window |
|
||||
| `<leader>cq` | n | Quick chat (whole buffer) |
|
||||
| `<leader>ce` | n, v | Explain code |
|
||||
| `<leader>cr` | n, v | Review code |
|
||||
| `<leader>cf` | n, v | Fix code |
|
||||
| `<leader>co` | n, v | Optimize code |
|
||||
| `<leader>cd` | n, v | Generate docs |
|
||||
| `<leader>ct` | n, v | Generate tests |
|
||||
| `<leader>cm` | n | Select model |
|
||||
|
||||
### Copilot Chat (Visual, personal shortcuts)
|
||||
| Key | Mode | Action |
|
||||
|-----|------|--------|
|
||||
| `<leader>zn` | v | Rename variable |
|
||||
| `<leader>zc` | n | Open Copilot Chat |
|
||||
| `<leader>ze` | v | Explain code |
|
||||
| `<leader>zr` | v | Review code |
|
||||
| `<leader>zf` | v | Fix code |
|
||||
| `<leader>zo` | v | Optimize code |
|
||||
| `<leader>zd` | v | Generate docs |
|
||||
|
||||
---
|
||||
|
||||
## Terminal
|
||||
|
||||
### ToggleTerm
|
||||
| Key | Mode | Action |
|
||||
|-----|------|--------|
|
||||
| `<leader>tf` | n | Float terminal |
|
||||
| `<leader>th` | n | Horizontal split terminal |
|
||||
| `<leader>tv` | n | Vertical split terminal |
|
||||
|
||||
### Terminal Mode
|
||||
| Key | Mode | Action |
|
||||
|-----|------|--------|
|
||||
| `<C-h>` | t | Switch to left window |
|
||||
| `<C-t>` | t | Close terminal |
|
||||
| `<C-\><C-\>` | t | Escape terminal mode |
|
||||
|
||||
---
|
||||
|
||||
## Window Management
|
||||
|
||||
### Splits
|
||||
| Key | Mode | Action |
|
||||
|-----|------|--------|
|
||||
| `<leader>sv` | n | Split vertical |
|
||||
| `<leader>sh` | n | Split horizontal |
|
||||
| `<leader>se` | n | Make splits equal |
|
||||
| `<leader>sx` | n | Close current split |
|
||||
|
||||
### Tabs
|
||||
| Key | Mode | Action |
|
||||
|-----|------|--------|
|
||||
| `<leader>to` | n | Open new tab |
|
||||
| `<leader>cx` | n | Close current tab |
|
||||
| `<leader>tn` | n | Next tab |
|
||||
| `<leader>tp` | n | Previous tab |
|
||||
| `<leader>tt` | n | Open buffer in new tab |
|
||||
|
||||
### Resize Splits
|
||||
| Key | Mode | Action |
|
||||
|-----|------|--------|
|
||||
| `<C-h>` | n | Increase width (+5) |
|
||||
| `<C-l>` | n | Decrease width (-5) |
|
||||
| `<C-k>` | n | Increase height (+5) |
|
||||
| `<C-j>` | n | Decrease height (-5) |
|
||||
|
||||
---
|
||||
|
||||
## Database
|
||||
|
||||
### vim-dadbod UI
|
||||
| Key | Mode | Action |
|
||||
|-----|------|--------|
|
||||
| `<leader>Du` | n | Toggle Database UI |
|
||||
| `<leader>Da` | n | Add DB connection |
|
||||
| `<leader>Df` | n | Find DB buffer |
|
||||
| `<leader>De` | n, v | Execute query |
|
||||
| `<leader>Dw` | n | Save query |
|
||||
| `<leader>Dr` | n | Rename DB buffer |
|
||||
|
||||
### Quick Connections
|
||||
| Key | Mode | Action |
|
||||
|-----|------|--------|
|
||||
| `<leader>Dp` | n | PostgreSQL Docker |
|
||||
| `<leader>Dm` | n | MongoDB local |
|
||||
| `<leader>DM` | n | MongoDB Docker |
|
||||
| `<leader>Di` | n | Redis local |
|
||||
| `<leader>DI` | n | Redis Docker |
|
||||
|
||||
### Redis & MongoDB (plugins.lua)
|
||||
| Key | Mode | Action |
|
||||
|-----|------|--------|
|
||||
| `<leader>rds` | n | Open Redis |
|
||||
| `<leader>rdk` | n | Show Redis keys |
|
||||
| `<leader>rdi` | n | Redis info |
|
||||
| `<leader>mdb` | n | Open MongoDB |
|
||||
| `<leader>mdc` | n | Connect MongoDB |
|
||||
| `<leader>mdd` | n | Disconnect MongoDB |
|
||||
|
||||
---
|
||||
|
||||
## LeetCode
|
||||
|
||||
| Key | Mode | Action |
|
||||
|-----|------|--------|
|
||||
| `<leader>lr` | n | Run code |
|
||||
| `<leader>ls` | n | Submit code |
|
||||
| `<leader>ld` | n | Daily challenge |
|
||||
| `<leader>ll` | n | List problems |
|
||||
| `<leader>lc` | n | Open console |
|
||||
| `<leader>lu` | n | Update cookie |
|
||||
| `<leader>lh` | n | Show hints |
|
||||
| `<leader>lls` | n | Get latest submission |
|
||||
|
||||
---
|
||||
|
||||
## Text Wrapping
|
||||
|
||||
### Wrapping Controls
|
||||
| Key | Mode | Action |
|
||||
|-----|------|--------|
|
||||
| `<leader>tw` | n | Toggle line wrapping |
|
||||
| `<leader>tl` | n | Toggle line break |
|
||||
| `<leader>tx` | n | Show 80-char column guide |
|
||||
| `<leader>tH` | n | Hide column guide |
|
||||
|
||||
### Format Text
|
||||
| Key | Mode | Action |
|
||||
|-----|------|--------|
|
||||
| `<leader>tpg` | n | Format paragraph |
|
||||
| `<leader>tf` | v | Format selection |
|
||||
| `<leader>tF` | n | Format entire file |
|
||||
|
||||
### Text Width
|
||||
| Key | Mode | Action |
|
||||
|-----|------|--------|
|
||||
| `<leader>t80` | n | Set textwidth to 80 |
|
||||
| `<leader>t100` | n | Set textwidth to 100 |
|
||||
| `<leader>t120` | n | Set textwidth to 120 |
|
||||
| `<leader>t0` | n | Disable textwidth |
|
||||
|
||||
### Auto-wrap Controls
|
||||
| Key | Mode | Action |
|
||||
|-----|------|--------|
|
||||
| `<leader>ta` | n | Enable auto-wrap text |
|
||||
| `<leader>tA` | n | Disable auto-wrap text |
|
||||
| `<leader>tc` | n | Enable auto-wrap comments |
|
||||
| `<leader>tC` | n | Disable auto-wrap comments |
|
||||
| `<leader>ti` | n | Toggle break indent |
|
||||
| `<leader>ts` | n | Show break indicator |
|
||||
| `<leader>tS` | n | Hide break indicator |
|
||||
|
||||
---
|
||||
|
||||
## Folding (nvim-ufo)
|
||||
|
||||
| Key | Mode | Action |
|
||||
|-----|------|--------|
|
||||
| `zR` | n | Open all folds |
|
||||
| `zM` | n | Close all folds |
|
||||
| `zr` | n | Open folds except kinds |
|
||||
| `zm` | n | Close folds by level |
|
||||
| `K` | n | Peek fold or LSP hover |
|
||||
|
||||
---
|
||||
|
||||
## Session Management
|
||||
|
||||
| Key | Mode | Action |
|
||||
|-----|------|--------|
|
||||
| `<leader>sS` | n | Session: Save |
|
||||
| `<leader>sR` | n | Session: Restore |
|
||||
|
||||
---
|
||||
|
||||
## Commands
|
||||
|
||||
| Command | Description |
|
||||
|---------|-------------|
|
||||
| `:Lazy` | Plugin manager |
|
||||
| `:Mason` | LSP server manager |
|
||||
| `:Navbuddy` | Code navigation |
|
||||
| `:Outline` | Symbol outline |
|
||||
| `:Neogit` | Git interface |
|
||||
| `:DiffviewOpen` | Diff view |
|
||||
| `:GrugFar` | Search & replace |
|
||||
| `:Octo` | GitHub PRs/issues |
|
||||
| `:OverseerRun` | Run tasks |
|
||||
| `:ZenMode` | Distraction-free mode |
|
||||
| `:Hardtime toggle` | Toggle vim training |
|
||||
| `:TSJToggle` | Toggle split/join |
|
||||
| `:WordCount` | Show word count (excluding symbols) |
|
||||
| `:RunProject` | Run project command |
|
||||
| `:DebugProject` | Debug project command |
|
||||
|
||||
---
|
||||
|
||||
*Last Updated: February 10, 2026*
|
||||
202
docs/NATIVE_AUTO_WRAPPER_GUIDE.md
Normal file
202
docs/NATIVE_AUTO_WRAPPER_GUIDE.md
Normal file
@@ -0,0 +1,202 @@
|
||||
# Native Auto Wrapper Configuration
|
||||
|
||||
## 🎯 **Overview**
|
||||
|
||||
Your Neovim is now configured with native auto wrapper functionality using built-in Neovim features - no additional packages required!
|
||||
|
||||
## ✨ **Features**
|
||||
|
||||
### **Automatic Text Wrapping**
|
||||
- **Text files**: Auto-wrap at 80 characters
|
||||
- **Code files**: Auto-wrap comments at 100 characters
|
||||
- **Documentation**: Auto-wrap at 78 characters
|
||||
- **Configuration files**: Auto-wrap comments at 80 characters
|
||||
|
||||
### **Smart Formatting**
|
||||
- **Break at word boundaries**: Lines break at natural word boundaries
|
||||
- **Preserve indentation**: Wrapped lines maintain proper indentation
|
||||
- **Visual indicators**: Shows break indicators (↪) for wrapped lines
|
||||
- **Color column**: Visual guide at specified text width
|
||||
|
||||
## 🎮 **Keymaps**
|
||||
|
||||
### **Text Wrapping Controls**
|
||||
| Keymap | Description |
|
||||
|--------|-------------|
|
||||
| `<leader>tw` | Toggle line wrapping |
|
||||
| `<leader>tl` | Toggle line break |
|
||||
| `<leader>tc` | Show 80 character column guide |
|
||||
| `<leader>tC` | Hide column guide |
|
||||
|
||||
### **Text Formatting**
|
||||
| Keymap | Description |
|
||||
|--------|-------------|
|
||||
| `<leader>tf` | Format current paragraph |
|
||||
| `<leader>tF` | Format entire file |
|
||||
| `<leader>tf` (visual) | Format selected text |
|
||||
|
||||
### **Text Width Settings**
|
||||
| Keymap | Description |
|
||||
|--------|-------------|
|
||||
| `<leader>t80` | Set text width to 80 characters |
|
||||
| `<leader>t100` | Set text width to 100 characters |
|
||||
| `<leader>t120` | Set text width to 120 characters |
|
||||
| `<leader>t0` | Disable text width (no wrapping) |
|
||||
|
||||
### **Auto-wrap Controls**
|
||||
| Keymap | Description |
|
||||
|--------|-------------|
|
||||
| `<leader>ta` | Enable auto-wrap text |
|
||||
| `<leader>tA` | Disable auto-wrap text |
|
||||
| `<leader>tc` | Enable auto-wrap comments |
|
||||
| `<leader>tC` | Disable auto-wrap comments |
|
||||
|
||||
### **Indentation and Display**
|
||||
| Keymap | Description |
|
||||
|--------|-------------|
|
||||
| `<leader>ti` | Toggle break indent |
|
||||
| `<leader>ts` | Show break indicator (↪) |
|
||||
| `<leader>tS` | Hide break indicator |
|
||||
|
||||
## 📁 **File Type Specific Settings**
|
||||
|
||||
### **Text and Documentation Files**
|
||||
- **File types**: `text`, `markdown`, `gitcommit`, `mail`
|
||||
- **Text width**: 80 characters
|
||||
- **Auto-wrap**: Enabled for all text
|
||||
- **Line break**: At word boundaries
|
||||
|
||||
### **Code Files**
|
||||
- **File types**: `lua`, `javascript`, `typescript`, `python`, `java`, `cpp`, `c`, `rust`, `go`
|
||||
- **Text width**: 100 characters
|
||||
- **Auto-wrap**: Comments only
|
||||
- **Format options**: Smart comment wrapping
|
||||
|
||||
### **Documentation Files**
|
||||
- **File types**: `help`, `man`
|
||||
- **Text width**: 78 characters
|
||||
- **Auto-wrap**: Enabled for all text
|
||||
- **Line break**: At word boundaries
|
||||
|
||||
### **Configuration Files**
|
||||
- **File types**: `conf`, `config`, `ini`, `toml`, `yaml`, `json`
|
||||
- **Text width**: 80 characters
|
||||
- **Auto-wrap**: Comments only
|
||||
|
||||
## 🔧 **Native Neovim Settings**
|
||||
|
||||
### **Core Settings**
|
||||
```lua
|
||||
-- Text wrapping
|
||||
opt.wrap = true -- Enable line wrapping
|
||||
opt.linebreak = true -- Break at word boundaries
|
||||
opt.breakindent = true -- Preserve indentation
|
||||
opt.showbreak = "↪ " -- Break indicator
|
||||
opt.breakindentopt = "shift:2" -- Indent wrapped lines
|
||||
|
||||
-- Text width
|
||||
opt.textwidth = 80 -- Default text width
|
||||
opt.colorcolumn = "80" -- Visual column guide
|
||||
```
|
||||
|
||||
### **Format Options**
|
||||
```lua
|
||||
opt.formatoptions = "jcroqlnt" -- Format options
|
||||
-- j: Remove comment leader when joining lines
|
||||
-- c: Auto-wrap comments using textwidth
|
||||
-- r: Auto-wrap comments when pressing Enter
|
||||
-- o: Auto-wrap comments when pressing 'o' or 'O'
|
||||
-- q: Allow formatting of comments with 'gq'
|
||||
-- l: Long lines are not broken in insert mode
|
||||
-- n: Recognize numbered lists
|
||||
-- t: Auto-wrap text using textwidth
|
||||
```
|
||||
|
||||
## 📝 **Usage Examples**
|
||||
|
||||
### **1. Writing Documentation**
|
||||
```markdown
|
||||
# This is a long title that will automatically wrap at 80 characters when you type it
|
||||
|
||||
This is a long paragraph that will automatically wrap at word boundaries when it reaches 80 characters, making your documentation more readable and properly formatted.
|
||||
```
|
||||
|
||||
### **2. Writing Code Comments**
|
||||
```lua
|
||||
-- This is a very long comment that will automatically wrap at 100 characters when you press Enter or 'o', making your code more readable and maintaining proper indentation
|
||||
local function example()
|
||||
-- This comment will also wrap automatically
|
||||
return "example"
|
||||
end
|
||||
```
|
||||
|
||||
### **3. Writing Git Commit Messages**
|
||||
```bash
|
||||
# This commit message will automatically wrap at 80 characters
|
||||
git commit -m "This is a very long commit message that describes the changes made to the codebase in detail"
|
||||
```
|
||||
|
||||
## 🎨 **Visual Features**
|
||||
|
||||
### **Break Indicators**
|
||||
- **Symbol**: `↪` shows where lines are wrapped
|
||||
- **Toggle**: Use `<leader>ts` to show/hide
|
||||
|
||||
### **Color Column**
|
||||
- **Guide**: Visual line at text width
|
||||
- **Toggle**: Use `<leader>tc` to show/hide
|
||||
|
||||
### **Indentation**
|
||||
- **Preserved**: Wrapped lines maintain indentation
|
||||
- **Smart**: Proper indentation for code blocks
|
||||
|
||||
## 🔍 **Troubleshooting**
|
||||
|
||||
### **Text Not Wrapping**
|
||||
1. Check if wrapping is enabled: `:set wrap?`
|
||||
2. Verify text width: `:set textwidth?`
|
||||
3. Check format options: `:set formatoptions?`
|
||||
|
||||
### **Comments Not Wrapping**
|
||||
1. Ensure format option 'c' is set: `:set formatoptions+=c`
|
||||
2. Check file type: `:set filetype?`
|
||||
3. Verify text width is set: `:set textwidth?`
|
||||
|
||||
### **Indentation Issues**
|
||||
1. Enable break indent: `:set breakindent`
|
||||
2. Check break indent options: `:set breakindentopt?`
|
||||
3. Verify smart indent: `:set smartindent?`
|
||||
|
||||
## 🚀 **Advanced Configuration**
|
||||
|
||||
### **Custom File Type Settings**
|
||||
Add to your configuration:
|
||||
```lua
|
||||
vim.api.nvim_create_autocmd("FileType", {
|
||||
pattern = { "your_filetype" },
|
||||
callback = function()
|
||||
vim.opt_local.textwidth = 120
|
||||
vim.opt_local.formatoptions:append("c")
|
||||
end,
|
||||
})
|
||||
```
|
||||
|
||||
### **Custom Break Indicator**
|
||||
```lua
|
||||
vim.opt.showbreak = "⤷ " -- Custom break indicator
|
||||
```
|
||||
|
||||
### **Custom Color Column**
|
||||
```lua
|
||||
vim.opt.colorcolumn = "80,100,120" -- Multiple column guides
|
||||
```
|
||||
|
||||
## ✅ **Benefits of Native Configuration**
|
||||
|
||||
- **No additional packages**: Uses built-in Neovim features
|
||||
- **Fast and lightweight**: No external dependencies
|
||||
- **Consistent behavior**: Works the same across all Neovim installations
|
||||
- **Easy to customize**: Simple Lua configuration
|
||||
- **Reliable**: No plugin conflicts or compatibility issues
|
||||
|
||||
Your native auto wrapper is now fully configured and ready to use! 🎉
|
||||
209
docs/PLUGINS.md
Normal file
209
docs/PLUGINS.md
Normal file
@@ -0,0 +1,209 @@
|
||||
# Plugins Reference
|
||||
|
||||
Complete list of all plugins in this configuration.
|
||||
|
||||
## Navigation & Search
|
||||
|
||||
| Plugin | Description |
|
||||
|--------|-------------|
|
||||
| `nvim-telescope/telescope.nvim` | Fuzzy finder for files, text, buffers |
|
||||
| `folke/flash.nvim` | Jump anywhere with minimal keystrokes |
|
||||
| `ThePrimeagen/harpoon` | Quick file marks and navigation |
|
||||
| `cbochs/portal.nvim` | Navigate jumplist/changelist with preview |
|
||||
| `SmiteshP/nvim-navbuddy` | Code structure navigation popup |
|
||||
| `SmiteshP/nvim-navic` | Breadcrumb provider for navbuddy |
|
||||
|
||||
## File Management
|
||||
|
||||
| Plugin | Description |
|
||||
|--------|-------------|
|
||||
| `nvim-tree/nvim-tree.lua` | File explorer sidebar |
|
||||
| `nvim-tree/nvim-web-devicons` | File icons |
|
||||
|
||||
## Git
|
||||
|
||||
| Plugin | Description |
|
||||
|--------|-------------|
|
||||
| `kdheepak/lazygit.nvim` | LazyGit integration |
|
||||
| `NeogitOrg/neogit` | Magit-like git interface |
|
||||
| `sindrets/diffview.nvim` | Side-by-side diff viewer |
|
||||
| `lewis6991/gitsigns.nvim` | Git signs in gutter |
|
||||
| `f-person/git-blame.nvim` | Inline git blame |
|
||||
| `pwntester/octo.nvim` | GitHub issues/PRs in Neovim |
|
||||
|
||||
## LSP & Code Intelligence
|
||||
|
||||
| Plugin | Description |
|
||||
|--------|-------------|
|
||||
| `neovim/nvim-lspconfig` | LSP configuration |
|
||||
| `williamboman/mason.nvim` | LSP server installer |
|
||||
| `williamboman/mason-lspconfig.nvim` | Mason + lspconfig bridge |
|
||||
| `nvimdev/lspsaga.nvim` | Pretty LSP UI |
|
||||
| `hrsh7th/nvim-cmp` | Completion engine |
|
||||
| `hrsh7th/cmp-nvim-lsp` | LSP completion source |
|
||||
| `hrsh7th/cmp-buffer` | Buffer completion source |
|
||||
| `hrsh7th/cmp-path` | Path completion source |
|
||||
| `hedyhli/outline.nvim` | Symbol outline sidebar |
|
||||
| `smjonas/inc-rename.nvim` | Live rename preview |
|
||||
| `kosayoda/nvim-lightbulb` | Code action indicator |
|
||||
| `rachartier/tiny-inline-diagnostic.nvim` | Pretty inline diagnostics |
|
||||
| `folke/trouble.nvim` | Diagnostics list |
|
||||
| `pmizio/typescript-tools.nvim` | Enhanced TypeScript support |
|
||||
|
||||
## Treesitter
|
||||
|
||||
| Plugin | Description |
|
||||
|--------|-------------|
|
||||
| `nvim-treesitter/nvim-treesitter` | Syntax highlighting |
|
||||
| `nvim-treesitter/nvim-treesitter-context` | Sticky function headers |
|
||||
| `nvim-treesitter/nvim-treesitter-textobjects` | Text objects |
|
||||
| `folke/ts-comments.nvim` | Better comments for embedded languages |
|
||||
| `windwp/nvim-ts-autotag` | Auto close/rename HTML tags |
|
||||
|
||||
## Editing
|
||||
|
||||
| Plugin | Description |
|
||||
|--------|-------------|
|
||||
| `mg979/vim-visual-multi` | Multi-cursor editing |
|
||||
| `gbprod/yanky.nvim` | Yank ring with history |
|
||||
| `Wansmer/treesj` | Split/join code blocks |
|
||||
| `monaqa/dial.nvim` | Smart increment/decrement |
|
||||
| `kylechui/nvim-surround` | Surround text objects |
|
||||
| `windwp/nvim-autopairs` | Auto close brackets |
|
||||
| `numToStr/Comment.nvim` | Commenting |
|
||||
| `folke/todo-comments.nvim` | Highlight TODOs |
|
||||
| `gbprod/substitute.nvim` | Substitute operator |
|
||||
| `mbbill/undotree` | Visual undo history |
|
||||
| `chentoast/marks.nvim` | Better marks |
|
||||
| `kevinhwang91/nvim-ufo` | Better folding |
|
||||
|
||||
## Search & Replace
|
||||
|
||||
| Plugin | Description |
|
||||
|--------|-------------|
|
||||
| `MagicDuck/grug-far.nvim` | Project-wide search & replace |
|
||||
| `cshuaimin/ssr.nvim` | Structural search/replace |
|
||||
|
||||
## Debugging
|
||||
|
||||
| Plugin | Description |
|
||||
|--------|-------------|
|
||||
| `mfussenegger/nvim-dap` | Debug Adapter Protocol |
|
||||
| `rcarriga/nvim-dap-ui` | Debug UI |
|
||||
| `nvim-neotest/nvim-nio` | Async IO for dap-ui |
|
||||
| `theHamsta/nvim-dap-virtual-text` | Virtual text for debugging |
|
||||
| `mfussenegger/nvim-dap-python` | Python debugging |
|
||||
| `jay-babu/mason-nvim-dap.nvim` | Mason + DAP bridge |
|
||||
| `Weissle/persistent-breakpoints.nvim` | Save breakpoints |
|
||||
|
||||
## Tasks & HTTP
|
||||
|
||||
| Plugin | Description |
|
||||
|--------|-------------|
|
||||
| `stevearc/overseer.nvim` | Task runner |
|
||||
| `mistweaverco/kulala.nvim` | HTTP client |
|
||||
|
||||
## UI & Theme
|
||||
|
||||
| Plugin | Description |
|
||||
|--------|-------------|
|
||||
| `CarGDev/cargdev-cyberpunk` | Custom cyberpunk theme |
|
||||
| `folke/snacks.nvim` | Dashboard, notifier, picker, terminal |
|
||||
| `folke/noice.nvim` | UI for messages, cmdline, popups |
|
||||
| `nvim-lualine/lualine.nvim` | Statusline |
|
||||
| `akinsho/bufferline.nvim` | Buffer tabs |
|
||||
| `Bekaboo/dropbar.nvim` | VS Code-like breadcrumbs |
|
||||
| `lewis6991/satellite.nvim` | Scrollbar with markers |
|
||||
| `folke/which-key.nvim` | Keybinding hints |
|
||||
| `stevearc/dressing.nvim` | Better vim.ui |
|
||||
| `rcarriga/nvim-notify` | Notification manager |
|
||||
| `j-hui/fidget.nvim` | LSP progress |
|
||||
| `folke/edgy.nvim` | Window layout management |
|
||||
|
||||
## Eye Candy
|
||||
|
||||
| Plugin | Description |
|
||||
|--------|-------------|
|
||||
| `echasnovski/mini.animate` | Smooth animations |
|
||||
| `rasulomaroff/reactive.nvim` | Mode-based colors |
|
||||
| `mawkler/modicator.nvim` | Line number mode colors |
|
||||
| `shellRaining/hlchunk.nvim` | Scope highlighting |
|
||||
| `nvim-zh/colorful-winsep.nvim` | Colorful window separators |
|
||||
| `brenoprata10/nvim-highlight-colors` | Color preview |
|
||||
| `lukas-reineke/indent-blankline.nvim` | Indent guides |
|
||||
| `xiyaowong/transparent.nvim` | Transparent background |
|
||||
|
||||
## Productivity
|
||||
|
||||
| Plugin | Description |
|
||||
|--------|-------------|
|
||||
| `folke/zen-mode.nvim` | Distraction-free mode |
|
||||
| `folke/twilight.nvim` | Dim inactive code |
|
||||
| `folke/persistence.nvim` | Session management |
|
||||
| `rmagatti/auto-session` | Auto session restore |
|
||||
| `m4xshen/hardtime.nvim` | Vim motion training |
|
||||
| `tris203/precognition.nvim` | Vim motion hints |
|
||||
| `NStefan002/screenkey.nvim` | Show keypresses |
|
||||
| `bennypowers/nvim-regexplainer` | Regex explanation |
|
||||
|
||||
## Language Specific
|
||||
|
||||
| Plugin | Description |
|
||||
|--------|-------------|
|
||||
| `linux-cultist/venv-selector.nvim` | Python venv selector |
|
||||
| `vuki656/package-info.nvim` | NPM package versions |
|
||||
| `saecki/crates.nvim` | Rust crate versions |
|
||||
| `mfussenegger/nvim-jdtls` | Java LSP + debugging |
|
||||
| `akinsho/flutter-tools.nvim` | Flutter development |
|
||||
| `lervag/vimtex` | LaTeX support |
|
||||
|
||||
## Database
|
||||
|
||||
| Plugin | Description |
|
||||
|--------|-------------|
|
||||
| `kristijanhusak/vim-dadbod-ui` | Database UI |
|
||||
| `tpope/vim-dadbod` | Database interaction |
|
||||
| `kristijanhusak/vim-dadbod-completion` | DB completion |
|
||||
|
||||
## Testing
|
||||
|
||||
| Plugin | Description |
|
||||
|--------|-------------|
|
||||
| `nvim-neotest/neotest` | Test runner framework |
|
||||
| `nvim-neotest/neotest-jest` | Jest adapter |
|
||||
| `nvim-neotest/neotest-python` | Python test adapter |
|
||||
|
||||
## AI & Copilot
|
||||
|
||||
| Plugin | Description |
|
||||
|--------|-------------|
|
||||
| `zbirenbaum/copilot.lua` | GitHub Copilot |
|
||||
| `zbirenbaum/copilot-cmp` | Copilot completion source |
|
||||
|
||||
## Misc
|
||||
|
||||
| Plugin | Description |
|
||||
|--------|-------------|
|
||||
| `wakatime/vim-wakatime` | Coding time tracking |
|
||||
| `kawre/leetcode.nvim` | LeetCode integration |
|
||||
| `christoomey/vim-tmux-navigator` | Tmux integration |
|
||||
| `szw/vim-maximizer` | Window maximizer |
|
||||
| `nvim-lua/plenary.nvim` | Lua utilities |
|
||||
| `MunifTanjim/nui.nvim` | UI components |
|
||||
| `kkharji/sqlite.lua` | SQLite for plugins |
|
||||
|
||||
---
|
||||
|
||||
## Plugin Count: 80+
|
||||
|
||||
## Installation
|
||||
|
||||
All plugins are managed by [lazy.nvim](https://github.com/folke/lazy.nvim) and auto-install on first run.
|
||||
|
||||
```vim
|
||||
:Lazy " Open plugin manager
|
||||
:Lazy sync " Sync plugins
|
||||
:Lazy update " Update plugins
|
||||
:Lazy clean " Remove unused plugins
|
||||
:Lazy profile " Check plugin load times
|
||||
```
|
||||
106
docs/TELESCOPE_TO_SNACKS_MIGRATION.md
Normal file
106
docs/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.
|
||||
95
docs/keyboard_mappings.md
Normal file
95
docs/keyboard_mappings.md
Normal file
@@ -0,0 +1,95 @@
|
||||
# Custom Keyboard Keymaps
|
||||
|
||||
## Overview
|
||||
This document details the custom key mappings and functionality of the QMK firmware configuration, including mappings relevant to Neovim and Tmux usage.
|
||||
|
||||
---
|
||||
|
||||
## Custom Keycodes
|
||||
|
||||
### RGB Lighting Control
|
||||
- **RGB_SLD**: Sets the RGB lighting mode to static.
|
||||
|
||||
### Macro Key Bindings
|
||||
These macros are optimized for Neovim and Tmux workflows.
|
||||
|
||||
- **ST_MACRO_0**: Opens the Neovim terminal (`Alt + Cmd + I`).
|
||||
- **ST_MACRO_1**: Moves backward in Tmux (`Ctrl + B`, then `D`).
|
||||
- **ST_MACRO_2**: Moves forward in Tmux (`Ctrl + B`, then `C`).
|
||||
- **ST_MACRO_3**: Moves to the previous Tmux window (`Ctrl + B`, then `P`).
|
||||
- **ST_MACRO_4**: Moves to the next Tmux window (`Ctrl + B`, then `N`).
|
||||
- **ST_MACRO_5**: Closes the current Tmux pane (`Ctrl + B`, then `W`).
|
||||
- **ST_MACRO_6**: Splits a Tmux pane vertically (`Ctrl + B`, then `Shift + |`).
|
||||
- **ST_MACRO_7**: Opens a new Tmux session (`Ctrl + B`, then `Shift + ;`, then `NEW`).
|
||||
- **ST_MACRO_8**: Moves left in a Tmux pane (`Ctrl + B`, then `Left Arrow`).
|
||||
- **ST_MACRO_9**: Moves down in a Tmux pane (`Ctrl + B`, then `Down Arrow`).
|
||||
- **ST_MACRO_10**: Moves up in a Tmux pane (`Ctrl + B`, then `Up Arrow`).
|
||||
- **ST_MACRO_11**: Moves right in a Tmux pane (`Ctrl + B`, then `Right Arrow`).
|
||||
- **ST_MACRO_12**: Decreases window size in Tmux (`Ctrl + B`, then `-`).
|
||||
- **ST_MACRO_13**: Moves to the beginning of a line in Neovim (`Space + B D`).
|
||||
- **ST_MACRO_14**: Formats the entire file in Neovim (`Space + F G`).
|
||||
- **ST_MACRO_15**: Creates a new tab in Neovim (`Space + N T`).
|
||||
|
||||
### Special Functions
|
||||
- **MAC_LOCK**: Triggers a system-specific lock command.
|
||||
|
||||
---
|
||||
|
||||
## Tap Dance Actions
|
||||
Tap dance actions allow a key to perform multiple functions depending on the number of taps.
|
||||
|
||||
### **DANCE_0**
|
||||
- **Single Tap**: Escape key (useful for exiting insert mode in Neovim).
|
||||
- **Single Hold**: `Ctrl + Up` (scrolls up in Neovim or switches buffers).
|
||||
- **Double Tap**: Sends double Escape (useful for quickly leaving insert mode in Neovim).
|
||||
|
||||
### **DANCE_1**
|
||||
- **Single Tap**: Grave (`~`) (for quick access to tilde in Vim commands).
|
||||
- **Single Hold**: `&` (used in Tmux for window management).
|
||||
- **Double Tap**: Sends double grave (`~~`).
|
||||
|
||||
### **DANCE_2**
|
||||
- **Single Tap**: Spacebar (default action).
|
||||
- **Single Hold**: `Cmd + Space` (Spotlight search on macOS, also used for command execution in Neovim).
|
||||
- **Double Tap**: Sends double space (quick spacing in text documents).
|
||||
|
||||
### **DANCE_3**
|
||||
- **Single Tap**: `0` (moves cursor to the beginning of a line in Neovim).
|
||||
- **Single Hold**: `=` (resizes panes in Tmux).
|
||||
- **Double Tap**: Sends double `0`.
|
||||
|
||||
---
|
||||
|
||||
## Layer Functions
|
||||
The keyboard supports multiple layers for different functionalities.
|
||||
|
||||
### **Layer 0 (Default Layer - Neovim and Tmux Focused)**
|
||||
- **Neovim shortcuts**: Efficient navigation and command execution.
|
||||
- **Tmux pane/window management**: Quick switching and resizing.
|
||||
|
||||
### **Layer 1 (Function & Symbols Layer)**
|
||||
- **F-keys (F1–F12)**
|
||||
- **Media and RGB controls**
|
||||
- **Special characters (`@, $, %, &, *, etc.`)**
|
||||
|
||||
### **Layer 2 (Macros & Shortcuts Layer)**
|
||||
- **Macro functions for Neovim (`ST_MACRO_1–15`)**
|
||||
- **Media and navigation shortcuts**
|
||||
|
||||
### **Layer 3 (Navigation & Window Management Layer)**
|
||||
- **Arrow keys and window movement shortcuts**
|
||||
- **Undo, cut, paste, and system controls**
|
||||
- **Tmux session switching and splits**
|
||||
|
||||
### **Layer 4 (Mouse & Boot Mode Layer)**
|
||||
- **Mouse controls and screenshot shortcuts**
|
||||
- **Boot mode activation (`QK_BOOT`)**
|
||||
|
||||
---
|
||||
|
||||
## Special Modifiers
|
||||
- **MO(n)**: Momentary activation of layer `n`.
|
||||
- **LT(n, key)**: Hold for layer `n`, tap for `key`.
|
||||
- **TG(n)**: Toggle layer `n` on/off.
|
||||
|
||||
This structured keymap provides an overview of the keyboard's advanced functionality, integrating Neovim, Tmux, and QMK efficiently.
|
||||
Reference in New Issue
Block a user