PowerAda Project Navigation

From OC Systems Wiki!
Jump to: navigation, search


The developer will usually manipulate PowerAda projects using the PowerAda Navigator. The primary function of the PowerAda Navigator is to provide interactive navigation through the project contents. The PowerAda Navigator is fashioned after current World-Wide-Web browsers and primarily supports the notion of visiting locations within the project. These locations may be directories, files, sublibraries, compiled units, and executables within the project. The PowerAda Navigator will keep track of visited locations and allow the user to quickly return to previously visited locations.

The primary purpose of visiting a location is to view the contents of that location. The PowerAda Navigator will display the contents of the current location in an appropriate manner: for directories a list of files will be displayed, for sublibraries a list of pending and compiled units will be displayed, for compiled units the source code will be displayed, for executables the list of contained units will be displayed, and so on.

In the cases of directories and sublibraries, the PowerAda Navigator will automatically display files and units from both the working project and the imported baseline. The files and units from the working project are visually distinguished from the baseline project and will hide the corresponding version of the file or unit in the baseline project.

In the case of compiled units, the PowerAda Navigator will support source browsing. The user can make a number of inquiries about the static semantics of the compiled source. The primary query is "definition of" which displays the logical definition of the selected semantic element. For example, for variables the definition is the variable declaration; for unit specifications the definition is the unit body; for unit bodies the definition is the unit specification; for subprogram calls the definition is the called subprogram's body; and so on.

The PowerAda Navigator provides a number of additional operations that can be performed on selected items. These operations include:

  • Edit (for source and text files): This edit operation invokes a selectable editor with the selected file. The editor may be either vi, an Ada-customized XEmacs, or any other text editor. If the edit operation is selected for a file in the baseline, the PowerAda Navigator allows the user to edit a local copy of the file which is either copied from the baseline, extracted from CM, or checked out from CM.
  • Build (for an Ada source file, compilation unit, sublibrary, or Ada binary): The build operations include load, compile, and update. The load operation is used to load source into a sublibrary to identify the compilation units and their interdependencies. The compile operation is used to generate code for a compilation unit. The update operation is used to build/rebuild sublibraries and executables. If the selected item is an executable, all units in the executable will be recompiled (if necessary) and the executable will be relinked. If the selected item is a sublibrary, all units in the sublibrary will be recompiled (if necessary). The update operations can be performed on all the sublibraries in the entire working project.
  • Configuration Management (for files): CM operations such as Check-in, Check-out, Extract, and Diff are supported on selected files. The CM functions are designed to be customized for use with different third-party CM systems; a number of such customizations are provided with PowerAda, one of which may be selected at installation time.
  • File Management: The file management operations include Create, Copy, Rename, Delete, and Import. These operations can only operate on files in the working project and cannot change the files in the imported baseline project (if any).
  • Ada Program: The Ada program operations work with Ada executables. Ada programs can be run, debugged, or instrumented.

These operations make the PowerAda Navigator the core of a powerful integrated development environment.