Find your way around the IDE
Know where to change a layout, inspect a property, write a handler and read a diagnostic.
Five surfaces, one project#
| Surface | What it owns | Use it when |
|---|---|---|
| Toolbox | Available controls and nonvisual components | You need to add an object to the selected Form/container. |
| Designer | The selected Form’s layout and control hierarchy | You need to arrange the interface. |
| Project navigator | The project’s declared documents | You need a different Form, module, class or test. |
| Inspector | Initial properties and selection details | You need to configure the selected object. |
| Results | Diagnostics, output, search and references | You need to understand what a tool reported. |
The command strip contains New, Open and Save alongside Check, Test, Build, Run, Debug and Publish. Use the tool for the question you are asking: Check validates source; Run demonstrates behavior; Publish prepares an application artifact.
Switch views without losing the document#
Design presents the layout. Code presents the complete BASIC document. Event focuses on one handler, while Split keeps design and code together. A handler’s displayed position in Event view is not a new source file: diagnostics still refer to its location in the complete document.
- Select a Form in the project navigator.
- In Design, select the object you want to change.
- Check the selected object’s name at the top of the Inspector.
- Choose the event and open its handler.
- Switch to Code when you need file-level declarations or helper procedures.
Commit a property intentionally#
Find a property with Filter properties or change the display order between Categories and A–Z. A single-line text edit commits on Return, Tab or leaving the field; multiline edits commit when you leave the field. Pickers apply their selection directly. Escape restores the original draft, and invalid values remain visibly invalid instead of being silently accepted.
Use assistance as assistance#
Complete BASIC uses Control–Space. Signature help uses Control–Shift–Space. Find References uses Command–Shift–R and includes unsaved project buffers. These actions help edit source; they do not save, run or certify the project.
After a rename or a structural change, inspect the result and run Check. When a diagnostic appears, keep its code, path, line and column together rather than copying only the last sentence.
Jump to the project declaration#
Use Command-click, Shift–F2, or Jump to Definition in Edit or the code context menu. Procedures and variables open at their declaration; Form and control names open the Designer. This works across unsaved project documents and in the presence of Check errors, but not while the IDE-launched app is running. Ambiguous names need qualification; built-in APIs may have no project source. Read navigation outcomes.
Take a two-minute tour#
- Open the first-app project in a disposable copy.
- Select txtName and locate Text in the Inspector.
- Select cmdGreet and find the Click binding.
- Open cmdGreet_Click and identify its empty-input guard.
- Run Check, then Run. Try a blank input and a normal name.
You should now be able to move from an object on screen to its configuration, event and complete source without guessing which file owns it.
Confirm that Save actually succeeded#
An edited project shows Edited in the window title and Unsaved changes below the project files. After a successful Save, the button briefly shows a green checkmark, the status becomes Saved at with your Mac’s local time, and Edited disappears. VoiceOver announces Saved; Reduce Motion avoids the fade.
A failed save keeps the unsaved state and explains the problem in an alert. Properties pending or Rename pending mean an Inspector edit still needs to be applied or cancelled. Resolve that state before relying on a file copy or Git checkpoint.
20f4bfed6b · Build manifestSources & maintenance
Original web explanation, reviewed against these repository sources. API tables and example files follow the implementation.
docs/manual/04-the-ide-at-a-glance.mddocs/manual/05-designing-forms.mdsrc/McBasic.Build/DefinitionService.csmacos/McBasicIDE/Sources/SemanticReferences.swift