Editor
Code Navigation & Refactoring
Move through a codebase by what a name means, and rename or refactor with every reference updated.
Getting around
| Action | Windows / Linux | macOS |
|---|---|---|
| Go to Definition | F12 | F12 |
| Peek Definition (inline, no navigation) | Alt+F12 | Option+F12 |
| Go to References | Shift+F12 | Shift+F12 |
| Go to Symbol in File | Ctrl+Shift+O | Cmd+Shift+O |
| Go to Symbol in Workspace | Ctrl+T | Cmd+T |
| Navigate back / forward | Alt+←/→ | Ctrl+-/Ctrl+Shift+- |
Peek instead of jump
Peek Definition (Alt/Option + F12) opens the definition in a small panel. You stay in the current file, and you keep your place. It is a good way to check a function signature and then keep typing.
Renaming and refactoring
Press F2 on a symbol to rename it everywhere it is referenced in
the workspace. This is a language-aware rename, so it understands scope. A
local variable named data in one function is left alone when you rename a
different data in another function.
The lightbulb next to a line (or Ctrl/Cmd + .) opens quick fixes and refactorings for that spot. Depending on what the language server supports, that can mean extracting a selection into its own function or variable, converting a function to an arrow function, adding a missing import, and more.
Multi-root workspaces and navigation
In a multi-root workspace, Go to Definition and Find All References search every root folder, including ones other than the folder the current file lives in. Jumping from an app package into a shared library in the same workspace feels like moving inside a single folder.
Breadcrumbs
The trail just above the editor (toggle it with View → Appearance → Show Breadcrumbs) shows the current file's path and, for supported languages, where you are inside nested symbols. Click a segment to jump to a sibling file or symbol.