Source Editor

Toolbar

The Edit toolbar is a row of buttons with icons representing the most frequently used Edit functions.

Edit toolbar

Edit toolbar

Edit buttons on General toolbar

General toolbar, Editor section

Shortcut Menu

Right-clicking a symbol within an Editor activates the following context sensitive shortcut menu:

Editor Window Right-clicking a Symbol Shortcut Menu

Right-clicking outside a symbol name activates a menu with a list of functions implemented in the edited source module. Selecting any item on the list positions the text insertion point at the beginning of that function in the source. For example:

Editor window Right-clicking outside a symbol Shortcut Menu

Right-clicking on left border activates a menu with a list of bookmarks:

Keyboard Mapping

Keyboard mapping is actually saved in binary data files with the .KYB extension, produced by the Editor Macro Compiler which compiles .EML keyboard definition files.

Editor Macro Language (EML) is a C-like language. It provides an extensive set of editor primitives, which are called with familiar C-like syntax:

CaretLineEnd(); // call of editor primitive with
// no arguments
InsChar( '*' ); // primitive with char
// or integer argument
InsLine( "Test" ); // primitive with string
// argument

Most Editor primitives expect no arguments. Others require a numeric constant, character constant or string, all using standard C syntax. Numeric constants can be also represented by C-like character constants: "\t", "\001", "\xaf".

The syntax of user-defined EML function (UDEF) definition is the same as C function definition, except that the user-defined EML function cannot take any argument or return a value:

mDeleteToEOL()
{
   if ( !IsCaretPastEOL() )
   {
    SetTempPos();
    CaretLineEnd();
    SetTempEndPos();
    DeleteTempBlock();
   }
}

The user-defined EML function can be called only after its definition.

The syntax of if and if-else constructs is also C-like:

if ( condition )
{
   mDeleteToEOL();
}
if ( condition )
{
   mDeleteToEOL();
}
else
{
   mDeleteToBOL();
}

A condition can be a complex logical expression with parentheses, "&&" (and), "||" (or) and "!" (not) operators.

if ( !IsCaretPastEOL() || IsBlockMarked() )
{
   mDeleteToEOL();
}

The key sequence to which macro primitive or macro is assigned is a combination of one or two keys with optional modifiers. The modifiers are Ctrl, Shift, Alt and AltGr. Each key, along with its modifiers, is bracketed in angle brackets ( < > ). Editor primitives and user-defined functions can be assigned to key sequences. If you want to display key assignments with a certain menu item, you can also specify the menu item in which the assignment is to be displayed.

< optional_modifiers key_name >
call_of_primitive_or_UDEF
optional_menu_item_name
< optional_modifiers key_name >
< optional_modifiers key_name >
call_of_primitive_or_UDEF
optional_menu_item_name

Any key combination can be assigned to one of the following DAC menu items:

File::Save
File::Save As
Edit::Align
Edit::Append
Edit::Copy
Edit::Cut
Edit::Delete
Edit::Hide
Edit::Paste
File::Print
Edit::Undo
Edit::Unhide
Search::Find
Search::Goto Line
Search::Next
Search::Newer Source Pos
Search::Previous
Search::Replace
Search::Older Source Pos

For example:

<Ctrl g><l> GotoLine() "Search::Goto Line"

EML allows C and C++ types of comment.

Keyboard Mapping Macros

Appendix A - Keyboard Configuration - Keyboard Mapping Macros


Copyright 1993-2017, RistanCASE GmbH