Files
nvim/docs/README.md
Morten Olsen b3b70bceeb Improved flow
2026-01-26 23:04:14 +01:00

99 lines
3.6 KiB
Markdown

# 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**: `<Space>`
2. **Find files**: `<leader>ff` or `<leader><space>`
3. **Find text**: `<leader>sg` (grep) or `<leader>/` (in buffer)
4. **File explorer**: `<leader>e`
5. **Which-key help**: Press `<leader>` 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 |
|--------|---------|----------|
| `<leader>f` | **Find/Files** | Find files, recent files |
| `<leader>s` | **Search** | Search text, symbols, help |
| `<leader>g` | **Git** | Git status, diffs, PRs |
| `<leader>c` | **Code** | LSP actions, format, rename |
| `<leader>t` | **Test** | Run tests, debug tests |
| `<leader>d` | **Debug** | DAP debugging |
| `<leader>D` | **Database** | DBUI, connections |
| `<leader>R` | **REST** | HTTP requests |
| `<leader>k` | **AI (opencode)** | AI assistance |
| `<leader>h` | **Harpoon** | Quick file navigation |
| `<leader>q` | **Session** | Save/restore sessions |
| `<leader>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 `<leader>` 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