******************************************* A quick overview of the editing environment ******************************************* The HeliOS editors offer a performance comparable with, and in some aspects superior to, expensive dedicated standalone text editors. A high performance 7-speed smooth scrolling system has been incorporated, and this has menu options to customise speed and stop/start "damping" to give a smooth operation on any Amiga. Extended line length (up to 240 characters) is allowed, along with forward and reverse TAB operation. TAB and margin ("ruler") information can be edited and saved along with the user-environment file. TAB and margin information can be saved with each text file as a file header if required. True TABs are implemented, along with automatic TAB->space conversion. Many sophisticated editing functions (such as "auto-indent RETURN" and quick columnar cut and paste in overwrite or insert mode) are available to make the task of source code editing as quick and efficient as possible. See the Key Index menu for a full list of editing functions bound to the command keys, and look through the "Options" menu to see the various editor configuration settings. The commonly used "double-click-and-drag-highlight" cut and paste has been implemented, and columnar cut and paste is available by simply holding down SHIFT or CTRL or R-MOUSE while double clicking to start text highlight. Highlighted blocks of source code text can be instantly compiled or debugged. Scrolling can be initiated (via a switchable option) using left or right mouse button dragging, and there is five speed variable scrolling under mouse-drag control. There are upper and lower 4-line screen scroll zones, with extra extent of mouse drag producing the fifth scroll speed. There is a proportional position gadget, along with slow scroll buttons for text browsing. The menu adjustable "scroll settle" settings allow the action of the proportional slider to be damped to permit readable browsing of even large files by dragging the proportional knob or hitting the proportional gadget container. The proportional gadget scrolling system has seven speeds and three modes of operation according to whether you are scrolling "locally", "mid-range" or "long-range" - it has what amounts to a kind of "automatic gearbox". Menu scroll speed settings allow the "browser" up/down arrow gadgets and the standard cursor key scroll speed to be set according to taste. The search replace functions work freely and interactively from use of keyboard/menus/gadgets simultaneously, with replace mode protected by a "safety switch". There are keyboard shortcuts for quick repeat searches and replacement, and the search replace functions are very fast. You can change direction within searches, move into and out of "Replace mode", change strings etc. etc. all while within a search sequence. Search and Replace string gadgets are not Intuition Gadgets.......they have a "history" feature so that previous entries can be recalled using the up and down arrow keys. The HeliOS editors have a quick-save "safety" button which lights up as soon as you change the contents of an editor. Pressing this button resets its colour to neutral and does an instant "quick save". There is also a "quick-load" button as well as the usual menu and command key options for loading files. There is a "Run and Debug" button for each editor which with a single action lets you compile the current editor and automatically go to the interpreter in debug mode. A sophisticated macro recording system will allow any length of macro recording, and will allow inclusion of DOS and AREXX functions. Macros can call other macros up to a nesting level of 20. DOS and AREXX functions may be tied to definable command keys, and may be changed, deleted, edited etc. Command keys can be reprogrammed using macros or rebound using the simple interactive key-rebinding system. All command keys can also be reprogrammed using an editable ASCII key definition configuration file. The "Ed x" buttons can be used with SHIFT or CTRL or R-MOUSE to compile editors from within edit mode. HeliOS allows full cut and paste between different editors, and cut and paste between the interpreter command lines and any editor. HeliOS editors all have a split screen mode allowing you to use two editors on screen together, or two views of the same editor. This can be useful for cut/paste and comparison purposes. To enter and leave "dual" mode, either double click on the editor control buttons, press the "split editor" button to the left of the editor buttons, or use the command key combination shown in Key Index. If you have two views of the same editor, you can scroll around either view and any editing in either view will be updated into the other view only when you activate that view. In other words, the "inactive" view can be used as a fixed static "snapshot" of the text in an editor while it is being changed in the other view. Two positions within one editor can be remembered if both windows are used on the same file, and entering either view will return you to the position last set in that view. When you return from split screen mode, the single screen display will revert to whichever editor (or view) was currently selected/highlighted in split screen mode. The dual-edit mode is not intended as a means of maintaining two editors on screen at all times during the edit session, and is not intended to be used like the "tiled" edit window mode of many other editors. At present the system defaults to a fixed "half and half" screen display in dual mode, which is appropriate for the purpose of comparison and cross-pasting of text. The HeliOS editor adopts a deliberate policy of using quick press button invocation rather than "tiling" the different editors in stacked layers. The "tiling" method means that each editor in use has a "title bar" on the display which reduces the text area dramatically. Using the Helios system accessing any of the editor windows is a simple quick click operation, and when not being actually used the other editors take up no screen area. ********************** Editor control buttons ********************** The top row of buttons: ************************* The editor select buttons ************************* The four buttons which allow entry to the editors (3 Editors + "OUT" editor) have several modes of action: Single left mouse click - Enters the editor associated with that button and highlights the button. Double left mouse click - When inside an editor, enters and leaves the "split screen" mode which allows you to view two editors on screen together. Single left mouse click - Compiles that editor using current compile mode while holding down the whether you are in interpret or edit mode. right mouse button, the key or the key Note: On OS 1.3 machines the gadget must first be pressed with the left mouse button before then holding down the right button and releasing the left button. ******************************************************************* Square button to left of editor buttons - the "Split screen" button ******************************************************************* This button acts as a "split screen" toggle when you are actually within an editor. The imagery on this button indicates whether the current mode is "split" or "single". When you are in the interpreter, this button will take you back into "edit" mode into the same configuration which you last set up within "edit" mode. It acts as an instant return to your editor setup. ******************* The "Colour" button ******************* This simply brings up the colour requester. ***************** The "Redo" button ***************** Has no function in edit mode. ***************** The "Help" button ***************** 1. Pressed alone. Switches to "Help" mode, where accessing any menu or button will bring up a short explanatory text. 2. Pressed with the key. Tries to display help, if available, on the word under the cursor. See notes on the user editable Vocabulary Help file. The second row of buttons: ************************ The "Title/Debug" button ************************ The first button, on the left of the editor header bar, bears the name of the editor i.e. "Editor 1", "Editor 2" etc. Pressing this button will exit the editor, enter the interpreter in "Debug Mode", and compile the contents of the editor under debugger control. This is effectively a "Compile and Debug Editor" button. ********************************** The editor file name string gadget ********************************** This gadget displays the name of any file loaded into an editor. You may click in this gadget and enter a name, which may be a full pathname if you wish. When you press the path will be parsed, any directory path will be inserted into the file requester and save paths, and the file name alone will be left justified into the editor bar string gadget. ****************************** The editor "Quick Load" button ****************************** This is the small red button with the white triangle. Pressing this button will bring up the file requester ready to load a file into the editor. ******************************* The #1 "Place Marker" button ******************************* This is a small yellow button inscribed with a red pointer icon and the number "1". This button has two modes of operation. Mode 1: Pressing this gadget with the left mouse button will take you to the row number indicated in the adjacent string gadget. Mode 2: Pressing this gadget with the left mouse button and the holding down the right mouse button or key or while releasing the gadget will insert the current row number into the adjacent string gadget. *********************************** The #1 "Place Marker" string gadget *********************************** This string gadget holds the row number of the current #1 place marker. You can click in this gadget and manually enter a row number: pressing will then take you to that row. If a row greater than the number of rows in the file is entered, the number will be truncated to the highest row available. ******************************* The #2 "Place Marker" button ******************************* This is a small yellow button inscribed with a red pointer icon and the number "2". This button has two modes of operation. Mode 1: Pressing this gadget with the left mouse button will take you to the row number indicated in the adjacent string gadget. Mode 2: Pressing this gadget with the left mouse button and the holding down the right mouse button or or key while releasing the gadget will insert the current row number into the adjacent string gadget. *********************************** The #2 "Place Marker" string gadget *********************************** This string gadget holds the row number of the current #2 place marker. You can click in this gadget and manually enter a row number: pressing will then take you to that row. If a row greater than the number of rows in the file is entered, the number will be truncated to the highest row available. ***************** The "Find" button ***************** This button brings up the "Find/Replace" control panel. *********************** The "Quick Save" button *********************** This is the small square button on the right of the header bar: it has two possible appearances: 1. A neutral coloured button with an upward pointing white triangular icon 2. A yellow button with an upward pointing red triangular icon. This button indicates whether the current file has been altered, and gives you the chance to do an instant "quick save" using the current filename. If the button is "neutral", the file is unchanged and pressing the quick save button will have no effect. If the button is "yellow", the file has been changed and pressing the quick save button will save a new version of the file (and create a ".Bak" file if that option is enabled). ************************************** The "Up and Down Scroll" arrow buttons ************************************** These buttons are designed to be set for comfortable text browsing. The idea is that you can read text while scrolling by setting the scroll speed to suit your own requirements. The menu "Scrolling Speed" settings apply to these two buttons and to the cursor arrow key scrolling speed. ******************************************** The "Up and Down Scroll" proportional slider ******************************************** This has the usual obvious function, but has a few interesting "extras". There is a "gearing" system used in conjunction with this gadget which detects whether you are scrolling a few lines, a few screens, or a long way. According to the distance being travelled, and automatic "gearchange" will take effect and will try to maintain a smooth and readable scroll. If you click in the "container" above or below the "knob", a full screen scroll will occur, but the software will accelerate and decelerate smoothly so that you do not get a sudden disturbing jump. This is quite useful when browsing large files, since the proportional gadget lets you zoom in on any area of the file quickly, and them smooth scroll while reading, still using the proportional gadget. Try this on a normal "ungeared" system and you will realise that on large files the proportional slider has far too coarse an effect. The gearing system can be adjusted from a "soft-slow" setting to a very fast setting using the menu "Scroll Settle" options. Note: The proportional slider can be set, using a menu option, to be constantly updated during a scroll, or to be updated only at the end of a scroll. If the setting is for the update to occur only at the end of a scroll you will get a much better smooth scroll on slower 1.3 machines, since the rendering of the slider knob by intuition is quite slow. We recommend that you experiment with this setting for the best smooth scrolling. ******************** A note about Colours ******************** The new system has 5 colour presets. If you use the "Save" button on the Colour control panel, or the "Save colours" menu option, a "colour config" file can be saved, and this file can be used as your default startup colour configuration. See the "InitialSetup.doc" for details on how to do this. You can of course use the menu options "Save colours as" and "Load colours" to save and load colour files other than the standard startup config file. On the colour control panel are two buttons called "Undo" and "Reset". These work on the currently selected "preset" colour palette. They do NOT alter any preset palettes other than the currently selected one. "Undo" will restore the colours of the selected preset palette to those it had before last entering the colour control panel. "Reset" will restore system default colours to the selected preset palette. ********************** Columnar block marking ********************** This useful feature has a few points of special interest. Firstly, columnar block mark mode can be invoked by: 1. The menu option 2. The keyboard command + 3. Holding down the right mouse button while double clicking the left. 4. Holding down the key while double clicking the left mouse button. 5. Holding down the key while double clicking the left mouse button. Secondly, there are two modes of "paste" for columnar blocks: 1. If the menu option for text "Insert mode" is set, the columnar block will be inserted and existing text will be opened to accomodate the new text block. 2. If the menu option for text "Overwrite mode" is set, the columnar block will be pasted down on top of existing text, overwriting the old text. Finally: The columnar block is not stored with line-end formatting characters - it is stored in continuous end-to-end line segments as cut from the text. This means that printing or saving the marked block may not have the desired effect in terms of preserving the block proportions and layout. To maintain a multi-line format in these cases it is best to paste down the columnar block in spare editor space and then use the normal block mark function. ******************** Compile marked block ******************** This option allows you to highlight an area of your source code and compile it. The operation first puts you into interpret mode so that you can view the output of your code. Compilation will be in Debug mode if that mode is set in the interpreter. Columnar block marking is ignored in this mode. If you do have a columnar block marked by mistake there will be no problem, but the code will be compiled from the first marked character in the block to the last marked character, ignoring the column format. ****************** Debug marked block ****************** This is similar to the "compile marked block" operation, except that the interpreter will be switched into Debug mode before compilation. ******************************** Copy marked block to find buffer ******************************** There is a useful function which copies marked text into the find requester string buffer. This can be operated from menu or keyboard. ************* Text Wrapping ************* To use this function you must have the right margin set. Text wrapping is slightly unconventional in that linear typing will wrap text within the left and right margins, if set, but you can still click outside the margins and type text freely into margin space. This mode of functioning is useful for program editing but may not please those used to a more conventional "word processing" type of implementation. *************************** TABs, margins and the ruler *************************** To set the ruler, create a text line in the editor which has the following format: L ! ! ! R ^ ^TAB ^TAB ^TAB ^ Left margin position Right margin This line is used to define your new "ruler" settings. Note that: L or l = Left margin position R or r = Right margin position ! = Tab position To set the new ruler put the cursor anywhere on the ruler definition text line and press +. This will delete the line from the editor and set the ruler with the new settings. See Key Index and Options menus for several useful TAB and "Ruler" functions. Note that TAB settings may be saved with the Environment file as well as in a file header. ****** Macros ****** Macros can be of any number and any length, and can contain mixtures of primitive and macro commands. A macro can call another macro, which can call another macro, which can call another macro.....up to a nesting level of 20. A macro cannot call its own invocation key combination, and if you try to do so you will be warned. New macros defined with the same key combinations as existing macros will delete the earlier versions. Many functions would not be appropriate if used in macros, or would operate in unpredictable ways. If you try to use one of these functions in a macro recording, you will be warned that the function is unavailable, and then you will be allowed to carry on with the macro recording. This "Macro availability" can be redifined for those functions defined in the shortcut KeyTable file. Using the KeyTable file you can switch whether any function can be used in Macros. Take care! You can edit DOS/AREXX macros and change or extend the command text. Macro DOS/AREXX command strings may be up to 100 characters in length. You can delete all macros, or any individual macro, and you can load and save macro files freely. See the "InitialSetup.doc" file for instructions on setting up a default startup macro file.