# Neovim Workflow Documentation This documentation covers workflows and keybindings for this LazyVim-based Neovim configuration, optimized for **TypeScript**, **Python**, and **Go** development. ## Quick Start 1. **Leader key**: `` 2. **Find files**: `ff` or `` 3. **Find text**: `sg` (grep) or `/` (in buffer) 4. **File explorer**: `e` 5. **Which-key help**: Press `` and wait ## Cheatsheets (Quick Reference) | Cheatsheet | Description | |------------|-------------| | [Keybindings](cheatsheets/keybindings.md) | Complete keybinding reference by category | | [Git Workflow](cheatsheets/git-workflow.md) | Git operations, diffs, PRs, and blame | | [Testing](cheatsheets/testing.md) | Running and debugging tests | | [Database](cheatsheets/database.md) | Database connections and queries | ## Detailed Guides | Guide | Description | |-------|-------------| | [TypeScript Workflow](guides/typescript-workflow.md) | Complete TypeScript/JavaScript development guide | | [Python Workflow](guides/python-workflow.md) | Python development with venv, testing, debugging | | [Go Workflow](guides/go-workflow.md) | Go development guide | | [Git Workflow](guides/git-workflow.md) | Detailed git operations and PR review workflow | | [Debugging](guides/debugging.md) | DAP debugging for all languages | | [Snippets](guides/snippets.md) | Creating custom code snippets | | [AI Assistant](guides/ai-assistant.md) | Using opencode.nvim for AI-assisted coding | ## Key Binding Prefixes | Prefix | Purpose | Examples | |--------|---------|----------| | `f` | **Find/Files** | Find files, recent files | | `s` | **Search** | Search text, symbols, help | | `g` | **Git** | Git status, diffs, PRs | | `c` | **Code** | LSP actions, format, rename | | `t` | **Test** | Run tests, debug tests | | `d` | **Debug** | DAP debugging | | `D` | **Database** | DBUI, connections | | `R` | **REST** | HTTP requests | | `k` | **AI (opencode)** | AI assistance | | `h` | **Harpoon** | Quick file navigation | | `q` | **Session** | Save/restore sessions | | `1-9` | **Harpoon files** | Jump to marked files | ## Configuration Files | File | Purpose | |------|---------| | `lua/config/options.lua` | Neovim settings | | `lua/config/keymaps.lua` | Global keymaps | | `lua/plugins/*.lua` | Plugin configurations | | `snippets/*.lua` | Custom code snippets | ## Plugin Overview ### Core Plugins - **LazyVim**: Base distribution with sensible defaults - **Telescope**: Fuzzy finder for files, text, symbols - **Treesitter**: Syntax highlighting and text objects - **LSP**: Language server protocol for IDE features ### Language Support - **TypeScript**: Full LSP, ESLint, Vitest integration - **Python**: LSP, venv-selector, pytest, DAP - **Go**: gopls, golangci-lint, go test, DAP ### Productivity - **Harpoon**: Quick file switching (marks up to 9 files) - **Flash.nvim**: Fast navigation with search labels - **Persistence**: Session management - **Trouble**: Diagnostics list ### Git - **Diffview**: Side-by-side diffs and file history - **Git-blame**: Inline blame annotations - **Octo**: GitHub PRs and issues in Neovim - **Gitsigns**: Git gutter signs ### Other - **Neotest**: Test runner for all languages - **DAP**: Debug adapter protocol - **Dadbod**: Database client - **Kulala**: REST client - **Opencode**: AI assistant ## Getting Help - Press `` and wait for which-key popup - `:Telescope keymaps` - Search all keybindings - `:Telescope help_tags` - Search help documentation - `:checkhealth` - Check for configuration issues - `:Lazy` - Manage plugins