Improved flow
This commit is contained in:
164
docs/cheatsheets/database.md
Normal file
164
docs/cheatsheets/database.md
Normal file
@@ -0,0 +1,164 @@
|
||||
# Database Cheatsheet
|
||||
|
||||
## Quick Reference
|
||||
|
||||
| Key | Action |
|
||||
|-----|--------|
|
||||
| `<leader>Du` | Toggle DBUI |
|
||||
| `<leader>Da` | Add connection |
|
||||
| `<leader>Df` | Find DB buffer |
|
||||
|
||||
## Opening DBUI
|
||||
|
||||
```
|
||||
<leader>Du Toggle database UI
|
||||
<leader>Da Add new connection
|
||||
```
|
||||
|
||||
## Connection Strings
|
||||
|
||||
### PostgreSQL
|
||||
|
||||
```
|
||||
postgresql://user:password@localhost:5432/dbname
|
||||
postgres://user:password@localhost/dbname
|
||||
|
||||
# With SSL
|
||||
postgresql://user:password@host:5432/dbname?sslmode=require
|
||||
```
|
||||
|
||||
### SQLite
|
||||
|
||||
```
|
||||
sqlite:path/to/database.db
|
||||
sqlite:./local.db
|
||||
sqlite::memory:
|
||||
```
|
||||
|
||||
## DBUI Navigation
|
||||
|
||||
```
|
||||
<cr> Toggle node / Execute query
|
||||
o Open node
|
||||
R Refresh
|
||||
d Delete
|
||||
r Rename
|
||||
S Sort by
|
||||
H Toggle help
|
||||
q Close
|
||||
```
|
||||
|
||||
## Writing Queries
|
||||
|
||||
1. `<leader>Du` - Open DBUI
|
||||
2. Navigate to database
|
||||
3. Press `<cr>` on "New Query"
|
||||
4. Write SQL
|
||||
5. `<leader>Rs` or `<cr>` to execute
|
||||
|
||||
## Query Execution
|
||||
|
||||
In a `.sql` buffer connected to DBUI:
|
||||
|
||||
```
|
||||
<cr> Execute query under cursor
|
||||
<leader>Rs Execute query (visual: selected)
|
||||
```
|
||||
|
||||
## Table Helpers
|
||||
|
||||
Right-click or press `<cr>` on a table for quick actions:
|
||||
|
||||
### PostgreSQL
|
||||
- Count: `SELECT COUNT(*) FROM table`
|
||||
- First10: `SELECT * FROM table LIMIT 10`
|
||||
- Schema: `\d+ table`
|
||||
|
||||
### SQLite
|
||||
- Count: `SELECT COUNT(*) FROM table`
|
||||
- First10: `SELECT * FROM table LIMIT 10`
|
||||
- Schema: `.schema table`
|
||||
|
||||
## Buffer Management
|
||||
|
||||
```
|
||||
<leader>Df Find DB buffer
|
||||
<leader>Dr Rename DB buffer
|
||||
<leader>Dl Last query info
|
||||
```
|
||||
|
||||
## Common Workflows
|
||||
|
||||
### Connect to Database
|
||||
|
||||
1. `<leader>Da` - Add connection
|
||||
2. Enter connection string
|
||||
3. Give it a name
|
||||
4. Connection saved for future sessions
|
||||
|
||||
### Explore Schema
|
||||
|
||||
1. `<leader>Du` - Open DBUI
|
||||
2. Expand database node
|
||||
3. Expand "Tables" node
|
||||
4. `<cr>` on table for helpers
|
||||
|
||||
### Run Ad-hoc Query
|
||||
|
||||
1. `<leader>Du` - Open DBUI
|
||||
2. Navigate to database
|
||||
3. New Query
|
||||
4. Write SQL:
|
||||
```sql
|
||||
SELECT * FROM users WHERE active = true LIMIT 10;
|
||||
```
|
||||
5. Execute with `<cr>`
|
||||
|
||||
### Export Results
|
||||
|
||||
After running query:
|
||||
1. Results appear in split
|
||||
2. `:w filename.csv` to save
|
||||
|
||||
## Tips
|
||||
|
||||
### Multiple Databases
|
||||
|
||||
- Add multiple connections
|
||||
- Switch by selecting in DBUI
|
||||
- Each buffer tracks its connection
|
||||
|
||||
### Environment Variables
|
||||
|
||||
Connection strings can use env vars:
|
||||
```
|
||||
postgresql://$DB_USER:$DB_PASS@$DB_HOST/$DB_NAME
|
||||
```
|
||||
|
||||
### SSH Tunnels
|
||||
|
||||
For remote databases, set up SSH tunnel first:
|
||||
```bash
|
||||
ssh -L 5432:localhost:5432 user@server
|
||||
```
|
||||
|
||||
Then connect to `localhost:5432`.
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
### Connection Failed
|
||||
|
||||
- Check credentials
|
||||
- Verify database is running
|
||||
- Check firewall/network
|
||||
|
||||
### Missing Adapter
|
||||
|
||||
Run `:checkhealth` and verify:
|
||||
- `vim-dadbod` installed
|
||||
- Database client available (psql, sqlite3)
|
||||
|
||||
### Slow Queries
|
||||
|
||||
- Add `LIMIT` to large tables
|
||||
- Use `EXPLAIN` to analyze
|
||||
142
docs/cheatsheets/git-workflow.md
Normal file
142
docs/cheatsheets/git-workflow.md
Normal file
@@ -0,0 +1,142 @@
|
||||
# Git Workflow Cheatsheet
|
||||
|
||||
## Quick Reference
|
||||
|
||||
| Key | Action |
|
||||
|-----|--------|
|
||||
| `<leader>gd` | Open diff view |
|
||||
| `<leader>gD` | Close diff view |
|
||||
| `<leader>gf` | File history |
|
||||
| `<leader>gB` | Toggle blame |
|
||||
| `<leader>gpl` | List PRs |
|
||||
| `<leader>gpc` | Create PR |
|
||||
|
||||
## Viewing Changes
|
||||
|
||||
### Diffview
|
||||
|
||||
```
|
||||
<leader>gd Open diff view (staged + unstaged)
|
||||
<leader>gD Close diff view
|
||||
<leader>gf Current file history
|
||||
<leader>gF Branch history
|
||||
<leader>gm Compare to origin/main
|
||||
<leader>gM Compare to origin/master
|
||||
```
|
||||
|
||||
### In Diffview File Panel
|
||||
|
||||
**Important**: Staging keys only work when focused on the file panel (left side).
|
||||
|
||||
```
|
||||
j/k Navigate files
|
||||
<cr> Open file diff
|
||||
- Stage/unstage file (must be in file panel)
|
||||
S Stage all files
|
||||
U Unstage all files
|
||||
X Revert file changes
|
||||
<tab> Toggle file panel visibility
|
||||
<leader>e Focus file panel
|
||||
<leader>b Toggle file panel
|
||||
R Refresh file list
|
||||
g? Show help
|
||||
```
|
||||
|
||||
**Note**: Use `<leader>gd` (not `<leader>gf`) to open diffview with staging capabilities. File history (`<leader>gf`) is read-only.
|
||||
|
||||
## Blame
|
||||
|
||||
```
|
||||
<leader>gB Toggle inline blame
|
||||
<leader>go Open commit in browser
|
||||
<leader>gy Copy commit URL
|
||||
```
|
||||
|
||||
## Staging & Committing (Gitsigns)
|
||||
|
||||
```
|
||||
]h Next hunk
|
||||
[h Previous hunk
|
||||
<leader>ghs Stage hunk
|
||||
<leader>ghr Reset hunk
|
||||
<leader>ghS Stage buffer
|
||||
<leader>ghu Undo stage hunk
|
||||
<leader>ghp Preview hunk
|
||||
<leader>ghb Blame line
|
||||
```
|
||||
|
||||
## Pull Requests (Octo)
|
||||
|
||||
### Listing & Navigation
|
||||
|
||||
```
|
||||
<leader>gpl List PRs
|
||||
<leader>gpo Checkout PR
|
||||
<leader>gpb Open PR in browser
|
||||
<leader>gpd Show PR diff
|
||||
```
|
||||
|
||||
### Creating & Managing
|
||||
|
||||
```
|
||||
<leader>gpc Create PR
|
||||
<leader>gpr Mark PR ready
|
||||
<leader>gpm Merge PR
|
||||
```
|
||||
|
||||
### Reviewing
|
||||
|
||||
```
|
||||
<leader>grs Start review
|
||||
<leader>grr Resume review
|
||||
<leader>grc Submit review
|
||||
<leader>grd Discard review
|
||||
```
|
||||
|
||||
### In PR Buffer
|
||||
|
||||
```
|
||||
<leader>ca Add comment
|
||||
<leader>cd Delete comment
|
||||
<leader>sa Approve
|
||||
<leader>sc Comment
|
||||
<leader>sr Request changes
|
||||
```
|
||||
|
||||
## Issues (Octo)
|
||||
|
||||
```
|
||||
<leader>gil List issues
|
||||
<leader>gic Create issue
|
||||
<leader>gib Open in browser
|
||||
```
|
||||
|
||||
## Common Workflows
|
||||
|
||||
### Review a PR
|
||||
|
||||
1. `<leader>gpl` - List PRs
|
||||
2. Select PR and press `<cr>`
|
||||
3. `<leader>grs` - Start review
|
||||
4. Navigate files, add comments
|
||||
5. `<leader>grc` - Submit review
|
||||
|
||||
### Compare Branch to Main
|
||||
|
||||
1. `<leader>gm` - Open diff vs main
|
||||
2. Review changes in split view
|
||||
3. `<leader>gD` - Close when done
|
||||
|
||||
### Investigate File History
|
||||
|
||||
1. `<leader>gf` - File history
|
||||
2. Navigate commits with `j/k`
|
||||
3. `<cr>` to view diff at commit
|
||||
4. `<leader>gD` - Close when done
|
||||
|
||||
### Quick Blame Check
|
||||
|
||||
1. `<leader>gB` - Toggle blame
|
||||
2. Line blame shows inline
|
||||
3. `<leader>go` - Open commit if needed
|
||||
4. `<leader>gB` - Toggle off
|
||||
206
docs/cheatsheets/keybindings.md
Normal file
206
docs/cheatsheets/keybindings.md
Normal file
@@ -0,0 +1,206 @@
|
||||
# Keybindings Cheatsheet
|
||||
|
||||
Leader key: `<Space>`
|
||||
|
||||
## Navigation
|
||||
|
||||
| Key | Description |
|
||||
|-----|-------------|
|
||||
| `<C-h/j/k/l>` | Navigate between splits/tmux panes |
|
||||
| `<leader>ff` | Find files |
|
||||
| `<leader><space>` | Find files (alt) |
|
||||
| `<leader>fr` | Recent files |
|
||||
| `<leader>fb` | Browse buffers |
|
||||
| `<leader>e` | File explorer |
|
||||
| `s` | Flash jump (in normal mode) |
|
||||
| `S` | Flash treesitter |
|
||||
|
||||
## Harpoon (Quick File Access)
|
||||
|
||||
| Key | Description |
|
||||
|-----|-------------|
|
||||
| `<leader>H` | Add file to harpoon |
|
||||
| `<leader>h` | Toggle harpoon menu |
|
||||
| `<leader>1-9` | Jump to harpoon file 1-9 |
|
||||
|
||||
## Search
|
||||
|
||||
| Key | Description |
|
||||
|-----|-------------|
|
||||
| `<leader>sg` | Grep (search text) |
|
||||
| `<leader>sw` | Search word under cursor |
|
||||
| `<leader>ss` | Search symbols |
|
||||
| `<leader>sS` | Search symbols (workspace) |
|
||||
| `<leader>/` | Search in buffer |
|
||||
| `<leader>sr` | Search and replace (grug-far) |
|
||||
|
||||
## LSP / Code
|
||||
|
||||
| Key | Description |
|
||||
|-----|-------------|
|
||||
| `gd` | Go to definition |
|
||||
| `gr` | Go to references |
|
||||
| `gI` | Go to implementation |
|
||||
| `gy` | Go to type definition |
|
||||
| `K` | Hover documentation |
|
||||
| `gK` | Signature help |
|
||||
| `<leader>ca` | Code actions |
|
||||
| `<leader>cr` | Rename symbol |
|
||||
| `<leader>cf` | Format document |
|
||||
| `<leader>cd` | Line diagnostics |
|
||||
| `<leader>cS` | Reload snippets |
|
||||
| `]d` / `[d` | Next/prev diagnostic |
|
||||
| `]e` / `[e` | Next/prev error |
|
||||
| `]w` / `[w` | Next/prev warning |
|
||||
|
||||
## Git
|
||||
|
||||
| Key | Description |
|
||||
|-----|-------------|
|
||||
| `<leader>gg` | Lazygit (if installed) |
|
||||
| `<leader>gd` | Diffview: Open |
|
||||
| `<leader>gD` | Diffview: Close |
|
||||
| `<leader>gf` | Diffview: File history |
|
||||
| `<leader>gF` | Diffview: Branch history |
|
||||
| `<leader>gm` | Diffview: Compare to main |
|
||||
| `<leader>gB` | Toggle git blame |
|
||||
| `<leader>go` | Open commit in browser |
|
||||
| `<leader>gy` | Copy commit URL |
|
||||
|
||||
### GitHub (Octo)
|
||||
|
||||
| Key | Description |
|
||||
|-----|-------------|
|
||||
| `<leader>gpl` | List PRs |
|
||||
| `<leader>gpc` | Create PR |
|
||||
| `<leader>gpo` | Checkout PR |
|
||||
| `<leader>gpb` | Open PR in browser |
|
||||
| `<leader>gpm` | Merge PR |
|
||||
| `<leader>gil` | List issues |
|
||||
| `<leader>gic` | Create issue |
|
||||
| `<leader>grs` | Start review |
|
||||
| `<leader>grr` | Resume review |
|
||||
| `<leader>grc` | Submit review |
|
||||
|
||||
## Testing
|
||||
|
||||
| Key | Description |
|
||||
|-----|-------------|
|
||||
| `<leader>tt` | Run nearest test |
|
||||
| `<leader>tf` | Run file tests |
|
||||
| `<leader>ta` | Run all tests |
|
||||
| `<leader>tl` | Run last test |
|
||||
| `<leader>tS` | Stop tests |
|
||||
| `<leader>td` | Debug nearest test |
|
||||
| `<leader>tD` | Debug file tests |
|
||||
| `<leader>tw` | Toggle watch (file) |
|
||||
| `<leader>ts` | Toggle summary |
|
||||
| `<leader>to` | Show output |
|
||||
| `<leader>tO` | Toggle output panel |
|
||||
| `]t` / `[t` | Next/prev failed test |
|
||||
|
||||
## Debugging (DAP)
|
||||
|
||||
| Key | Description |
|
||||
|-----|-------------|
|
||||
| `<leader>db` | Toggle breakpoint |
|
||||
| `<leader>dB` | Breakpoint with condition |
|
||||
| `<leader>dc` | Continue |
|
||||
| `<leader>dC` | Run to cursor |
|
||||
| `<leader>di` | Step into |
|
||||
| `<leader>do` | Step over |
|
||||
| `<leader>dO` | Step out |
|
||||
| `<leader>dp` | Pause |
|
||||
| `<leader>dt` | Terminate |
|
||||
| `<leader>du` | Toggle DAP UI |
|
||||
| `<leader>de` | Evaluate expression |
|
||||
|
||||
## Database
|
||||
|
||||
| Key | Description |
|
||||
|-----|-------------|
|
||||
| `<leader>Du` | Toggle DBUI |
|
||||
| `<leader>Da` | Add DB connection |
|
||||
| `<leader>Df` | Find DB buffer |
|
||||
| `<leader>Dr` | Rename DB buffer |
|
||||
| `<leader>Dl` | Last query info |
|
||||
|
||||
## REST Client
|
||||
|
||||
| Key | Description |
|
||||
|-----|-------------|
|
||||
| `<leader>Rs` | Send request |
|
||||
| `<leader>Ra` | Send all requests |
|
||||
| `<leader>Rr` | Replay last request |
|
||||
| `<leader>Ri` | Inspect request |
|
||||
| `<leader>Rt` | Toggle headers/body |
|
||||
| `<leader>Rc` | Copy as cURL |
|
||||
| `<leader>Re` | Select environment |
|
||||
| `]r` / `[r` | Next/prev request |
|
||||
|
||||
## AI Assistant (opencode.nvim)
|
||||
|
||||
| Key | Description |
|
||||
|-----|-------------|
|
||||
| `<leader>kk` | Toggle opencode |
|
||||
| `<leader>ka` | Ask opencode |
|
||||
| `<leader>kA` | Ask about current file |
|
||||
| `<leader>kn` | New session |
|
||||
| `<leader>ke` | Explain code near cursor |
|
||||
| `<leader>kE` | Explain selection (visual) |
|
||||
| `<leader>kr` | Review file |
|
||||
| `<leader>kg` | Review git diff |
|
||||
| `<leader>kf` | Fix diagnostics |
|
||||
| `<leader>ko` | Optimize selection (visual) |
|
||||
| `<leader>kR` | Refactor selection (visual) |
|
||||
| `<leader>kd` | Document selection (visual) |
|
||||
| `<leader>kt` | Test selection (visual) |
|
||||
| `<leader>kh` | Ask about harpooned files |
|
||||
|
||||
## Session Management
|
||||
|
||||
| Key | Description |
|
||||
|-----|-------------|
|
||||
| `<leader>qs` | Restore session |
|
||||
| `<leader>ql` | Restore last session |
|
||||
| `<leader>qd` | Don't save session |
|
||||
| `<leader>qS` | Select session |
|
||||
|
||||
## Background Tasks (Executor)
|
||||
|
||||
| Key | Description |
|
||||
|-----|-------------|
|
||||
| `<leader>Brr` | Run task |
|
||||
| `<leader>Brs` | Set command |
|
||||
| `<leader>Bll` | Show last task |
|
||||
|
||||
## Window Management
|
||||
|
||||
| Key | Description |
|
||||
|-----|-------------|
|
||||
| `<leader>ww` | Other window |
|
||||
| `<leader>wd` | Delete window |
|
||||
| `<leader>w-` | Split below |
|
||||
| `<leader>w\|` | Split right |
|
||||
| `<leader>wm` | Maximize window |
|
||||
|
||||
## Buffers
|
||||
|
||||
| Key | Description |
|
||||
|-----|-------------|
|
||||
| `<S-h>` | Previous buffer |
|
||||
| `<S-l>` | Next buffer |
|
||||
| `<leader>bd` | Delete buffer |
|
||||
| `<leader>bo` | Delete other buffers |
|
||||
|
||||
## Misc
|
||||
|
||||
| Key | Description |
|
||||
|-----|-------------|
|
||||
| `<leader>l` | Lazy (plugin manager) |
|
||||
| `<leader>L` | Lazy extras |
|
||||
| `<leader>fn` | New file |
|
||||
| `<leader>xl` | Location list |
|
||||
| `<leader>xq` | Quickfix list |
|
||||
| `<leader>xt` | Todo list |
|
||||
| `<leader>uz` | Toggle zen mode |
|
||||
151
docs/cheatsheets/testing.md
Normal file
151
docs/cheatsheets/testing.md
Normal file
@@ -0,0 +1,151 @@
|
||||
# Testing Cheatsheet
|
||||
|
||||
## Quick Reference
|
||||
|
||||
| Key | Action |
|
||||
|-----|--------|
|
||||
| `<leader>tt` | Run nearest test |
|
||||
| `<leader>tf` | Run file tests |
|
||||
| `<leader>ta` | Run all tests |
|
||||
| `<leader>td` | Debug test |
|
||||
| `<leader>ts` | Toggle summary |
|
||||
|
||||
## Running Tests
|
||||
|
||||
```
|
||||
<leader>tt Run nearest test (cursor position)
|
||||
<leader>tf Run all tests in current file
|
||||
<leader>ta Run all tests in project
|
||||
<leader>tl Re-run last test
|
||||
<leader>tS Stop running tests
|
||||
```
|
||||
|
||||
## Debugging Tests
|
||||
|
||||
```
|
||||
<leader>td Debug nearest test (with DAP)
|
||||
<leader>tD Debug all tests in file
|
||||
```
|
||||
|
||||
## Watch Mode
|
||||
|
||||
```
|
||||
<leader>tw Toggle watch mode (file)
|
||||
<leader>tW Toggle watch mode (nearest)
|
||||
```
|
||||
|
||||
Tests auto-run when file changes.
|
||||
|
||||
## Output & Results
|
||||
|
||||
```
|
||||
<leader>ts Toggle test summary panel
|
||||
<leader>to Show output for nearest test
|
||||
<leader>tO Toggle output panel
|
||||
```
|
||||
|
||||
## Navigation
|
||||
|
||||
```
|
||||
]t Jump to next failed test
|
||||
[t Jump to previous failed test
|
||||
```
|
||||
|
||||
## Test Summary Panel
|
||||
|
||||
When summary is open (`<leader>ts`):
|
||||
|
||||
```
|
||||
<cr> Jump to test
|
||||
o Show output
|
||||
i Show short output
|
||||
O Show full output
|
||||
m Mark test
|
||||
M Clear marks
|
||||
r Run marked/nearest
|
||||
R Run all in file
|
||||
d Debug test
|
||||
```
|
||||
|
||||
## Framework-Specific
|
||||
|
||||
### Vitest (TypeScript)
|
||||
|
||||
Files detected: `*.test.ts`, `*.spec.ts`, `*.test.tsx`, `*.spec.tsx`
|
||||
|
||||
```typescript
|
||||
// Test file example
|
||||
describe('MyComponent', () => {
|
||||
it('should render', () => {
|
||||
// cursor here, <leader>tt runs this test
|
||||
})
|
||||
})
|
||||
```
|
||||
|
||||
### Pytest (Python)
|
||||
|
||||
Files detected: `test_*.py`, `*_test.py`
|
||||
|
||||
```python
|
||||
# Test file example
|
||||
def test_something():
|
||||
# cursor here, <leader>tt runs this test
|
||||
pass
|
||||
|
||||
class TestMyClass:
|
||||
def test_method(self):
|
||||
pass
|
||||
```
|
||||
|
||||
### Go Test
|
||||
|
||||
Files detected: `*_test.go`
|
||||
|
||||
```go
|
||||
// Test file example
|
||||
func TestSomething(t *testing.T) {
|
||||
// cursor here, <leader>tt runs this test
|
||||
}
|
||||
```
|
||||
|
||||
## Common Workflows
|
||||
|
||||
### TDD Workflow
|
||||
|
||||
1. Write failing test
|
||||
2. `<leader>tw` - Enable watch mode
|
||||
3. Write implementation
|
||||
4. Test auto-runs on save
|
||||
5. `<leader>tw` - Disable when done
|
||||
|
||||
### Debug Failing Test
|
||||
|
||||
1. `]t` - Jump to failed test
|
||||
2. `<leader>to` - View output
|
||||
3. Set breakpoint if needed (`<leader>db`)
|
||||
4. `<leader>td` - Debug test
|
||||
5. Step through with DAP controls
|
||||
|
||||
### Run Specific Tests
|
||||
|
||||
1. `<leader>ts` - Open summary
|
||||
2. `m` on tests to mark them
|
||||
3. `r` to run marked tests
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
### Tests Not Found
|
||||
|
||||
- Check file naming convention
|
||||
- Verify neotest adapter is installed
|
||||
- Run `:checkhealth neotest`
|
||||
|
||||
### Wrong Framework Used
|
||||
|
||||
- Check `testing.lua` for adapter config
|
||||
- Ensure correct adapter is listed
|
||||
|
||||
### Output Not Showing
|
||||
|
||||
- `<leader>tO` to toggle output panel
|
||||
- Check if test actually ran
|
||||
Reference in New Issue
Block a user