TutorialEditor Overview




Prev | Up | Next | Back | Forward | Online Documentation Home Page

Editor Overview

This chapter presents an overview of Ada-ASSURED's editing features: For more details, refer to Chapter Using Ada-ASSURED.

Commands

Fundamental to the control of Ada-ASSURED is the notion of command. Essentially everything you do in the editor is a command. A command can be invoked:

Key Bindings

Many editor commands are invoked using the keyboard. Some commands require more than one key to be pressed. The notation used to describe which keys are to be pressed is shown by the following examples:

F3
Strike the function key labelled F3

Alt+A
Hold down the Alt key, then strike the letter a. On a Sun type 4 keyboard, you should use the Meta key (the one with the (diamond) symbol). On a DEC LK201 keyboard, Alt corresponds to holding down the Shift key and pressing the Compose character key. See also the note below about Hewlett Packard keyboards.

^A
Hold down the Control key, then strike the letter a. (Unix notation.)

Control+A
Hold down the Control key, then strike the letter a. (Preferred notation.)

^Xb
Hold down the Control key and strike x; then having released both keys, strike b. (Unix notation.)

Control+X b
Hold down the Control key and strike x; then having released both keys, strike b. (Preferred notation.)

Key bindings may be customized. See Chapter Customizing an Editor Customization for details.

Hewlett Packard keyboards On some Hewlett Packard keyboards with no Meta or Alt key, the key labelled Extend Char can be used as Meta. By default, this key is also used with other keys to generate non-ASCII characters such as the Scandinavian `Ø'. This default feature must be turned off in order for Ada-ASSURED to function as described. See the Installation Guide for instructions on how to do this.

Mouse Buttons

The names Select, Transfer, Adjust, and Menu refer to certain ``logical'' mouse buttons. The exact buttons to which these names refer can be customized, and depends on which windowing system is being used:

button name Motif OpenWindows Microsoft® Windows®
Select Btn1 Btn1 Left Button
Transfer Btn2 N.A. N.A.
Adjust Shift Btn1 Btn2 N.A.
Menu Btn3 Btn3 Right Button

Window Roadmap

Windows are divided into several panes, with associated controls. Figure gif-roadmap shows a typical Ada-ASSURED window as it appears under X Windows. A window's appearance under Microsoft® Windows® is very similar.

The panes and controls are as follows.

  1. title-bar, where the name of the current object being edited is displayed,

  2. menu-bar, which is used to access editor commands and transforms.

  3. tool-pane, which is reserved for future use.

  4. object-pane, which contains the object being edited.

  5. command-pane, where command and transform names can be typed.

  6. X context-pane, where buttons for context-sensitive buttons appear.

    By default, the context pane is suppressed. It can be created by command context-pane-on.

    MS N.A.

  7. status-pane, where status messages and syntactic context are displayed.

    X The two arrow buttons to the left are used to scroll through the list of status messages.
    MS N.A.

  8. X

    Grips, which can be used to adjust the relative sizes of some panes. To use one, press and hold down the mouse pointer on the grip, and then move it up or down as necessary.

    MS

    N.A.

  9. Scroll Bars, which can be used to move the contents of a given pane within it. The object pane has scroll bars along its right and bottom edges. The context pane has scroll bars only when necessary.

Keyboard Focus

Key strokes are directed to whatever pane has keyboard focus, which usually resides in the object pane. Keyboard focus can be changed:

The command pane is strategically located just below the object pane, which facilitates entering commands from the keyboard. In particular, the following sequence is commonplace:

Menus

Each window has a menu bar from which commands can be invoked.

Pointing the mouse on a menu title and pressing Select pulls down a list of menu items. Dragging the pointer down the list of menu items highlights successive items, and releasing the button invokes the highlighted command. Releasing the button when no item is highlighted (because the mouse is no longer pointing within the menu) does nothing.

Striking the F10 key shifts focus to the menu bar. Thereafter, striking Left or Right keys moves to neighboring pull-down menus, and striking Up or Down keys highlights different items within the current menu. Once the desired command is highlighted, striking Enter invokes it. Hitting Esc returns focus to the previous location (e.g. the object pane) without invoking a command.

Commands not currently valid are dimmed in the menu and cannot be selected.

Structural Editing

Structural Motion

Structural-motion commands offer an accurate and efficient way to navigate with respect to the structure of code. A full complement of structural-motion commands is available in the Structure menu, where keybindings are also listed. Some structural-motion commands materialize placeholders at locations where optional syntactic elements are permitted. The Enter key is actually bound to such a command: forward-from-insertion-point.

In order to use the structural motion commands effectively, it is helpful to first understand how Ada-ASSURED represents Ada units as structure. A unit in Ada-ASSURED is a represented as a tree. Consider the following Ada statement:

Loop_One:
   while X loop
      null;
      <statement>
   end loop Loop_One;
This is represented internally by the tree shown in the figure below. The underlined item is the structural selection. This is the focus of editing operations. In this case, the structural selection is set at <statement>.

The structure of an Ada loop statement. The structural selection is resting at the <statement> placeholder.

Each node in the tree either has some children, or is a leaf. For example, the node labelled loop_statement has three children, and Loop_One is a leaf. Except for the root of the tree, which is all the way at the top, each node has a parent. For example, the parent of the node labelled expression is while. Continuing the family tree analogy, certain nodes have sibling relationships. For example, optional_name is a sibling of both optional_iteration_scheme and statement_list.

The structural selection, which is shown by the underlining on the screen, rests at some node in the tree. Commands are provided to move the structural selection. To move forward in the tree is to move from left-to-right, and to move backward is to move from right-to-left. These commands can move preorder, also known as subphrase; or sibling, also known as phrase. The basic difference between the two is that the subphrase move descends the tree into the children, whereas the phrase move does not.

For example, say the structural selection is positioned at optional_iteration_scheme. The command forward-subphrase would move to while, whereas forward-phrase would move to the statement_list.

Optionals. Certain nodes in the tree are optional. That is, they are optional parts of the syntax. For example, loops in Ada need not have names, so the node labelled optional_name is an optional.

Optionals have the special property that they automatically materialize and disappear when necessary as the structural selection moves. They disappear only if their components have not been filled in. So although the optional_name in the tree shown above is an optional, because we have filled in the name, it will not disappear when the selection moves away.

Some motion commands automatically materialize optionals. For example, the command forward-phrase-with-optionals behaves exactly like forward-phrase, except that if there are any optionals available for expansion, then they will be materialized. For example, if the optional_iteration_scheme were not present, and if the structural selection were positioned at optional_name, then invoking the command forward-phrase-with-optionals would materialize the optional_iteration_scheme and position the structural selection there.

Lists. Certain nodes in the tree are list elements. For example, statements are obviously elements of statement_list. Lists have the special property that optionals exist before and after every element in the list. For example, the <statement> placeholder is an optional. When the structural selection is moved away, it will disappear because it has not been filled in. All list elements of the same list are siblings of one another.

These properties can be used to good effect when editing programs. Suppose you wish to insert a new statement immediately after or before some large structured statement. The commands forward-phrase-with-optionals and backward-phrase-with-optionals can be used to move there immediately without having to search visually for the correct position. To do this, you first select the large statement, and then invoke one of these commands to materialize a statement placeholder after or before.

Placeholders

A placeholder describes the syntactic category permitted or required at a given position. Placeholders are displayed in italics, and are enclosed in angle brackets.

At a place where some particular syntactic construct is required, the placeholder does not go away unless filled in. Such a placeholder serves both as a reminder that the program is incomplete, and as a prompt describing what sort of construct is missing. In contexts where a list of some syntactic construct is permitted, e.g., statement_list, the placeholder typically prompts with a syntactic description of the list item, e.g., <statement>.

Several different mechanisms cause placeholders for optional syntactic constructs to be materialized:

A placeholder identifying an optional syntactic construct goes away automatically whenever the structural selection is first positioned there and then moved away, e.g., by clicking Select elsewhere, or by striking Enter.

Templates

Templates are syntactically correct skeletons containing boilerplate for an Ada construct and placeholders indicating locations for required or optional components. Templates are especially convenient for inserting wordy or syntactically complex structures. In addition, if the style guideline calls for some presentation standard, it is provided automatically.

Template insertions always occur at the location of the structural selection. After the template is inserted, the structural selection moves to the first placeholder within the template. Whenever the structural selection is moved,

X the Transform menu and the context pane are
MS the Transform menu is

updated accordingly to reflect the currently enabled collection of templates for the new location of the structural selection.

A template can be inserted in several different ways:

Placeholders can be replaced in arbitrary order—just change the structural selection to whichever placeholder you wish to fill in.

A popular code-entry paradigm interleaves template insertion with typing. Templates are typically used only to enter large, wordy constructs, e.g. skeletons for procedures, packages, tasks, etc. However, if you want, you can enter nearly complete programs in this top-down fashion—all the way down to the individual arithmetic operations. Reliance on template insertion will depend on individual taste.

The term template is also used to describe Ada declarations that can later be used to create other items. For example, a generic declaration can be used to create a generic instantiation. Similarly, a procedure specification can be used to create a template for a call to that procedure, or even to transform an existing call to the procedure that used positional notation into one that uses the named association notation.

Transforms

Template insertion commands are a very simple form of source-to-source transformations; i.e., they are transformations in which a placeholder is changed into a template. Ada-ASSURED supports more general source-to-source transformations than just template insertions. For example, there are transforms to swap the order of operands in expressions, to re-order parameter lists, to convert parameter lists in positional form into the named form, to insert and delete whitespace, and so on.

In general, the set of enabled transforms depends on the location of the structural selection. Choices for each enabled transform appear in

X the Transform menu and context pane.
MS the Transform menu.

Transform invocation is exactly the same as template invocation.

Cut-and-paste

Both textual and structural cut-and-paste are supported. Structural cut-and-paste is similar to textual cut-and-paste, but with structural fragments of the object. A structural cut clips the structural selection into a special clipboard buffer named *clipped*, and replaces the structural selection with the appropriate placeholder.

A structural paste is valid only when the structural selection is a placeholder of the same syntactic category as the contents of the clipboard. For example, an expression can never be pasted on top of an existing expression, or into a position where a statement is expected. Thus structural cut-and-paste operations guarantee that the object being edited remains well formed.

Structural Searching

Structural searching, which is accomplished by the command

X structural-search Alt+S Edit/Structural Search...
MS structural-find Control+Shift+F Edit/Structural Find...

is a powerful method of navigating through code since it enables you to search for a string as a particular syntactic category. Whereas textual search for ``i'' will find every occurrence of the letter ``i'' (including those in keywords and embedded within other names), structural search makes it possible to search just for the name ``i''.

A structural search always starts from the current position of the structural selection, and it may be in the forward or the reverse direction from that position. If the search string in the dialog box is left empty, then it is treated as a wild-card that matches every string of the given syntactic category.

Textual Editing

Ada-ASSURED provides a textual interface to the underlying structure of an object being edited. As such, it provides an interface much like conventional text editors augmented with additional language-sensitive functionality. Although language-sensitive cues and commands offer considerable added power, a structural editing style is not strictly imposed by Ada-ASSURED. The object-pane is, in fact, an upwards-compatible extension of an X Windows text widget, so that full text-editing functionality is available.

Moving the Insertion-Cursor

One way to set the insertion cursor is to point at a character with the mouse and click with Select. The insertion cursor is always positioned between two characters—if the mouse was pointing on the left (right) half of a character, the insertion cursor is positioned to the left (right) of the character.

The structural selection ``tracks'' the cursor. That is, when the insertion cursor is moved to a new position, the structural selection changes to the smallest syntactically well-formed phrase enclosing the insertion cursor. For example, clicking within a placeholder selects the placeholder, and clicking within a keyword selects the construct associated with the keyword.

If the insertion cursor is moved to a position at which the ``smallest syntactically well-formed phrase'' is ambiguous, a somewhat larger phrase may be selected. For example, clicking immediately to the right of a semicolon after an assignment statement selects the assignment statement, but clicking to the right of the space that follows the semicolon selects both that statement and the following statement.

Another way to move the insertion-cursor is by using the standard cursor-motion keys. As with movements of the insertion cursor, the structural selection tracks the insertion cursor as it moves. Note that cursor-motion keys repeat if held down, but the structural selection is not updated until a short time after the key is released.

There are numerous other ways of moving the insertion-cursor. For example forward-word and backward-word move the cursor to word boundaries.

Setting the Textual Selection

Note: users of Microsoft® Windows® will find dragging to be completely standard, and multi-clicking nearly so; however, it enlarges the selection based on syntactic structure, rather than lines. Extending is not supported on Microsoft® Windows®, and can be ignored. Grabbing is a new topic.

Sequences of consecutive characters within an object can be selected by dragging, multi-clicking, extending, and grabbing. In each case, a sequence of characters is highlighted on the screen and the sequence is copied into

X both the X server's primary selection and the X server's CUT_BUFFER_0. From the primary selection or CUT_BUFFER_0,
MS the cut buffer. From the cut buffer,

the sequence of characters can be pasted into other applications. The sequence of characters selected is arbitrary and need not be a syntactically well-formed phrase.

Dragging

Dragging selects a range of characters from the position of the mouse when the button is pressed to its position when the button is released. The textual selection (the highlighted substring) encloses the characters from where dragging was initiated to the current position of the mouse pointer. The structural selection (the underlined substring) indicates the smallest structurally well-formed region of the program that includes the textual selection.

The structural selection is always a well-formed phrase of the object, or a list of well-formed phrases. For example, when the result of dragging includes any of the ``top-level'' keywords or punctuation of a statement, the structural selection will include the entire statement; when the result of dragging includes several statements the structural selection will include the contiguous list of statements that include the start and finish points.

Multi-clicking

Clicking Select several times in rapid succession is called multi-clicking. Each successive click selects a larger region of text. Multi-clicking is purely textual until a boundary of the smallest syntactic phrase enclosing the position of the mouse is reached. That is, on successive clicks first a character, then a token or word, then a line, then a paragraph is selected. However, after reaching the boundary of a structural phrase, the region selected by subsequent clicks of the Select button becomes syntactic: each successive click selects the next larger well-formed phrase.

If multi-clicking ends with the button down rather than up, it can be followed by dragging, with the granularity of selection growth during dragging determined by the syntactic category at which multi-clicking stopped. For example, multi-clicking to select a token followed by dragging drags out a sequence of tokens; multi-clicking to select a statement followed by dragging drags out whole statements.

Extending

X A selection may be created without dragging out each character by using selection-extend commands. These enable you to specify a start point (using Select) and an end point (using Adjust) directly.
MS N.A.

Grabbing

Grabbing is the action of setting a textual selection without moving either the structural selection or the insertion cursor. This is useful for copying and pasting pieces of text from different parts of the buffer without losing the current textual editing context or invoking the parser.

Grabbing is initiated by holding down the Alt key, the Shift key, and then pressing the Select mouse button. As with dragging, the textual selection is chosen by moving the mouse while holding the button down, then releasing the button.

Scrolling

Scrollbars are used to scroll the visible part of an object within a window. The slider indicates the size and position of the visible part within the text. Pressing on the slider and moving it scrolls the text, as does pressing on one of the graphical arrows. Clicking to either side of the slider turns pages.

Textual Searching

Textual searching, which is accomplished by the command

X search Control+S Edit/Search...
MS find Control+F Edit/Find...

is a useful method for navigating through the object. The search, which always starts from the current position of the insertion cursor, may be in the forward or backward direction. The command brings up a dialog box to enable you to enter the search and replace text.

In general, striking Enter in a dialog box invokes an action (e.g., searching) and then removes the dialog box. Clicking on the Search [X] or Find [MS] button—rather than striking Enter—also invokes the search but leaves the dialog box on the screen.

Clicking on the Cancel button or striking Esc will remove the dialog box from the screen without invoking any action.

Text Entry

Text can be typed at any time. Whenever you type text, just type the characters and ignore formatting. After syntactic analysis, if there is no syntax error, what you have typed will be prettyprinted. For example, depending on the settings of style resources and enforcement parameters, keywords may appear in boldface and identifiers in mixed case, i.e., with the first letter in each underscore-separated syllable capitalized, as in the identifier Output_Module.

If the structural selection is at a placeholder and you start typing, then the placeholder immediately disappears as soon as you type the first character. What you type is expected to be a complete fragment whose syntactic category was specified by the original placeholder.

Typically, the parser is invoked by striking Enter, after which the selection is advanced to another placeholder, possibly one that materializes appropriately. For example, if you are positioned at a placeholder for statements and you type an assignment statement and hit Enter, then, if the newly inserted statement is syntactically correct, a new placeholder immediately materializes where the next statement can be inserted.

If what you have typed contains a syntax error, then the error is immediately detected (if auto-parsing mode is enabled), an error message is displayed in the status-pane, and instead of advancing to the next placeholder, the insertion cursor is positioned near the syntax error. You are then free to correct the error and strike Enter again.

Syntax errors need not be corrected immediately. In particular, after a syntax error has been detected, if you just ignore it and reposition the structural selection without modifying the fragment, the erroneous phrase remains as you typed it (i.e., it is not prettyprinted). It is, however, displayed in a distinctive font or color. You can return to the text at any time to correct syntax errors.

The fact that striking Enter advances the selection to the place where the next fragment can be inserted is an important and distinctive aspect of Ada-ASSURED that you must understand. In fact, positioning the structural selection at the beginning of the program and repeatedly striking Enter will materialize placeholders at every place where insertions can be made.

Suppose you are typing and reach the right edge of the window, but are not through entering the whole fragment. What should you do? One possibility is to type LineFeed, i.e., Control-J, which inserts a new line but does not invoke the parser. Alternatively, you can just keep typing: if the AutoFill resource is set to false, the window will scroll horizontally; if AutoFill is set to true, a LineFeed will be inserted automatically at a nearby whitespace character.

When the structural selection is positioned where one or more instances of some syntactic category is required, e.g., a list of statements, you can either type them one at a time (followed by Enter), or can type any number of them and then strike Enter.

The prettyprinting format will follow the user-customizable style guideline, regardless of how the constructs were entered. For example, numbers are prettyprinted in a canonical format, e.g., with underscores separating groups of three digits. If you edit a number, e.g., delete the low-order digit, you do not need to adjust the underscores, as this will be done automatically. Expressions are prettyprinted in a canonical format, e.g., with redundant parentheses eliminated.

Textual Re-editing

Any text can be textually re-edited. Just position the insertion cursor at the appropriate location and either type or delete characters. A distinctive font or color is used to indicate the extent of the text whose syntactic correctness is in doubt and must be reparsed. Such a text fragment is known as a text buffer.

Textual modifications create text buffers implicitly; such text buffers are created to be as small as possible. In contrast, the command text-capture

X text-capture Alt+T Text/Text Capture
MS text-capture Control+T Text/Text Capture

can be used explicitly to turn the structural selection into a text buffer. Successive invocations of text-capture widen the text buffer and the structural selection to successively larger phrases.

Within a text buffer, code has no structure and there the editor is completely indistinguishable from a normal text editor. The size of typical text buffers depends on individual taste: some are happy to let text buffers be as small as possible; others prefer to turn whole regions, e.g., statements or procedures, into text buffers so that they can be freely manipulated as text.

The built-in parser is invoked whenever the structural selection is directed away from a recently modified text buffer. In particular, the parser will be invoked as a side effect of striking Enter or clicking Select with the mouse positioned somewhere outside the current structural selection. Alternatively, the parser can be invoked explicitly by the command parse-selection

X parse-selection Alt+P Text/Parse Selection
MS parse-selection F9 Text/Parse Selection

When the parser is invoked on a text buffer, the text is required to be well-formed with respect to the syntactic category of the structural selection (e.g., expression, statement, etc.). When the text buffer is syntactically analyzed, the text that surrounds it is ignored.

Parsing mode

In general, automatic parsing of text is controlled by the auto-parsing mode. Command parsing-off disables automatic parsing. When auto-parsing mode is off, arbitrary text (e.g., syntactically incorrect text) can be entered and no warning will be issued by Ada-ASSURED. Within these unparsed regions, text is not prettyprinted, and no style enforcement is done. The parser can be manually invoked on such text at any time by setting the structural selection there and invoking parse-selection (Alt+P [X] or F9 [MS]). Command parsing-on turns automatic parsing back on.

You may find it convenient to turn automatic parsing off when writing high-level pseudo-code or PDL. You can continue to use template insertion commands, which insert fully analyzed templates, but natural-language pseudo-code will be accepted without complaint. Alternatively, just leave automatic parsing mode on, but strike Enter immediately after receiving the syntax error for any natural-language pseudo-code entered.

Buffers and Windows

Ada-ASSURED is a multi-buffer, multi-window editor. Files are read into buffers, which are displayed in windows. You can, of course, create as many windows and buffers as you wish, and one way to do this is to invoke the command new.

X The command switch-to-buffer (bound to Control+X b, also found in the View menu) is used to move between buffers. This command will pop up a dialog box that presents a selection of buffer names. Those buffers whose names begin with * are predefined.
MS The Window menu contains the names of all the open windows. Select the window's name to bring it to the front. Use show-buffer to see all buffers, whether they have open windows or not.

Buffers have the following information associated with them:

X A complete list of the current set of buffers in the editor can be displayed using the command list-buffers.
MS The complete list of windows in the editor can be displayed by opening the Window menu. The complete list of buffers in the editor can be displayed with the show-buffer command.

Some commands, such as

X new and switch-to-buffer,
MS new

offer the option of creating a new window. An alternative way of creating a new window is by invoking the command

X

split-current-window

Control+X 2

X/Menu

MS

duplicate-window

Shift+F3

Window/Duplicate Window

This creates a new window and displays the same buffer in it.

Windows may be deleted singly or in groups. To delete just the current window, use the following.

X delete-window Control+X d View/Windows/Delete This Window
MS close-window Control+D Window/Close This Window

To delete every window but the current one, use the following.

X delete-other-windows Control+X 1 View/Windows/Delete Other Windows
MS close-other-windows Control+F3 Window/Close Other Windows

Files

This section describes the reading and writing of files.

Reading

Any syntactically correct Ada program can be read into Ada-ASSURED, parsed, analyzed and prettyprinted. A file can be read into the editor by giving its name on the command line:
aa file1.a file2.a
Alternatively, a file can be read in by issuing the Open command (in the File menu).

Syntax errors

If the user attempts to read in a file that is not syntactically correct, the file is read in anyway and the insertion cursor is positioned at the point at which the error was detected. To correct the error, the user can edit the text as appropriate, and then invoke the parser using the command parse-selection (Alt+P [X] or F9 [MS]).

Other files

The file does not have to be an Ada program. The editor can read in text files as well. Because Ada-ASSURED cannot tell how to interpret the contents of a file just by looking at its name, if you try to read in a text file in the normal way, it will attempt to parse it as an Ada program. To avoid this behavior, you must tell Ada-ASSURED how to interpret the contents of the file by specifying the syntactic category of the file prior to reading it. As can be seen in the dialog box for the open command, the category is normally compilation, which indicates that the file is to be parsed as an Ada compilation unit. The choice TEXT corresponds to a file that is an arbitrary text file.

Reading existing files

Ada-ASSURED can read files that have been written by other editors, or otherwise generated. If the original file uses tab characters within comments, then these should be converted to spaces in order to preserve the layout. Otherwise the tabs will be treated as spaces and the original layout may be disturbed.

X The Unix utility expand may be used to do this automatically. The shell script conv which may be found in the Ada-ASSURED/bin directory will expand tabs in files given as arguments. To use, enter the command conv filelist, where filelist is a space separated list of files. The tabs are expanded in each file in filelist, and the original files are preserved with a .bak suffix.
MS N.A.

Writing Files

Files are written using either the save or save-as commands. They can be written either in ASCII or in an internal format.

When a buffer is displayed in a window, it is formatted to fit the screen, but when it is written to a file, it is formatted to a fixed width. This width defaults to eighty characters, but may be changed by setting the value of the editor parameter Absolute Right Margin. This can be changed using the command set-parameters, which can be found in the Options menu.

As described in Section Elision, elision is a useful method for viewing files. To elide is to display certain substructures as an ellipsis: ``...''. Normally only the display is affected: if you save the file while displaying the ellipsis, then the full Ada text is written to the file. However, if you want the ellipses to appear literally in the file, say for a presentation, use set-parameters to turn Respect Elision on. But be careful—with Respect Elision on, you are in danger of permanently losing large sections of text.

Backup and Autosave files

When you read in a file, make some changes, and write it out again, a copy of the original file is saved in a backup file. This has the same name as the original, except that the backup file has a tilde character `~' appended.

As you are editing a file, after you have modified the file, it is auto-saved at periodic intervals. This protects you from losing all your work in the event of a system crash or other disaster. Autosave files usually have the same name as the original file, except that a hash `#' character is added both before and after.

Views

Ada-ASSURED can display a file in two different views: BASEVIEW and MESSAGES. The BASEVIEW displays the Ada code, and optionally displays inline diagnostic messages. The MESSAGES view displays just the diagnostic messages.

Using two windows, the two views can be coupled so that editing modifications and navigation actions performed in one window are reflected in the other. For example, if an error message or bookmark comment is selected in a MESSAGES window, a BASEVIEW window will scroll to the corresponding location in the Ada code. This coupling provides a powerful aid for navigating through programs.

The command change-view in the View menu can be used to select the other view of an object.

Elision

Ada-ASSURED contains a simple yet powerful facility for program understanding. Parts of a program can be elided; that is, printed as ``...''. This elision enables a user to optionally hide details and focus on the high-level aspects of a program. The command elision-toggle carries out this operation.

X elision-toggle Alt+E View/Elision/Elision Toggle
MS elision-toggle Control+Shift+E View/Elision/Elision Toggle

Elision is supported for a number of predefined syntactic constructs. For example, the body of a procedure can be elided.


Forward