A Tour of the Tools
4.1 Playground
A scratch pad for evaluating code. Select text (or place the cursor on a line) and:
Evaluate, discard the result Evaluate, print the result inline
Evaluate, open an Inspector on the result Evaluate, show an inspector pane next to the Playground Evaluate step by step in the Debugger
Variables declared in a Playground without | temps | become workspace bindings that persist between evaluations.
4.2 Transcript
A console for textual output: Transcript show: 'The answer is '; show: 42 printString; cr, Transcript crShow: 'Starting...', Transcript clear.
4.3 System Browser (Calypso)
The class browser — where you read and write code. Panes from left to right:
Toggle instance side / class side with the buttons under the class list.
Right-click anything for refactorings, senders, implementors, references, versions.
Open with Ctrl+O B, or browse a class from code: Point browse or select Point and press Ctrl+B.
┌──────────────┬──────────────┬──────────────┬──────────────┐
│ Packages │ Classes │ Protocols │ Methods │
│ (and tags) │ (hierarchy) │ (categories) │ │
├──────────────┴──────────────┴──────────────┴──────────────┤
│ Code pane: class definition or method source (Ctrl+S) │
└───────────────────────────────────────────────────────────┘4.4 Inspector
Shows the internal state of any object and lets you evaluate code in its context (self is the inspected object). Pharo's inspector has multiple views ("Raw", "Items", "Tree", custom views); you can drill into objects in miller-column style. Try (3 @ 4) inspect or Smalltalk inspect.
4.5 Debugger
Opens when an error is not handled, on self halt, or via *Debug it*. You can:
See the full stack and every variable of every frame.
Step: *Into*, *Over*, *Through*, *Proceed*, *Restart* a frame, *Return* a value.
Edit a method in the debugger, accept, and continue — the frame restarts with the new code.
Create a missing method directly from a doesNotUnderstand: (*Create* button) — the heart of debugger-driven development (Chapter 26).
4.6 Spotter
Press Shift+Enter to search everything: classes, methods, packages, senders, implementors, files, menu items, Playground history. Type #printOn: to search implementors, prefix with categories like #Classes.
4.7 Finder
*Tools → Finder* searches by class/selector names, source code, and examples. The famous *Examples* mode finds methods from receiver, arguments, and expected result: 'hello' . 'HELLO' finds asUppercase; 3 . 4 . 7 finds +.
4.8 Other tools
Git client: clone, commit, push, branch, merge (Chapter 28) Test Runner / DrTests
Run SUnit tests by package/class, see failures Epicea / Code Changes Change history and recovery Senders / Implementors browsers
Navigate who calls what (Ctrl+N / Ctrl+M) Process Browser View and control running processes Critic Browser / Quality Assistant Lint rules and code-quality suggestions Settings Browser
Fonts, themes, code formatting, network proxy Time profiling (Chapter 40)