Aug 00 Factory Floor
Volume Number: 16 (2000)
Issue Number: 8
Column Tag: From the Factory Floor
The Legends of Arnold's Gold
By Richard Atwell, ©2000 by Metrowerks, Inc., all rights reserved
Ever since CodeWarrior DR/1 shipped back in late 1993, CodeWarriors have been asking for keystroke navigation features and other shortcuts for just about every part of the IDE. If you're like me, these manage to remain secret over time because it's time consuming to read the manuals every release to see what's changed. Some of these are not so secret but they are worth mentioning anyway.
With that in mind, here's the torrid exposé that dares to reveal them all.
Search Results and Error Message Windows
Cycle through list of found items when the keyboard focus is on the editor pane. For searches, the text that was found is highlighted as you navigate through the list.
With a source file, opens its corresponding header file or vice versa.
The button just above the vertical scroll bar is a pane splitter that allows you to view different parts of your file at the same time.
The icon just above the splitter toggles the toolbar position between the top and bottom of the window.
Double-click on a word in the editor selects it.
Triple-click on a word selects the whole line that contains the word.
Moves the insertion point to the beginning or end of the document.
Moves the insertion point to the top and bottom of the visible page. If you are already at the top/bottom, pressing this key combination again will take you to the next/previous position.
Select the text between the last and current insertion point. This can also be used to extend a text selection in either direction.
Selects all the text or extends the selection between the insertion point and destination. Follows similar logic as non-shift case.
Select/extend the text between the insertion point and destination. Follows similar logic as non-shift case.
Navigate sub-words by case. For example, if the insertion point is at "Debug" within "DebugText", the insertion point will move to the start of "Text".
Extend a text selection within using the above logic.
When you have browsing active for your project, option-click on a symbol name takes you to the definition of the symbol, if there is only one. If there are more than one, the Symbol Browser window opens up.
Same as above but searches using the reference application specified in the IDE Extras preferences panel as a backup.
Collapse/expand a node and all its sibling nodes. We call this "wide disclosure." You can also click the mouse instead of using the left and right arrow keys.
Collapse/expand a node and all it's sub-nodes. Again, you can also click the mouse instead of using the left and right arrow keys.
Combine the above behaviors and perform a deep and wide disclosure, sometimes called recursive.
Typing while viewing the Files page takes you to the file with the nearest alphabetically matching item or group (the item must be visible, i.e. not be in a collapsed group). You can see what you are typing at the bottom of the window.
Typing while viewing the Link Order page takes you to the file with the nearest alphabetically matching name.
Thereafter, pressing the tab key takes you to the next item that matches the text you typed.
You can drag files or projects from Finder onto the Project Window to add them to a project. If you have more than one target per project you will be asked which targets to add those files to and they will be filtered by the target's file mapping settings.
In the Files page, clicking on a header sorts using the items in that column. Clicking on the button to the far right of all the headers when a column is sorted toggles the sort direction much like the behavior of the Finder.
In the Files and Link Order pages tries to open that item in the editor.
In the Files page edits the name of the selected group.
In the Targets page opens the target preferences for a selected item.
In the Targets page, all project commands apply to the selected item, so you can use continuous and discontinuous selection to select which takes to build, for example.
In any of the project pages, presents the delete item dialog.
Compare Files Window
You can drag and drop files and folders from the Finder into the icon wells at the left of the window.
Breakpoints and Watchpoints Windows
Click on the red dot next to the name of the function/filename toggles the state of all breakpoints in the list.
For watchpoints or breakpoints an editor window will open that reveals the selected item.
You can use type ahead in the list views to select the item with the nearest matching name.
Use can use the arrow key to navigate within the list.
Variable and Register Views
Edit selected values.
Navigate within the list.
Bring up a contextual menu of applicable items from the Data menu.
Double-click on a variable will open it in its own window.
Drag and drop variables to this window.
Drag names from the register window to this window.
Use ®R1 (option-r is the copyright character) to specify registers by name.
Stack Crawl Window
You can drag the blue arrow that represents the current program counter register forward or backward to change the next line to be executed. Be sure you know what you are doing when you attempt this, i.e., don't move the arrow into prologs or into other functions.
Clicking the small document icon at the top left of the editor pane opens the source file in an editor.
Clicking the small dot icon at the top left of the Variables pane toggles between all the variable display modes.
In the close box of the window title bar of a document window closes all windows of that type. For example, all editor windows or all project windows or all variable windows, etc.
On the title bar of a window to move it without making it the front window after you release the mouse button.
Cancel a find.
Drag files from the Project Window onto the files list to add them to the search.
Drag a folder from the Finder onto the files list to add the contents to the search to find recursively (use with caution as the list can take a long time to build with large directories).
Remove items from the toolbar.
Mouse over a button will display the balloon help for that item.
Thanks to Max and everyone else at Metrowerks who helped to collect the information for this article. If you'd like to get in touch with us about CodeWarrior issues, post in our newsgroup or email us directly.
Richard Alexander David Atwell, a.k.a. "Ratwell," is a Mac OS Debugger Engineer at Metrowerks and is responsible for making MetroNub do nasty things so you can debug your code. Good ideas for CodeWarrior t-shirts can be sent to email@example.com.