Lab Interface
The lab environment consists of several panels:Activity Bar
The leftmost vertical bar provides access to:| Icon | Panel | Purpose |
|---|---|---|
| Files | Explorer | Browse and open project files |
| Book | Instructions | View lab objectives and guidance |
| Search | Search | Find text across all files |
| Container | Services | Manage Docker/Podman services |
| Flask | Testing | Run and view test results |
| Lightbulb | Solution | View the solution (if available) |
| Settings | Settings | Configure editor preferences |
Editor Area
The central panel shows:- Editor tabs: Open files with dirty indicators (•)
- Code editor: Monaco-based editor with syntax highlighting, IntelliSense, and git diff markers
- Split view: Open two files side-by-side
Bottom Panel
Collapsible panel with tabs for:- Terminal: Integrated terminal sessions
- Diagnostics: TypeScript/LSP errors and warnings
Status Bar
Bottom bar displaying:- Current file language and encoding
- Cursor position (line, column)
- Tab size
- Vim mode status (if enabled)
- Error and warning counts
- Lab provisioning status
Opening Files
Editing Code
The Monaco editor provides:- Syntax highlighting: Automatic language detection from file extension
- IntelliSense: Code completion powered by TypeScript and LSP servers
- Multi-cursor editing:
Cmd+D/Ctrl+Dto select next occurrence - Git integration: Gutter markers show added, modified, and deleted lines
- Vim mode: Optional Vim keybindings (enable in Settings)
Saving Files
Using the Terminal
Terminals run inside the lab’s containerized environment:Terminals persist for the duration of the lab session. They are destroyed when you close the lab.
Running Tests
Labs are marked complete when all tests pass
Test Output
Test results display:- Assertion list: Individual test cases with pass/fail status
- Raw output: Expandable section showing full test runner output
- Duration: Total test execution time
- Summary: Count of passed vs. total assertions
Searching Files
Split Editor
View two files simultaneously:Managing Services
Labs can include Docker/Podman services (databases, Redis, etc.):Viewing Solutions
If a solution is available:Open Instructions or click the Lightbulb icon
Solutions are accessible from the Instructions panel or Activity Bar
Lab Lifecycle
Labs go through several states:| State | Description |
|---|---|
| Provisioning | Creating workspace, installing dependencies, starting services |
| Ready | Lab is active and ready to use |
| Failed | Provisioning error occurred (shows error message with retry option) |
| Missing Runtime | Docker/Podman not detected (prompts for installation) |
The status bar shows the current lifecycle state with a colored indicator
Command Palette
Access all lab commands:- File mode:
Cmd+P/Ctrl+P- Quick file search - Command mode:
Cmd+Shift+P/Ctrl+Shift+P- Run commands
> in file mode to switch to command mode.
Useful Commands
- Toggle Sidebar
- Toggle Word Wrap
- Toggle Auto Save
- Close All Tabs
- Go to Line
- Focus Explorer/Instructions/Search/Services/Testing