Project window basics

The project window is one of the main windows you will be working with when using the development environment. The text editor being the other major window, unless you use an external text editor.

The project window displays all of the modules that make up your project. Most of these modules, in fact nearly all, will be source files. Other important module types are imported projects and resource files.

Once a new project is created you then add modules to the project. For this topic we will assume a project is already created and has modules.

How modules are displayed

The normal method of displaying modules is in sorted alphabetic order. Modules can be displayed in compilation dependency order, but this is mostly a technical debugging tool, or for the curious. You have no control over how the environment sorts the compilation order. Various view filter options exist to help navigating very large projects for modules with certain attributes. Check the View menu for more information.

Modules are displayed by name and by module type. The modules are displayed in columns. Click on areas of the sample environment screen to learn about what they mean and the information they provide.

Note: This example screen is the project for the development environment itself.

Selecting a module

One of the modules in the project window is always selected. You can change the selected module in many ways.

The simplest method is to simply begin entering the name of the module you wish to select. While you are entering the name of the module the environment is searching the modules for a match to what you are entering. After each keystroke the selected module in the project is changed. Most of the time you will not have to enter the full name of a module for the selection search to match the module you are looking for. It all depends on how your modules are named. If you mistype or no match for the module you are entering exists the environment will beep signifying an error. The environment will clear the keystrokes you entered previously in the search and you can start again selecting the module you are looking for.  Also if you do not enter a keystroke for about a second the match string will be cleared.

You can also use the keyboard arrow cursor keys to move the selection in the direction of the cursor key. The Home, End, Page Up and Page Down keys can also be used. Pressing the spacebar key will advance the selection to the next module in the list. This usage of the space bar is very handy to access the sibling module of a Modula-2 Module or Ada95 Package since both files have the same name the search will match the first module. The first module for Modula-2 is the IMPLEMENTATION module, and the first module for Ada95 is the Package body. This is because they are the files you edit the most often.

Selecting a module with the mouse is done in the usual manner, by pointing at the module and clicking with the left mouse button. The project window has a scroll bar to help with navigating very large projects with the mouse.

Context sensitive menu

The project window has a context sensitive menu. To access this with the mouse use the right mouse button, and/or if you have a newer keyboard you can press the context menu key. The context menu duplicates many of the menu items from the main menus of the project window. Notably menu commands from the Build menu and the Options menu. For mouse users this reduces the amount of mouse movement to select a module, and then issue a menu command for that specific module.

Editing your files

To edit a file you simply select module in the project window and press the Enter key or double click with the mouse. The file is opened in the editor. Say goodbye to using a "File Open" dialog to edit your source files.

Compiling, Running and Debugging

The environment handles all aspects of making executable programs. The Build menu contains all items relating to compiling your source code. You can compile a single file, or build an entire program with a single command. To compile a single file first select the module in the project window and the compile the file with the compile selected command.

Note: You can do most all build operations from the editor built into the environment. See Text editor basics.

To run, debug or link your program, select the main program module and issue the run, debug or link command. If you have only one main program module you need not select the main program module to issue the run, debug or link command. If you have multiple programs in a project you can set a specific program to be your default program, since you are generally working on only one program at a time. Setting a default program makes it easy to work on your programs since you never have to "select" the program to Link/Run/Debug when working in some other module that is a part of the program. Again, the default program only has meaning when you have more than one program in a project. You set a default program via the Build menu.

Setting compiler options

The development environment supports setting compiler options on both a global and local basis. Global compiler options apply to all modules in a project. Local compiler options only apply to a specific module. To set local compiler options simply select the module and choose the local compiler options menu item. Modules that have local compiler options that override the global options are marked with a flag in the modules display list.

Using version tags

Version tags allow you to perform conditional compilation. The compiler predefines various version tags based on the target operating system, processor and compiler options. The version tags dialog lists the current predefined version tags.

When you change your version tag options the environment will scan all of the source files in the project looking for files that depend on any changed version tag(s). It will mark those files with such dependencies using a changed version tag as needing compilation. A changed version tag is either a newly defined tag or a tag that was deleted.

Selecting view filters

Normally you will not use the options on the View Menu. The view options operate as filters to limit what modules are displayed in the project window.

The most commonly used view option would be the Show all modules option. Normally only modules local to the current project are displayed. Show all modules will display all modules including modules imported from other projects in the project window.

Creating module dependency reports

The environment can create two different dependency reports. One for the entire import dependency tree of a specific module and another for the direct dependencies of each module in a project.

Dependencies are either import or client dependencies. Client dependencies show the modules that import a given module.

Use the Tools menu to generate reports.

Multiple file search

The environment supports searching the modules currently displayed in the project window for a given text string. The View menu options affect what modules are displayed in the project window. You also have the option to replace the found text with another text string. Use the Tools menu for multiple file searches.

If one or more modules contain the searched for string then a dialog is presented listing the various modules that matched. The first dialog displayed after the search will close automatically when you select a module for editing. This is also true if you open the match list dialog via the project window. However, if you open the match list via the editor, the match list dialog is modeless and will remain open for you to easily select successive files for editing. The reason the initial dialog closes is to streamline those situations where you search for something and are looking for one instance of a match. In this way you do not have to use an extra mouse click to close the dialog. If you want to traverse all matches then you can open the match list in the editor after examining the first match and the dialog will remain open for simpler opening of successive matches.

Viewing module dependencies

The environment can show you a list of modules which the selected module imports, or all modules that import the selected module.

Use the Tools menu for viewing dependencies.

Creating a build script file

The environment can generate a script file that will re-create your project from scratch. The guarantees that your project is built properly with the correct options. The script file can be used in backup situations to recreate your projects. This automatically generated script file will be very verbose since all options are included.

Use the Tools menu to create a script file.

Window navigation.

Using the Alt+0 hot key you can always bring the project window to the foreground.

Alt+1 through Alt+9 can be used to bring an editor window to the foreground. The windows are numbered from left to right by their order in the list of selection tabs. These hot keys can also be assigned to open a specific module.

Menus

Keyboard shortcuts

The menu always displays the keyboard shortcuts for any menu item which has a shortcut. Therefore when in doubt you can check the menu for any available keyboard shortcut.

Key Function
Alt+C Compile the selected module.
Alt+R Run the selected or default program
Alt+D Debug the selected or default program
Alt+L Link the selected or default program
Alt+K Link all programs
Alt+P Proceed with the previous build after correcting a compilation error.
Alt+0 Brings the project window to the foreground.
Alt+1..9 User defined editor hot keys. These open a specific module, or bring and editor window to the foreground.
Ctrl+Tab Bring the next tabbed window to the foreground.
Shift+Ctrl+Tab Bring the previous tabbed window to the foreground.
F2 Open the global compiler options dialog
Shift+F2 Open the local compiler options dialog for the selected module.
Enter Edit the selected module
Delete Remove the selected module
Insert Add an existing module file to the project
Shift+Insert Create a new module, and add to the project
Ctrl+Insert Import a project into the current project
F1 Help