262 lines
6.0 KiB
Markdown
262 lines
6.0 KiB
Markdown
# Les 12: Introduction to Cursor
|
|
|
|
---
|
|
|
|
## Hoofdstuk
|
|
**Deel 3: AI Tooling & Prototyping** (Les 10-12)
|
|
|
|
## Beschrijving
|
|
Kennismaking met Cursor - de professionele AI code editor. Leer de core features en ontdek waarom dit de tool is voor serieuze AI-assisted development.
|
|
|
|
---
|
|
|
|
## Te Behandelen
|
|
|
|
### Groepsdiscussie (15 min)
|
|
Bespreek klassikaal de prototype ervaringen uit Les 11 - welke workflow patterns werkten goed? Wat ging fout en hoe loste je dat op?
|
|
|
|
### Waarom Cursor?
|
|
|
|
**Tot nu toe gebruikten we:**
|
|
- OpenCode (gratis, goed voor leren)
|
|
- Claude Desktop (voor agents en projects)
|
|
|
|
**Cursor is de volgende stap:**
|
|
- Purpose-built voor AI-assisted coding
|
|
- Professionele editor (gebaseerd op VS Code)
|
|
- Superieure AI integratie
|
|
- Free tier beschikbaar (voldoende voor de cursus)
|
|
|
|
---
|
|
|
|
### Free vs Pro
|
|
|
|
| Aspect | Free Tier | Pro ($20/maand) |
|
|
|--------|-----------|-----------------|
|
|
| Tab completion | ✅ | ✅ |
|
|
| CMD+K edits | Beperkt | Onbeperkt |
|
|
| Chat | Beperkt | Onbeperkt |
|
|
| Composer | Beperkt | Onbeperkt |
|
|
| Models | GPT-4, Claude | Alle modellen |
|
|
|
|
**Voor deze cursus:** Free tier is voldoende!
|
|
|
|
---
|
|
|
|
### Installatie
|
|
|
|
1. Ga naar [cursor.sh](https://cursor.sh)
|
|
2. Download voor jouw OS
|
|
3. Installeer
|
|
4. Open Cursor
|
|
5. Sign in met GitHub
|
|
|
|
**Eerste keer:**
|
|
- Cursor vraagt om settings te importeren van VS Code (optioneel)
|
|
- Accept default keybindings
|
|
|
|
---
|
|
|
|
### Core Features
|
|
|
|
#### 1. Tab Completion
|
|
AI-powered autocomplete die hele blokken code voorspelt.
|
|
|
|
**Hoe het werkt:**
|
|
- Begin met typen
|
|
- Cursor suggereert code in grijs
|
|
- Druk Tab om te accepteren
|
|
- Druk Escape om te negeren
|
|
|
|
**Tip:** Schrijf een comment over wat je wilt, en Tab completion vult de code in.
|
|
|
|
```typescript
|
|
// Function that calculates the total price with tax
|
|
// [Tab completion vult de functie in]
|
|
```
|
|
|
|
#### 2. CMD+K (Inline Editing)
|
|
Selecteer code en vraag AI om het aan te passen.
|
|
|
|
**Hoe het werkt:**
|
|
1. Selecteer code (of zet cursor op een regel)
|
|
2. Druk CMD+K (Mac) of Ctrl+K (Windows)
|
|
3. Typ je instructie
|
|
4. Enter om te genereren
|
|
5. Accept of Reject de wijziging
|
|
|
|
**Voorbeelden:**
|
|
- "Add error handling"
|
|
- "Convert to TypeScript"
|
|
- "Make this responsive"
|
|
- "Add loading state"
|
|
|
|
#### 3. Chat (Sidebar)
|
|
Converseer met AI over je code.
|
|
|
|
**Hoe het werkt:**
|
|
1. CMD+Shift+L opent Chat
|
|
2. Stel je vraag
|
|
3. AI heeft context van je open file
|
|
|
|
**Voorbeelden:**
|
|
- "Explain what this function does"
|
|
- "How can I optimize this?"
|
|
- "What's wrong with this code?"
|
|
|
|
#### 4. @ Mentions
|
|
Refereer naar files, folders, of documentatie.
|
|
|
|
**Syntax:**
|
|
- `@filename.tsx` - specifieke file
|
|
- `@folder/` - hele folder
|
|
- `@Docs` - officiële docs zoeken
|
|
- `@Web` - web zoeken
|
|
|
|
**Voorbeeld:**
|
|
```
|
|
@components/Button.tsx - How can I add a loading prop to this?
|
|
```
|
|
|
|
#### 5. Composer Mode
|
|
Multi-file generatie in één keer.
|
|
|
|
**Hoe het werkt:**
|
|
1. CMD+I opent Composer
|
|
2. Beschrijf wat je wilt bouwen
|
|
3. AI genereert meerdere files tegelijk
|
|
4. Review en accept changes
|
|
|
|
**Wanneer gebruiken:**
|
|
- Nieuwe features met meerdere components
|
|
- Refactoring over meerdere files
|
|
- Boilerplate code genereren
|
|
|
|
---
|
|
|
|
### Workflow Vergelijking
|
|
|
|
| Taak | OpenCode | Cursor |
|
|
|------|----------|--------|
|
|
| Snelle fix | Chat | CMD+K |
|
|
| Nieuwe component | Chat | Tab completion + CMD+K |
|
|
| Multi-file feature | Meerdere chats | Composer |
|
|
| Code uitleg | Chat | Chat + @ mentions |
|
|
| Refactoring | Chat | CMD+K of Composer |
|
|
|
|
---
|
|
|
|
### Keyboard Shortcuts Cheat Sheet
|
|
|
|
| Actie | Mac | Windows |
|
|
|-------|-----|---------|
|
|
| Tab completion accept | Tab | Tab |
|
|
| Inline edit | CMD+K | Ctrl+K |
|
|
| Open Chat | CMD+Shift+L | Ctrl+Shift+L |
|
|
| Open Composer | CMD+I | Ctrl+I |
|
|
| Accept suggestion | CMD+Y | Ctrl+Y |
|
|
| Reject suggestion | CMD+N | Ctrl+N |
|
|
|
|
---
|
|
|
|
## Tools
|
|
- Cursor
|
|
- GitHub
|
|
|
|
---
|
|
|
|
## Lesopdracht (2 uur)
|
|
|
|
### Cursor Verkennen
|
|
|
|
**Deel 1: Setup (20 min)**
|
|
|
|
1. Download en installeer Cursor
|
|
2. Sign in met GitHub
|
|
3. Open je Todo app project
|
|
4. Verken de interface
|
|
|
|
**Deel 2: Tab Completion (30 min)**
|
|
|
|
Maak nieuwe file `src/components/LoadingSpinner.tsx`:
|
|
1. Typ comment: `// Loading spinner component with size prop`
|
|
2. Laat Tab completion de rest doen
|
|
3. Itereer met meer comments
|
|
4. Noteer: hoe goed is de completion?
|
|
|
|
**Deel 3: CMD+K Oefenen (30 min)**
|
|
|
|
Open je TodoList component:
|
|
1. Selecteer de list rendering code
|
|
2. CMD+K → "Add loading state with skeleton"
|
|
3. Selecteer een button
|
|
4. CMD+K → "Add disabled state while loading"
|
|
5. Selecteer een function
|
|
6. CMD+K → "Add try-catch with error toast"
|
|
|
|
Noteer wat werkt en wat niet.
|
|
|
|
**Deel 4: Chat + @ Mentions (20 min)**
|
|
|
|
1. Open Chat (CMD+Shift+L)
|
|
2. Vraag: "@TodoList.tsx What could I improve in this component?"
|
|
3. Vraag: "@lib/supabase.ts How do I add real-time subscriptions?"
|
|
4. Probeer @Docs voor Next.js documentatie
|
|
|
|
**Deel 5: Composer Proberen (20 min)**
|
|
|
|
1. Open Composer (CMD+I)
|
|
2. Vraag: "Create a Settings page with dark mode toggle and notification preferences. Use our existing component style."
|
|
3. Review de gegenereerde files
|
|
4. Accept of reject
|
|
|
|
### Deliverable
|
|
- Screenshot van werkende Tab completion
|
|
- 3 voorbeelden van CMD+K edits
|
|
- Notities: wat werkt wel/niet goed
|
|
|
|
---
|
|
|
|
## Huiswerk (2 uur)
|
|
|
|
### Bouw Feature met Cursor
|
|
|
|
**Deel 1: Feature Bouwen (1.5 uur)**
|
|
|
|
Voeg "Due Dates" toe aan je Todo app:
|
|
1. Elk todo kan een due date hebben
|
|
2. Toon due date in de lijst
|
|
3. Sorteer op due date
|
|
4. Markeer overdue items in rood
|
|
|
|
**Gebruik ALLE Cursor features:**
|
|
- Tab completion voor nieuwe code
|
|
- CMD+K voor aanpassingen
|
|
- Chat voor vragen
|
|
- Composer voor multi-file changes
|
|
|
|
**Deel 2: Reflectie (30 min)**
|
|
|
|
Schrijf vergelijking (400 woorden):
|
|
- Cursor vs OpenCode: wat is beter?
|
|
- Welke feature gebruik je het meest?
|
|
- Is free tier voldoende?
|
|
- Ga je overstappen?
|
|
|
|
### Deliverable
|
|
- Werkende Due Dates feature
|
|
- GitHub commit met de changes
|
|
- Reflectie (400 woorden)
|
|
|
|
---
|
|
|
|
## Leerdoelen
|
|
Na deze les kan de student:
|
|
- Cursor installeren en configureren
|
|
- Tab completion effectief gebruiken
|
|
- CMD+K gebruiken voor inline edits
|
|
- Chat gebruiken met @ mentions voor context
|
|
- Composer mode gebruiken voor multi-file generatie
|
|
- Het verschil beoordelen tussen Cursor en OpenCode
|
|
- De juiste Cursor feature kiezen per taak
|