Program Menus Quick Reference


CodeBench Menu

CodeBench Menus About...

This menu item will show a requester that includes version and copyright information . Please report the version number stated here in any correspondence regarding support etc.



The Help menu will display this documentation. It uses the "launch-handler" to open the web browser of your choice, and the displayed text is dependent on the location that the Help was launched from. For example, selecting this menu from the Editor window would show the documentation that is specific to the editor. Similarly, the menu selected from the Project window would open the documentation for that. This feature is also accessible by pressing the "Help" key one your keyboard.


Show me a "Handy Hint"...

A Handy Hint These are brief overviews of various topics that may not be instantly obvious to the user. By selecting this menu, you can view all the hints. If a hint is of particular interest, you may select the "Show me more" option and this documentation will open at the appropriate place to allow you to read about the topic in more detail. The free licence versions will show a random hint each time a project is loaded.

You may also disable these hints from showing after loading a project via the Preferences (not applicable to the free-licence versions).


Visit the Support Forums

This will load your configured web browser and load up the support forums. You may be required to login with your Community Client details if you have not cached the login credentials with your browser.


Run the Community Client...

If the Client is not run automatically when CodeBench starts, it may be started by selecting this item.


Iconify All

The entire program can be iconified. This will place an icon on the Workbench screen. The label for the icon will reflect which project is currently loaded when the iconification took place, or it will simply be "CodeBench" if no project is loaded. Double-click it to reopen the program. 



Exit the program. This may display a confirmation requester depending on the current preferences settings.


back to the top




Project Menu

Project Menus New...

Create a new project from scratch. This will invoke the Project selection window and the Information window to allow the project to be configured. This function is also available in the main Toolbar.



Allows a project to be loaded from disk and to have it shown in the same state as when it was saved. This function is also available in the main Toolbar.



Project Importers Opens a requester listing any importers that the currently installed plugins may support. As of the time of writing, only the AmigaOS4SDK plugin has an importer for StormC projects. You may select the type of project to import from the list, and you will be asked to supply the full path to the project that you wish to import. If the project is verified as the correct type, the importer will create a new project from it, and automatically include the files within it. This makes it extremely easy to migrate from StormC to CodeBench, and saves having to recreate your projects. Whether the source actually compiles is another matter though!



Allows certain information about the project files to be saved to disk. Current cursor positions of all open files as well as other data will be saved allowing the project to be loaded in the state of the last snapshot.



Allows projects to be linked together. See here for more information.


Recent Projects...

Recent List Each time you create or load a project, it is added to an internal list of recently accessed items. This menu shows the requester that allows you to select a project from that list. The time and date is shown for convenience, and the list is ordered with the most recent item at the top. The free licence versions limits the length of this list to the last 16 entries.
You can click on each of the column headings in the list to sort the order of the entries, this makes it much easier to find a particular project when the list starts to fill up.
Loading may be done by double-clicking the name of the project you wish to load (or by using the button).
The button will remove an entry from the list permanently in order to clean up the list.
Lastly, the button will open the Load Project requester in case the project required is not in the recent list. This saves having to close the Recent window and open the load requester manually.



This menu opens the Search requester. Depending on which window was active at the time this menu item was selected, the Search scope may be different. Also offered is the opportunity to replace, and full project wide searches are possible.


Find function...

Specify a function name to search for. If found, the file containing that function is made current, and the cursor moved to the first line of that function. This search is case-sensitive.



Adjust certain aspects of the current project being worked on. This is covered in detail in the Project settings section.


blah Statistics...

View certain statistics about the current project. This includes the amount of files, lines and bytes.   The first part of this window gives you some general summaries about the project, while the latter part gives a more detailed overview of the specific sections.

If the project uses a repository, there will also be extra information shown here that will tell you when the last "GET" and "PUT" was performed. This can be done manually via the "Synchronise" menu, and if there has not been a "GET" within the last 7 days, you will be presented with the option to do that after the project loads.

The date of creation will be unknown for projects created with older versions of CodeBench as the required meta-data is missing from the project file.



"Touch"ing a file means that the datestamp of the file on disk will be set to the current date and time, which can be viewed from the file attributes window. You can choose to set the current file, open files or all files. This will usually cause the build system to recreate the object that this file would generate.


Add Files...

Add files to the project. This may be any type of file applicable to the project type. It is supported that you may specify the name of a file that does not exist yet, and this file will be created for you, then added to the project.


Remove File

This removes the currently selected file in the Project list. While it is removed from the project, the file is not deleted from disk.


Rename File...

This will rename the currently selected file in the Project list. A requester will be opened asking you for the new name. You can optionally supply a new path in this requester, effectively moving the file, with or without a different name. Once the change is confirmed, the project list will be updated to reflect these changes.


Goto open file...

This menu item will open a requester showing all files that are currently open in the editor. A file can then be selected by double-clicking the name to jump to that file. Keyboard navigation is also possible and offers a way to jump between files easily from the keyboard.



This menu has further options, as follows:

"Changed only" - Perform a normal build, same as the Toolbar button.

"All (forced)" - force the build program to rebuild the whole project.

"Clean" - Will attempt to delete all compiled objects, if any.

"With options" - Will invoke a requester asking for any parameters to be passed to the build program. in the context of the AmigaOS4SDK type of project, these options can be makefile rules, or any other parameters accepted by the Make program.

NOTE: These options may or may not be available depending on the project type.


Run Target Program Run

Functionally the same as the Toolbar button. The actual meaning of "Run" may be different depending on the project. For example, a C/C++ project will always run the compiled binary, a BASIC project may well run the interpreted script or a compiled binary depending on the settings or an HTML project may "run" the code by displaying it in your web browser. Running an executable can be done via the shell (and any arguments you want to supply) or via the Workbench.

To the right, we see the typical dialog for a C/C++ project target. If the target binary has an "icon", the "Workbench" option will be available. If the Shell option is selected, you may supply arguments to pass to the target by typing them into the "parameters" gadget. You may alternatively pick some files from a requester if you wish to pass those as arguments.

Regardless of how or what you pass as arguments, they will be saved as part of the project history. What this means is that they are saved and will be available by selecting the drop-down menu gadget to the left of the "parameters" gadget. From here, you may pick any arguments that you may have passed previously, even in prior sessions. This saves having to remember and type them in each time you wish to use them.



Functionally the same as the Toolbar button, and will run the compiled program via the specified debugger.

NOTE: This option may or may not be available depending on project type.



Many different types of projects can be developed using a remote server as a host on which to keep the latest versions of the files in a project. An HTML project may, for example, want to "Put" changed files back to the web server, or a C/C++ project may use a file repository like CVS or SVN. In these cases, the project should be marked as such in the settings, and using this menu item will start the synchronizing process. You may also be requested to synchronize when closing the project if local files are newer then the last "PUT". "Plugins" are used to perform the required actions and if no such plugin is specified for this project, you will be prompted to choose the correct one. There is more information about the synchronizing plugins here.



This allows you to open a new console for your own use. The current directory of the shell will be automatically set to the project directory for you.

Here you may also define how and where you want shells to open. By selecting "Set Position/Size", a window will open that represents a new shell window. You may place this wherever you like and also set the size. Clicking the close gadget of this window will save the dimensions, and all subsequent shell window will appear at this location.


Open in Workbench

This will open a Workbench window with the current projects directory displayed within it. This can be useful if you wish to run a program from the project directory quickly and via its icon.


Open Project Notes file

This will open the dedicated scratchpad file for this project.

back to the top




Editor Menu

Editor Menus Create new file

This will open a new blank file. A header is created which includes some information about the project. This function is also mirrored in the Editor buttons.


Open file...

Load a file into the editor by selecting the file required from the resulting requester. This function is also mirrored in the Editor buttons.


Open a recent file...

When files that are not part of the current project are opened, they are added to a list of opened files. Selecting this item will reveal this list, and a file can be selected and opened in the editor. This works in exacly the same way as the Recent Project list.


Close current file

This has the same effect as clicking the close gadget of the editor window, or clicking the close gadget of the tab which represents the current file. Even though the file has been closed, it is still loaded as part of the project. Double-click it in the project list (or drag it into the editor) to reopen it.


Close all open files

Normally, files are closed by clicking the "close" gadget on the tab that represents the file. If you wanted to close all the files, this could be very time consuming, so this item will do it for you. After closing all open files, the editor window will also be closed, as there is noting to display.


Save file

This will save the current file back to disk. This function is also mirrored in the Editor buttons.


Save file as...

The current file will be saved to disk with the name supplied. Optionally the path can be changed if the file is required in a different location. This function does not affect the project as the new file will mirror the current not rename it.


Save all files...

If the setting to automatically save files has been disabled, then there is a good chance that there may be quite a few unsaved files within the project. Selecting this item will save any files that have been modified and not yet stored on disk. This saves having to save each one manually.


Duplicate file...

This item allows you to create a duplicate of the current file with an alternate name or path. Unlike Rename, this does not reassign the file within the project to the new name/path. You may wish to use a file in a different project, for example, so by selecting this item, you can specify the path and/or name in the file requester and have the file copied with these new details.


Reload last saved

This function will reload the current file from disk losing any changes that may have been made.


Restore file from backup

If you have the Create Backup setting enabled, selecting this menu item will restore the current text to the last backed up version. This differs in usage from the Reload last saved menu, in that selecting this item will restore to the version saved prior to the currently saved file.


Insert text from file...

Sometimes it might be useful to be able to insert the text from one file into another. Selecting this item will present a file requester, and a file may be chosen. All the text in this file will then be inserted into the current in the editor at the cursor position. No checks are performed for the integrity of the chosen file or its contents, but only ASCII characters will be inserted.


Touch File

"Touching" a file means to set the date and time of the file on the disk to the current timestamp. This can be useful for automated build systems that use the timestamp of the file to check if the source needs to be built.


File Attributes File attributes...

This will display the attributes of the current file. From here you can adjust the protection bits as required. You may also invoke this window from both the Project popup and the Editor popup menus.


Hide foldable sections for this file

This item mirrors the button in the Editor window, and controls whether to show sections of code that can be folded or not.



Printer Popup Menu This option works in two different ways:

The first way is to simply select this item, and the entire contents of the current file will be output to the printer.

The second way is to select a block of text, and you will then be presented with an option to only print the selected block, or the entire text. This allows you to print segments of text, rather than the entire file.

The printer device can be configured in the Preferences editor.


Check Spelling

This allows you to check the spelling of words within a document. This feature is covered in more detail in the Spell Checking section.



Remove the marked block of text and place it in the clipboard. This function is mirrored in the Editor buttons and the Editor popup menu.



Duplicate the marked block of text in the clipboard. This function is mirrored in the Editor buttons and the Editor popup menu.



Copy the contents of the clipboard at the current cursor position. This function is mirrored in the Editor buttons and the Editor popup menu.


Select all

This item will select all text in the current file, which may then be copied or even cut.



Revert the last change made to the text.



If a change was reverted, it may be possible to carry out the change again.


Jump to matching

If the cursor is positioned at a character that marks a "scope" like brackets and braces, selecting this menu will cause the cursor to jump to its counterpart. This makes it very easy to follow where blocks of code begin and end. This option is also available from the Editor popup menu.


Indent marked

All lines in the currently marked text block will be shifted a tab size amount of characters to the right.


Outdent marked

All lines in the currently marked block will be shifted a tab size amount of characters to the left, if possible.


Marked to upper case

After marking a block of text, selecting this item will convert the selected text to upper case letters.


Marked to lower case

After marking a block of text, selecting this item will convert the selected text to lower case letters.



Open the Search window and find a specified string of characters in the current file. This function is mirrored in the Editor buttons and the Editor popup menu.


Previous occurrence

If a search has been performed which resulted in more than one hit in the current file, this item will place the cursor on the line of the previous occurrence of the searched string.


Next occurrence

If a search has been performed which resulted in more than one hit in the current file, this item will place the cursor on the line of the next occurrence of the searched string.


Goto line...

Specify a line that the cursor should be moved to in the current file. This function is mirrored in the Editor buttons.


Goto function...

The currently marked block is treated as a function name. The entire project is searched for this function, and if found, will cause the file containing it to become current. The cursor will be moved to the first line of that function. This is also possible by holding down either "Shift" key while double-clicking to highlight the block that represents a local function.


back to the top




Windows Menu

Windows Menu The numbered items in this menu corresponds to one of the component windows. If the window has been hidden or iconified, it will be opened. If the window is open, selecting the relevant menu item will bring that window to the front of the display.


Close Active

Offers an easy way to close whichever window is currently active.

back to the top




Preferences menu


Preferences Menu Edit...

Invoke the preferences editor and adjust various parameters of CodeBench


Snapshot windows

Save the window positions to disk so that their positions are made permanent

back to the top

Valid XHTML 1.0 Transitional This is a W3C checked and compliant webpage.