# Referensi Cepat VS Code

*Navigasi, editing, multi-kursor, terminal, debugging, ekstensi*

> Source: VS Code Documentation (code.visualstudio.com/docs) · MIT

## Navigasi

### Navigasi File dan Simbol

| Command | Description |
|---------|-------------|
| `Ctrl+P` | Buka cepat file berdasarkan nama |
| `Ctrl+Shift+P` | Command Palette |
| `Ctrl+Shift+O` | Ke simbol dalam file |
| `Ctrl+T` | Ke simbol dalam workspace |
| `Ctrl+G` | Ke nomor baris |
| `F12` | Ke definisi |
| `Alt+F12` | Pratinjau definisi |
| `Shift+F12` | Temukan semua referensi |
| `Ctrl+Shift+\` | Lompat ke tanda kurung yang cocok |

### Navigasi Tab dan Editor

| Command | Description |
|---------|-------------|
| `Ctrl+Tab` | Siklus melalui tab yang terbuka |
| `Ctrl+1 / 2 / 3` | Fokus ke grup editor 1 / 2 / 3 |
| `Ctrl+\` | Bagi editor |
| `Ctrl+B` | Toggle sidebar |
| `Ctrl+J` | Toggle panel bawah |

## Editing

### Operasi Baris

| Command | Description |
|---------|-------------|
| `Ctrl+Shift+K` | Hapus seluruh baris |
| `Alt+Atas / Bawah` | Pindahkan baris ke atas / bawah |
| `Shift+Alt+Atas / Bawah` | Salin baris ke atas / bawah |
| `Ctrl+Enter` | Sisipkan baris di bawah |
| `Ctrl+Shift+Enter` | Sisipkan baris di atas |
| `Ctrl+Shift+[` | Lipat region |
| `Ctrl+Shift+]` | Buka lipatan region |

### Manipulasi Teks

| Command | Description |
|---------|-------------|
| `Ctrl+D` | Pilih kata (ulangi untuk tambah kecocokan berikutnya) |
| `Ctrl+Shift+L` | Pilih semua kemunculan seleksi |
| `Ctrl+L` | Pilih seluruh baris |
| `Ctrl+/` | Toggle komentar baris |
| `Shift+Alt+A` | Toggle komentar blok |
| `Tab / Shift+Tab` | Indentasi / kurangi indentasi baris |

## Multi-Kursor

### Menambahkan Kursor

| Command | Description |
|---------|-------------|
| `Alt+Klik` | Tambahkan kursor di posisi klik |
| `Ctrl+Alt+Atas / Bawah` | Tambahkan kursor di atas / bawah |
| `Ctrl+D` | Tambahkan kemunculan seleksi berikutnya |
| `Ctrl+Shift+L` | Tambahkan kursor di semua kemunculan |
| `Ctrl+U` | Batalkan penambahan kursor terakhir |
| `Esc` | Keluar dari mode multi-kursor |

### Alur Kerja Multi-Kursor

```
// Pilih kata, lalu Ctrl+D untuk tambah kecocokan
// Ketik pengganti — semua kursor diperbarui
// Ctrl+Shift+L memilih SEMUA kecocokan sekaligus
// Alt+Klik untuk penempatan kursor sembarang
```

## Terminal

### Pintasan Terminal

| Command | Description |
|---------|-------------|
| `Ctrl+`` | Toggle terminal terintegrasi |
| `Ctrl+Shift+`` | Buat terminal baru |
| `Ctrl+Shift+5` | Bagi terminal |
| `Ctrl+PgUp / PgDn` | Gulir terminal ke atas / bawah |
| `Ctrl+Shift+C` | Salin seleksi di terminal |
| `Ctrl+Shift+V` | Tempel ke terminal |

### Manajemen Terminal

| Command | Description |
|---------|-------------|
| `Ctrl+Shift+P → Terminal: Kill` | Matikan terminal aktif |
| `Ctrl+Shift+P → Terminal: Rename` | Ganti nama tab terminal |
| `Dropdown terminal` | Beralih antar terminal |
| `terminal.integrated.shell.*` | Pengaturan untuk mengganti shell default |

## Debugging

### Kontrol Debug

| Command | Description |
|---------|-------------|
| `F5` | Mulai / lanjutkan debugging |
| `Shift+F5` | Hentikan debugging |
| `Ctrl+Shift+F5` | Mulai ulang debugging |
| `F9` | Toggle breakpoint |
| `F10` | Step over |
| `F11` | Step into |
| `Shift+F11` | Step out |

### Contoh launch.json

```
{
  "type": "node",
  "request": "launch",
  "name": "Run App",
  "program": "${workspaceFolder}/app.js"
}
```

### Fitur Debug

| Command | Description |
|---------|-------------|
| `Panel Watch` | Pantau ekspresi saat debugging |
| `Call Stack` | Lihat call stack eksekusi |
| `Debug Console` | Evaluasi ekspresi di breakpoint |
| `Breakpoint kondisional` | Klik kanan breakpoint → Edit kondisi |
| `Logpoint` | Log pesan tanpa menghentikan eksekusi |

## Ekstensi

### Manajemen Ekstensi

| Command | Description |
|---------|-------------|
| `Ctrl+Shift+X` | Buka tampilan Ekstensi |
| `@installed` | Filter untuk menampilkan ekstensi terpasang |
| `@enabled / @disabled` | Filter berdasarkan aktif / tidak aktif |
| `@recommended` | Tampilkan ekstensi yang direkomendasikan |

### Ekstensi Penting

| Command | Description |
|---------|-------------|
| `Prettier` | Formatter kode (JS, TS, CSS, HTML) |
| `ESLint` | Linting JavaScript/TypeScript |
| `GitLens` | Integrasi Git canggih dan anotasi blame |
| `Remote - SSH` | Kembangkan di mesin remote via SSH |
| `Live Server` | Server dev lokal dengan live reload |
| `Thunder Client` | Klien REST API di dalam VS Code |

## Pengaturan

### Mengakses Pengaturan

| Command | Description |
|---------|-------------|
| `Ctrl+,` | Buka UI Pengaturan |
| `Ctrl+Shift+P → settings.json` | Buka JSON pengaturan |

### Pengaturan Umum (JSON)

```
{
  "editor.fontSize": 14,
  "editor.tabSize": 2,
  "editor.formatOnSave": true,
  "editor.wordWrap": "on",
  "files.autoSave": "afterDelay"
}
```

### Workspace vs Pengguna

| Command | Description |
|---------|-------------|
| `Pengaturan pengguna` | Global, berlaku untuk semua proyek |
| `Pengaturan workspace` | Per proyek, dalam .vscode/settings.json |
| `Workspace menggantikan Pengguna` | Pengaturan workspace lebih diprioritaskan |

## Pintasan Keyboard

### Kustomisasi

| Command | Description |
|---------|-------------|
| `Ctrl+K Ctrl+S` | Buka editor Pintasan Keyboard |
| `keybindings.json` | File JSON untuk binding kustom |

### Pintasan Penting

| Command | Description |
|---------|-------------|
| `Ctrl+Shift+P` | Command Palette (akses segalanya) |
| `Ctrl+P` | Buka cepat file |
| `Ctrl+Shift+F` | Cari di semua file |
| `Ctrl+H` | Cari dan ganti dalam file |
| `Ctrl+Shift+H` | Cari dan ganti di semua file |
| `F2` | Ganti nama simbol |
| `Ctrl+.` | Quick Fix (aksi kode) |
| `Ctrl+Space` | Aktifkan IntelliSense |
| `Ctrl+Shift+I` | Format dokumen |

## Integrasi Git

### Tampilan Source Control

| Command | Description |
|---------|-------------|
| `Ctrl+Shift+G` | Buka panel Source Control |
| `+` | Stage perubahan (di tampilan SCM) |
| `-` | Unstage perubahan |
| `Ctrl+Enter` | Commit perubahan yang di-stage |
| `...` | Aksi lainnya (push, pull, dll.) |

### Fitur Git Inline

| Command | Description |
|---------|-------------|
| `Indikator gutter` | Tanda hijau/biru/merah untuk ditambah/diubah/dihapus |
| `Ctrl+Shift+P → Git: Checkout` | Pindah branch |
| `Ctrl+Shift+P → Git: Pull` | Pull dari remote |
| `Ctrl+Shift+P → Git: Push` | Push ke remote |
| `Klik perubahan gutter` | Tampilan diff inline untuk baris yang diubah |

### Diff dan Merge

| Command | Description |
|---------|-------------|
| `SCM → Buka Perubahan` | Tampilan diff berdampingan |
| `Panah diff inline` | Kembalikan perubahan individual |
| `Editor merge 3 arah` | Selesaikan konflik secara visual (1.69+) |

## Pola Umum

### Fitur Workspace

| Command | Description |
|---------|-------------|
| `Ctrl+Shift+E` | Fokus ke file explorer |
| `Ctrl+Shift+D` | Fokus ke tampilan debug |
| `Ctrl+Shift+M` | Tampilkan panel masalah |
| `Ctrl+K Ctrl+T` | Ganti tema warna |
| `Ctrl+K Z` | Masuk mode Zen |

### Snippet

```
// File → Preferensi → Konfigurasi Snippet Pengguna
"Print": {
  "prefix": "log",
  "body": "console.log('$1');",
  "description": "Console log"
}
```

### Task (tasks.json)

```
{
  "label": "build",
  "type": "shell",
  "command": "npm run build",
  "group": "build"
}
```
