home *** CD-ROM | disk | FTP | other *** search
/ Black Box 4 / BlackBox.cdr / editors / hypsh40c.arj / HYPDOC.LZH / CHAP7.TXT < prev    next >
Text File  |  1991-04-27  |  36KB  |  925 lines

  1.  
  2.  
  3.  
  4.        HyperShell Users Guide                      Integrated Environment
  5.  
  6.  
  7.  
  8.  
  9.                 HyperShell Integrated Development Environment
  10.  
  11.  
  12.  
  13.        7. Integrated Environment
  14.  
  15.        The Integrated Environment provides an environment for the interactive
  16.        creation and maintenance of hyperfiles.  This program is consistent
  17.        with the main HyperShell reader program, providing the full reader
  18.        functionality as a subset.
  19.  
  20.        The Integrated Environment is also designed to provide a base for a
  21.        new kind of application, where information can be readily added in the
  22.        form of frames, notes and the other HyperShell items.
  23.  
  24.        It provides a number of functions additional to the reader component,
  25.        as follows:-
  26.  
  27.        i.   Editing of frames and other items.
  28.  
  29.        ii.  Item level and file level checking of syntax and cross
  30.        references.
  31.  
  32.        iii. Frame and item text output direct to printer or to a file.
  33.  
  34.        The  additional functionality is fully configurable, as it is provided
  35.        in the form of:-
  36.  
  37.        i.   Additional actions to handle the editing operations.
  38.  
  39.        ii.  Additional functions and condition codes.
  40.  
  41.        iii. Additional menus for selection of items, searches and check
  42.        scans.
  43.  
  44.        iv.  Additional menus for lists of local notes and other items.
  45.  
  46.        v.   A configurable editor, which can utilise the power of popup
  47.        menus, notes, functions and dynamic menus.
  48.  
  49.        vi.  A separate edit control `hyperfile' which may be used to provide
  50.        the editing environment.
  51.  
  52.        The Integrated Environment has the following limitations compared with
  53.        the reader components.
  54.  
  55.        i.   It is limited to working on one hyperfile at a time.  Attempts to
  56.        reference or pre-load other hyperfiles will be unsuccessful.
  57.  
  58.  
  59.  
  60.  
  61.  
  62.  
  63.                                       - 111 -
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70.        Integrated Environment                        HyperShell Users Guide
  71.  
  72.  
  73.        ii.  It cannot read a compressed file which has been compressed with
  74.        the new `secret' flag. This is a deliberate restriction imposed to
  75.        protect hyperfiles produced by holders of HyperShell development
  76.        licences.
  77.  
  78.        iii. It cannot handle certain hyperfiles which the HL.EXE component
  79.        can handle.  This is due to storage requirements.
  80.  
  81.        7.1 Edit methods
  82.  
  83.        To reflect the varying requirements of different applications, a
  84.        number of different editing methods are available.
  85.  
  86.        7.1.1 In memory edit
  87.  
  88.        The default editing mode is `in memory', unless the file is estimated
  89.        to be too large to be comfortably edited in memory.  This means that
  90.        the entire file is read into memory for editing, and is saved directly
  91.        to disk on exit.
  92.  
  93.        Loading
  94.  
  95.             Main file to memory
  96.             Control file to memory
  97.  
  98.        Saving
  99.  
  100.             1. Quit to original
  101.        or   2. Save whole file with or without backup
  102.  
  103.        7.1.2 Edit from file
  104.  
  105.        For files which are too large to be edited in memory, the `edit
  106.        against file' option is used.  This can also be specified for those
  107.        files which can fit in memory, using the command line switch
  108.  
  109.          -ef
  110.  
  111.        This method holds the changes in memory until the save operation. It
  112.        then merges the changes with the original file.  However, as this is a
  113.        rather disk intensive operation, another form of saving is also
  114.        offered.  This is known as `incremental' saving, or `change file'
  115.        saving.
  116.  
  117.        With this, rather than updating the main hyperfile, just the changes
  118.        are written to a file, along with a detailed index so that the order
  119.        of items reflects the editing session.  This combined change and index
  120.        file is automatically read in on a subsequent run, and used to
  121.        reconstitute the appearance of the file when it was last saved.
  122.        Further changes can then be performed, and the results saved again.
  123.  
  124.  
  125.  
  126.  
  127.  
  128.  
  129.                                       - 112 -
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136.        HyperShell Users Guide                      Integrated Environment
  137.  
  138.  
  139.        This mode of operation keeps the memory requirements to a minimum, so
  140.        the change file can grow to a reasonable size before it is merged, if
  141.        indeed that is at all necessary.  The merge operation, when it is
  142.        performed, takes the accumulated changes into account, merging the
  143.        changes in memory with those from the control file and the original
  144.        file.
  145.  
  146.        The change file mode of operation has some useful side-effects. It is
  147.        possible, for instance, to work against a write protected hyperfile,
  148.        and thereby prevent any damage to the original file.  It is simple to
  149.        rename the change file so that multiple change paths can exist.  Thus
  150.        a number of `users' can hold their own changed view of the original
  151.        file.  It is possible to save successive change files, such that a
  152.        change step can be `backed out' to the previous stage, without the
  153.        overhead of retaining full copies of the hyperfile at each stage.
  154.  
  155.        Loading
  156.  
  157.        -  Main file from file
  158.        -  Change file, if present, from file
  159.        -  Control file to memory
  160.  
  161.        Saving
  162.  
  163.            1. Quit with no saving
  164.             a) and retain change file
  165.             b) and delete any change file
  166.        or  2. Merge Main with change file and memory
  167.             a) and continue
  168.             b) and exit
  169.             c) optional backup retention
  170.        or  3. Save change file
  171.             a) and continue
  172.             b) and exit
  173.  
  174.        7.2 Edit control file
  175.  
  176.        Edit functions can be built into a control file.  Thus you could have
  177.        a self-contained menu driven incremental hyperfile which edits itself.
  178.  
  179.        Edit functions can also be provided via a `hidden' control hyperfile,
  180.        called HS_IDE.HYP.  This is loaded, if present, along with the
  181.        hyperfile named on the command line, and maps a key (usually the `#'
  182.        key), to bring an editing control menu into operation.  This hyperfile
  183.        just contains global items, and is loaded at the end of the global
  184.        items for the main hyperfile, although it will not be visible in the
  185.        item lists.
  186.  
  187.        The HS_IDE control file should not be present if you use built-in
  188.        editing control, although you can provide additional editing functions
  189.        from items in the main hyperfile.
  190.  
  191.  
  192.  
  193.  
  194.  
  195.                                       - 113 -
  196.  
  197.  
  198.  
  199.  
  200.  
  201.  
  202.        Integrated Environment                        HyperShell Users Guide
  203.  
  204.  
  205.        7.3 File structure
  206.  
  207.        If you intend using the integrated environment with existing
  208.        hyperfiles, you should note the following.
  209.  
  210.        The integrated editing environment does not retain the order of the
  211.        single control items, such as the HEADER and FOOTER, but writes them
  212.        to the new file at the start.
  213.  
  214.        Also all items, REMARKs, CHECKs, PRINTs etc. after a frame definition
  215.        are treated as local and belonging to that frame. All such items
  216.        before the first frame definition are treated as global. The `.END'
  217.        directive is therefore redundant, but you may wish to retain these in
  218.        existing hyperfiles for commentary purposes.
  219.  
  220.        7.4 Keeping backups
  221.  
  222.        Your hyperfiles are a valuable asset, as it takes you a lot of time
  223.        and creative effort to produce one.  Because of this, you will not be
  224.        too happy to lose them.  The best approach is to take copies of the
  225.        file on a regular basis.
  226.  
  227.        If you use a hard disk, you should take copies on floppy disk
  228.        regularly, in case your hard disk suddenly decides not to work.  You
  229.        can also make very frequent copies to a backup directory on the hard
  230.        disk, in case you accidentally delete something important.
  231.  
  232.        The HyperShell integrated environment has been well tested, but there
  233.        is always the possibility with any software that unusual circumstances
  234.        may cause it to crash, losing the data being edited.  The HyperShell
  235.        incremental save facilities allow you to take regular snapshots of
  236.        your editing in case this happens.  It is up to you how frequently you
  237.        do these, but you have only yourself to blame if you lose everything
  238.        after a seven hour editing session. The nature of editing software is
  239.        such that the longer the session takes, the more chances are that the
  240.        unusual circumstance will occur.
  241.  
  242.        The integrated environment monitors the available memory and gives
  243.        adequate warnings when it gets low.  If you save your data immediately
  244.        the low memory warning is given, you will not run the risk of the
  245.        program running out completely.  If you find the low memory limit (50k
  246.        by default) too high, you can configure it to be lower (or higher if
  247.        you think it too low!), but be warned that when memory runs out
  248.        altogether, the program halts with no chance of saving your changes.
  249.  
  250.        7.5 Command line
  251.  
  252.        The Integrated Environment command line is the same as for the HS/HL
  253.        component, but has the following additional flags:-
  254.  
  255.  
  256.  
  257.  
  258.  
  259.  
  260.  
  261.                                       - 114 -
  262.  
  263.  
  264.  
  265.  
  266.  
  267.  
  268.        HyperShell Users Guide                      Integrated Environment
  269.  
  270.  
  271.          +---------------------------------------------------+
  272.          |-ef | Work against file, rather than in memory     |
  273.          |-eb | Delete original, rather than saving as .BAK  |
  274.          +---------------------------------------------------+
  275.  
  276.        If you do not suppress the creation of a backup file, the original is
  277.        renamed to have a .BAK extension and the new file renamed to have the
  278.        original name.  If the temporary file has a different pathname, as
  279.        specified in the TEMP environment variable, it is copied to the
  280.        original filename and then deleted.
  281.  
  282.        It is important, therefore, to ensure that there is sufficient space
  283.        on the disk to hold the new copy of the file as well as the backup
  284.        copy.  If the temporary file is created on another drive, and no
  285.        backup is retained, just the additional space required for additional
  286.        items needs to be available on the original drive.
  287.  
  288.        New hyperfiles cannot be created by HI.  An existing file is copied to
  289.        form the basis of the new hyperfile.  The Hyperkit hyperfile allows
  290.        you to do this.
  291.  
  292.        7.6 Program operation
  293.  
  294.        As the integrated environment is a superset of the HyperShell reader,
  295.        it will function in the same fashion when you run it.  If the memory
  296.        edit mode is in effect, the program will take longer to start, but
  297.        will run more quickly when displaying frames or using other items.
  298.  
  299.        The contents list will show additional information to indicate where
  300.        each item is held, and to indicate if the item has failed a check
  301.        scan.  This takes the form of additional indicators similar to the
  302.        matching frame flag set by searches.
  303.  
  304.        The item location flags appear to the left of the item name, and have
  305.        the following values:-
  306.  
  307.          blank   Item is in original file
  308.          M       Item is in memory
  309.          C       Item is in the change file
  310.          R       Item is read-only control item (not displayed)
  311.  
  312.        The check fail indicator appears next to the item name, and is a `?'
  313.        character.
  314.  
  315.        If edits have been performed on the file, attempting to use the normal
  316.        `Quit' action will cause a confirmation request to be issued, allowing
  317.        you to return to the program to save the changes.
  318.  
  319.  
  320.  
  321.  
  322.  
  323.  
  324.  
  325.  
  326.  
  327.                                       - 115 -
  328.  
  329.  
  330.  
  331.  
  332.  
  333.  
  334.        Integrated Environment                        HyperShell Users Guide
  335.  
  336.  
  337.        The TEMP environment variable may be set to indicate the device and
  338.        directory path to be used for the temporary file used for regular
  339.        saves, and as a work file when the save and exit is used.  It speeds
  340.        up the save and exit processing for when the `edit against file' mode
  341.        is used, if this is on a different drive to the original file.
  342.        Sufficient space must be available to accommodate the temporary file,
  343.        which will be at least as large as the edited file.
  344.  
  345.        7.7 Editing operations
  346.  
  347.        The editing facilities consist of file level, item level, and contents
  348.        level operations.
  349.  
  350.        File level operations consist of the various save and exit with save
  351.        actions, as well as actions which treat external files as `items',
  352.        such as text file creation, editing, rename and deletion.
  353.  
  354.        Item level operations handle the creation, renaming, checking,
  355.        relocation and deletion of frames and other items.
  356.  
  357.        Contents level operations are handled by the edit mode, which provides
  358.        a full screen editor for editing the contents of frames, items and
  359.        text files.
  360.  
  361.        A number of other supporting facilities are provided for searching and
  362.        selection of global and local items, scanning for errors, printing
  363.        frames or items, etc.
  364.  
  365.        7.8 Edit mode
  366.  
  367.        The edit mode provides a full screen editor, which is fully
  368.        configurable.  The default mode of operation and key mappings are
  369.        described here.
  370.  
  371.        The edits you make in edit mode do not have any effect until they are
  372.        saved.  You can optionally QUIT out of edit mode if you do not wish to
  373.        save the edited item.
  374.  
  375.        To save the item after editing it in edit mode, you press Function key
  376.        10.  To quit without saving the changes, you press Function key 9 and
  377.        confirm that you want to quit.  When you exit or quit from edit mode,
  378.        you are still in the integrated environment.  Your changes will be in
  379.        memory, and you will have to do some form of file saving to make the
  380.        changes to the hyperfile permanently.
  381.  
  382.        A blank line is added to the end of the edit buffer when edit mode is
  383.        entered.  This is removed, if present, when the buffer is saved.
  384.  
  385.        VIEW mode is a variation of edit mode, which works in the same way,
  386.        only does not permit the item to be saved, except to a disk file.
  387.        View mode is indicated on the bottom line, and by the bottom line
  388.        being a different colour to when in edit mode.
  389.  
  390.  
  391.  
  392.  
  393.                                       - 116 -
  394.  
  395.  
  396.  
  397.  
  398.  
  399.  
  400.        HyperShell Users Guide                      Integrated Environment
  401.  
  402.  
  403.        If you press Function key 9 in View mode, you will exit to the frame
  404.        display directly.  If you accidentally press Function key 10, the edit
  405.        buffer will be saved to the buffer save file called EDITBUFF.SAV, and
  406.        you will remain in view mode.
  407.  
  408.        7.8.1 Text display
  409.  
  410.        The text is displayed in the top 22 lines of the screen, flush with
  411.        the left edge of the screen.
  412.  
  413.        For Frames, Notes, the Header and the Footer, reference flags, tabs
  414.        and horizontal formatting controls are handled in the main display to
  415.        give the appearance the text will take when displayed.  The current
  416.        line, being that over which the cursor is placed, is also displayed at
  417.        the bottom of the screen in its `raw' form, showing any reference and
  418.        formatting flags.  For other items, the text will be shown in the main
  419.        display area in its raw form.  All items can be toggled to the other
  420.        interpretation state at any time using Function key 4.
  421.  
  422.        Variable tokens are not expanded, but are shown in their token form.
  423.        The screen will use the configured colours for frame and note items,
  424.        and will use the frame text colour configuration for other items.  As
  425.        the text is edited, the edit mode will attempt to keep the colours for
  426.        new data correct.  It is not always successful in doing this, and you
  427.        should not be alarmed by any incorrect colours.  These can usually be
  428.        sorted out by refreshing the display (Function key 2), but may not be
  429.        corrected until the text is displayed as the item.
  430.  
  431.        The bottom line of the display shows the type and name of the item
  432.        being edited, the current page and line number and the number of
  433.        pages.  A `page' in this case is the screenfull of text displayed by
  434.        the editor, and most likely will not match the page number of a
  435.        multiple screen frame display.  However, an indicator is shown
  436.        alongside the line number when the text cursor is on the estimated
  437.        `bottom' line of a frame.
  438.  
  439.        The bottom line is also used to display any warning messages issued as
  440.        a result of limits being exceeded etc.  It is also used to display the
  441.        overwrite mode when this is in effect, to indicate when the symbol
  442.        shift is in effect, and to indicate which margins are in effect.
  443.  
  444.        7.9 Moving around
  445.  
  446.        The cursor keys are used to move around the text, and permit
  447.        character, word, line and page movement in both directions.
  448.  
  449.        If a mouse is attached to the system, the mouse cursor can be used to
  450.        position the text cursor, using the left mouse button.  This may be
  451.        done in the main display area, or in the raw text display area if
  452.        precise positioning within references is required.
  453.  
  454.  
  455.  
  456.  
  457.  
  458.  
  459.                                       - 117 -
  460.  
  461.  
  462.  
  463.  
  464.  
  465.  
  466.        Integrated Environment                        HyperShell Users Guide
  467.  
  468.  
  469.        If the text is longer than 22 lines, the remaining text is available
  470.        by moving the cursor down, or by paging down using the PgDn key.  A
  471.        menubar will be displayed at the right edge, which is used to indicate
  472.        the position of the text cursor in the buffer.  If a mouse is
  473.        available, the mouse cursor can be clicked on the scrollbar to
  474.        position the text cursor at the approximate location in the buffer
  475.        represented on the scrollbar.  The up and down arrows at top and
  476.        bottom of the scrollbar can be used to move up and down a screen at a
  477.        time, like the PgUp and PgDn keys.
  478.  
  479.        7.9.1 Inserting text
  480.  
  481.        Text is inserted at the current cursor position by typing characters.
  482.        An OVERWRITE mode may be toggled-in to allow existing text to be
  483.        overwritten.  The current insertion mode is indicated by the cursor
  484.        shape, as in the string edit mode of the reader, a block signifying
  485.        insert mode and an underscore signifying overwrite mode.
  486.  
  487.        The RETURN (or NEWLINE) key is used to start a new line (or to split a
  488.        line if the cursor is positioned within a line).  The TAB key inserts
  489.        a tab character in the current position, and uses this to tab to the
  490.        next tab position, which occurs on the next boundary as specified by
  491.        option code O*7 (default 8).
  492.  
  493.        Control characters, other than tabs, are not inserted, nor are decimal
  494.        codes above 175 entered via the ALT/Numeric keypad keys.  Any key,
  495.        including a control key, can be inserted by preceding it with a Ctrl-Q
  496.        key press, although caution is advised when doing this as control
  497.        characters below decimal 32 can cause data to be lost.
  498.  
  499.        Special symbols, with codes above decimal 175, are entered by use of a
  500.        special `symbol shift' which is toggled using Function Key 8.  When
  501.        the symbol shift is in effect, all characters entered have decimal 128
  502.        added to their codes before being inserted, also all characters
  503.        between 128 and 175 have 128 subtracted from their codes.  This means
  504.        that graphic characters, greek symbols etc.  can then be entered with
  505.        single key strokes, and have the benefit of keyboard auto-repeat for
  506.        such purposes as drawing lines etc.  The mapping between the
  507.        characters can easily be determined by inspecting the 256 character
  508.        set chart in the appendix.  As an example, the `M' character will draw
  509.        a double horizontal line, and `c' will draw a greek `pi' symbol.
  510.  
  511.        As an assistance to entering symbols, the help menu (Function key 1)
  512.        may be configured to include a note display showing a map of symbols,
  513.        one of which may be selected positioning the mouse cursor and pressing
  514.        the HOME key.  This inserts the character in the text at the text
  515.        cursor position.
  516.  
  517.        7.9.2 Margins and formatting
  518.  
  519.        Text auto-wraps at column 80, unless a right margin has been
  520.        specified, in which case it wraps at the specified column.
  521.  
  522.  
  523.  
  524.  
  525.                                       - 118 -
  526.  
  527.  
  528.  
  529.  
  530.  
  531.  
  532.        HyperShell Users Guide                      Integrated Environment
  533.  
  534.  
  535.        Both global margin settings and temporary margins can be used.  To
  536.        bring the global margins into effect, press the Ctrl-O key.  Pressing
  537.        this when any margins are in effect clears the margins.  Temporary
  538.        left and right margins are brought into effect using the Ctrl-L and
  539.        Ctrl-R keys respectively.  To set a left margin, start a fresh line,
  540.        enter spaces and whatever characters you wish to have in the left
  541.        margin, then press Ctrl-L.  The characters you have entered will then
  542.        be entered whenever a new line is started.  To set a right margin,
  543.        simply press Ctrl-R when the text cursor is at the position where the
  544.        right margin should be.
  545.  
  546.        When margins are in effect, they are indicated on the bottom line.
  547.  
  548.        To format existing paragraphs to the current margins, position the
  549.        text cursor immediately before, or inside, the paragraph and press
  550.        Ctrl-F.  This should stop at the end of the paragraph, but may not if
  551.        the line after the paragraph contains formatting flags or inconsistent
  552.        spaces and tabs.  The reformatting should allow for references
  553.        contained in the text, but cannot allow for special formatting or
  554.        hidden text flags, so it should be used with care.  It is a good idea
  555.        to save your edits before undertaking any formatting in case it goes
  556.        wrong.
  557.  
  558.        7.9.3 Deleting text
  559.  
  560.        Text is deleted in a number of ways.  Single characters and line
  561.        breaks can be deleted either side of the cursor using the DELETE (or
  562.        BACKSPACE) key and the cursor pad DEL key.
  563.  
  564.        The current line can be deleted using the Ctrl-K key.  The deleted
  565.        line can be re-inserted, at the same or a different location, using
  566.        the Ctrl-U key.
  567.  
  568.        Ranges of lines can be deleted by selecting one end with Function key
  569.        5, then positioning at the other end of the inclusive range and
  570.        pressing Function key 6.  The deleted lines can be inserted elsewhere
  571.        using Function key 7.
  572.  
  573.        7.9.4 Copying and importing
  574.  
  575.        As a range of deleted lines are retained until another item is edited,
  576.        text can be moved between items in the paste buffer.
  577.  
  578.        Another way of moving text is to copy another item into the end of the
  579.        current item, and move the required text where you want it.  The Ctrl
  580.        shifted Function keys provide a range of item types for appending, as
  581.        follows:-
  582.  
  583.  
  584.  
  585.  
  586.  
  587.  
  588.  
  589.  
  590.  
  591.                                       - 119 -
  592.  
  593.  
  594.  
  595.  
  596.  
  597.  
  598.        Integrated Environment                        HyperShell Users Guide
  599.  
  600.  
  601.           Append item to edit buffer
  602.          +-------------------------------------------+
  603.          | Ctrl F4  | Frame selected from contents   |
  604.          | Ctrl F5  | Global item selected from list |
  605.          | Ctrl F6  | Local item selected from list  |
  606.          | Ctrl F7  | Text file                      |
  607.          | Ctrl F8  | Captured text screen           |
  608.          | Ctrl F9  | Text screen with attributes    |
  609.          +-------------------------------------------+
  610.  
  611.        The append text screen functions allow text screens captured from
  612.        other programs to be imported to the edit buffer.  The `with
  613.        attributes' interprets the screen attributes and inserts formatting
  614.        flags to give the text the correct colours.  Certain characters which
  615.        might cause HyperShell some embarrassment are converted to near
  616.        equivalents, and extra `$' and `~' characters are inserted to escape
  617.        these.
  618.  
  619.        If a screen is imported for use as a full frame, it should have the
  620.        end of the last line trimmed so that it will not scroll when
  621.        displayed.  Also the frame title should start with a `)' character to
  622.        suppress HEADER and FOOTER display.
  623.  
  624.        7.9.5 Referencing
  625.  
  626.        Reference flags can be inserted in a number of ways.  The flag
  627.        characters can be typed directly into the text at the required point
  628.        (this may give strange and confusing results in the main display area
  629.        whilst in progress - you are advised to watch the raw text area at the
  630.        bottom of the display whilst doing this).  If a line has an incomplete
  631.        reference in it, the editor will flash a `~' character at the end of
  632.        the line, to indicate its presence.
  633.  
  634.        Flagging words
  635.  
  636.        Shifted Function keys are provided to place reference flags around the
  637.        word in which the text cursor is placed.  These are as follows:-
  638.  
  639.           Add reference flags to current word
  640.          +-----------------------------------------+
  641.          | Shift F1 | Flag as Frame Step      | ~f |
  642.          | Shift F2 | Flag as Frame Reference | ~F |
  643.          | Shift F3 | Flag as Global Note     | ~N |
  644.          | Shift F4 | Flag as Local Note      | ~n |
  645.          | Shift F5 | Flag as Global Menu     | ~M |
  646.          | Shift F6 | Flag as Local Menu      | ~m |
  647.          | Shift F7 | Flag as Global Script   | ~S |
  648.          | Shift F8 | Flag as Local Script    | ~s |
  649.          | Shift F9 | Flag as Action          | ~A |
  650.          | Shift F10| Flag as Input Field     | ~I |
  651.          +-----------------------------------------+
  652.  
  653.  
  654.  
  655.  
  656.  
  657.                                       - 120 -
  658.  
  659.  
  660.  
  661.  
  662.  
  663.  
  664.        HyperShell Users Guide                      Integrated Environment
  665.  
  666.  
  667.        Adding cross references
  668.  
  669.        The most comfortable way of adding a reference is to select the item
  670.        to be referenced from a list.  This has the double advantage of saving
  671.        you the trouble of remembering and typing the items name in, and of
  672.        ensuring that the reference exists and is spelt correctly.  Ctrl
  673.        shifted Function keys provide the three main lists:-
  674.  
  675.           Select reference directly from list
  676.          +-------------------------------------------+
  677.          | Ctrl F1 | Select frame as reference       |
  678.          | Ctrl F2 | Select Global item as reference |
  679.          | Ctrl F3 | Select Local item as reference  |
  680.          +-------------------------------------------+
  681.  
  682.        Automatic referencing
  683.  
  684.        Automatic referencing is available on the Alt shifted Function keys.
  685.        These are as follows:-
  686.  
  687.           Autoreference edit buffer
  688.          +------------------------------------------+
  689.          |Alt F1   Autoreference using frame names  |
  690.          |Alt F2   Autoreference using global notes |
  691.          |Alt F3   Autoreference using local notes  |
  692.          +------------------------------------------+
  693.  
  694.        Clearing references
  695.  
  696.        One problem with autoreferencing is `false references'.  These are
  697.        where a word or phrase is flagged incorrectly as a reference.  If this
  698.        happens, the reference flags can be removed from a string by placing
  699.        the text cursor in the reference and pressing Ctrl-W.
  700.  
  701.        Checking references
  702.  
  703.        When you have added your own reference flags, it is useful to check to
  704.        see if they are correct.  This is done very easily by simply pressing
  705.        Ctrl-V.  This causes the edit buffer to be checked, and any incorrect
  706.        references or other irregularities will be reported.
  707.  
  708.        If no errors are reported, you do not have any problems.  If errors
  709.        are reported, the line will be displayed, along with the line number
  710.        and a warning or error message.  If you have a lot of errors, they
  711.        will most probably scroll off the screen, so you will have to tackle
  712.        the final ones first.
  713.  
  714.        It is a good idea to run this check just before you save and exit the
  715.        item edit.
  716.  
  717.  
  718.  
  719.  
  720.  
  721.  
  722.  
  723.                                       - 121 -
  724.  
  725.  
  726.  
  727.  
  728.  
  729.  
  730.        Integrated Environment                        HyperShell Users Guide
  731.  
  732.  
  733.        7.9.6 Searching and replacing
  734.  
  735.        A search can be made for a string in the edit buffer.  This is done by
  736.        pressing Alt shifted F6.  This prompts for a string, then searches
  737.        forwards in the buffer for that string.
  738.  
  739.        To search again for the same string, the Alt shifted F5 key may be
  740.        pressed.
  741.  
  742.        One operation which is often necessary is to replace all occurrences
  743.        of one string with another.  The Alt shifted F4 key provides a simple
  744.        search and replace function.
  745.  
  746.           Search and Search / Replace
  747.          +------------------------------------------+
  748.          |Alt F4   Search and replace strings       |
  749.          |Alt F5   Search for next occurrence       |
  750.          |Alt F6   Search for string                |
  751.          +------------------------------------------+
  752.  
  753.  
  754.        7.9.7 Other functions
  755.  
  756.        Other functions may be mapped to certain control keys.
  757.  
  758.        ESCAPE
  759.  
  760.        The ESCAPE key is usually mapped to a menu of edit operations by the
  761.        edit control file, and some options provided on this menu may lead to
  762.        other menus.  The menu must be configured for this to work.
  763.  
  764.        If a mouse is connected to the system, the RIGHT button is usually
  765.        mapped to this operation as well.  Mapping the ESCAPE key to another
  766.        function will also cause the mouse to use that function.  The mouse
  767.        buttons may be independently mapped, however.
  768.  
  769.        Function key 1
  770.  
  771.        This usually presents a menu of notes, which provide help information
  772.        and graphic maps for character selection using the HOME key.  The menu
  773.        must be configured for this to work.
  774.  
  775.  
  776.        7.9.8 Other default mappings
  777.  
  778.        Function key 2
  779.  
  780.        This key refreshes the screen display for when you want to ensure that
  781.        the highlighting is properly done, and that a line just edited is
  782.        displayed to correctly reflect any references.
  783.  
  784.  
  785.  
  786.  
  787.  
  788.  
  789.                                       - 122 -
  790.  
  791.  
  792.  
  793.  
  794.  
  795.  
  796.        HyperShell Users Guide                      Integrated Environment
  797.  
  798.  
  799.        Function key 3
  800.  
  801.        This key is provided as an easily mapped key for your own functions.
  802.        It is by default mapped to the `check buffer' function.  To re-map the
  803.        key, the edit mode variable `0' should be set to an edit mode function
  804.        sequence (see the chapter on configuring the environment).
  805.  
  806.        Function key 4
  807.  
  808.        This causes the current position in the edit buffer to be swapped with
  809.        that set by the `mark' function (Function key 5).
  810.  
  811.        Function key 5
  812.  
  813.        This sets a `mark' at the current line (and character position) used
  814.        by other functions such as the cut and paste facilities and the swap
  815.        with mark function.
  816.  
  817.        Function key 6
  818.  
  819.        This cuts all lines from and including the `mark' line to the current
  820.        one, placing the lines into a paste buffer.  Any previously cut lines
  821.        will be lost.  The paste buffer is retained until overwritten with a
  822.        further cut operation, and is available within the edit of a
  823.        subsequent item.
  824.  
  825.        There is a limit to the number of lines cut of 256 (around 10 full
  826.        screens).  The message "Too many lines - not cut!" is displayed if
  827.        this is exceeded, and the area is left unchanged.  If this happens,
  828.        reduce the size of the area and cut it in stages.
  829.  
  830.        Function key 7
  831.  
  832.        This inserts the lines contained in the paste buffer before the
  833.        current line.  The lines are still available in the paste buffer for
  834.        insertion elsewhere.
  835.  
  836.        Function key 8
  837.  
  838.        This toggles the symbol shift mode, turning it on if it is off, and
  839.        off if it is on.  The Symbol shift mode is used for entering symbol
  840.        characters.
  841.  
  842.        Function key 9
  843.  
  844.        This abandons the changes made to the item and retains the item in the
  845.        state it was in prior to the edit, and returns to the frame display.
  846.        Confirmation is requested before this is done.
  847.  
  848.        Function key 10
  849.  
  850.        This applies the changes made during the edit to the item being
  851.        edited, and returns to the frame display.  If in VIEW mode, the buffer
  852.        is written to EDITBUFF.SAV and the program remains in VIEW mode.
  853.  
  854.  
  855.                                       - 123 -
  856.  
  857.  
  858.  
  859.  
  860.  
  861.  
  862.        Integrated Environment                        HyperShell Users Guide
  863.  
  864.  
  865.  
  866.        Alt shifted F9
  867.  
  868.        This gives an escape to the DOS shell, to allow small tasks to be
  869.        performed such as copying a text file for appending to the edit
  870.        buffer.
  871.  
  872.        Keypad keys
  873.  
  874.          +---------------------------------------------------------+
  875.          |Home      | moves cursor to the start of the current line|
  876.          |End       | moves cursor to the end of the current line  |
  877.          |Ctrl-Home | moves cursor to the start of the current word|
  878.          |Ctrl-End  | moves cursor to the end of the current word  |
  879.          |Ctrl-Right| deletes chars from current to end of line    |
  880.          |Ctrl-Left | deletes chars before current on current line |
  881.          |Ctrl-PgUp | joins current line to next line              |
  882.          |Ctrl-PgDn | deletes the whole current line               |
  883.          |Ins       |  toggles INSERT / OVERWRITE                  |
  884.          |Del       |  deletes current character                   |
  885.          |Backspace |  deletes previous character                  |
  886.          +---------------------------------------------------------+
  887.  
  888.        Control keys
  889.  
  890.          +--------------------------------------------------+
  891.          |^A | open new line After current                  |
  892.          |^B | open new line Before current                 |
  893.          |^D | Delete inline (from ^X position)             |
  894.          |^E | Enter EDIT command                           |
  895.          |^F | reformat paragraph                           |
  896.          |^G | Toggle flag interpretation                   |
  897.          |^J | Join current line to next line               |
  898.          |^K | Kill (delete) current line                   |
  899.          |^L | Set temporary Left margin                    |
  900.          |^N | Save edit buffer to file EDITBUFF.SAV        |
  901.          |^O | Toggle margins (clear temporary margins)     |
  902.          |^Q | Quote verbatim character (next char typed)   |
  903.          |^R | Set temporary Right margin                   |
  904.          |^T | Toggle cursor Tracking (actual/visible char) |
  905.          |^U | Undelete line                                |
  906.          |^V | Verify (check) buffer                        |
  907.          |^W | Wipe reference flags                         |
  908.          |^X | Mark start for inline cut (^D to cut)        |
  909.          |^Y | paste in line                                |
  910.          |^Z | duplicate character from mouse position      |
  911.          +--------------------------------------------------+
  912.  
  913.  
  914.  
  915.  
  916.  
  917.  
  918.  
  919.  
  920.  
  921.                                       - 124 -
  922.  
  923.  
  924.  
  925.