home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 5 Edit / 05-Edit.zip / fed0217s.zip / docs / config.txt next >
Text File  |  2001-11-12  |  30KB  |  749 lines

  1. /*
  2. ** Module   :CONFIG.TXT
  3. ** Abstract :
  4. **
  5. ** Copyright (C) Sergey I. Yevtushenko
  6. ** Log: Fri  20/03/1998     Created
  7. **      Mon  30/03/1998     Updated for v0.2.0d
  8. **      Sat  11/04/1998     Updated for v0.2.0i
  9. **      Tue  28/04/1998     Updated for v0.2.0l
  10. **      Sat  09/01/1999     Updated for v0.2.0p
  11. **      Sat  05/06/1999     Updated for v0.2.5
  12. **      Fri  31/03/2000     Updated for v0.2.8
  13. **      Fri  09/11/2001     Updated for v0.2.17
  14. */
  15.                       Fast Editor Lite for OS/2
  16.  
  17.                           Configuration guide
  18.  
  19.                              Version v2.xx
  20.  
  21.              Copyright (C) Sergey I. Yevtushenko, 1997-2001
  22.  
  23.  
  24. What is FED?
  25.  
  26.     FED is VIO mode programmers editor. It's fast, small in size
  27.     and flexible. Most notable features of FED:
  28.     - CUA style blocks
  29.     - Full UNDO
  30.     - Syntax highlighting for C++/REXX/HTML/ASM/Makefile/Pascal/Perl/Mail
  31.     - Stream and rectangular blocks
  32.     - Auto indent/smart C++ indent
  33.     - Conversion to upper/lower case characters/blocks with NLS support
  34.     - Bracket matching for ()/{}/[]/<> bracket pairs
  35.     - Flexible key assignment
  36.     - Transparent with PM clipboard
  37.     - Block sort of rectangular blocks with NLS collate support
  38.     - Keyboard macro recorder/player
  39.     - REXX macro support
  40.     - Saving of last cursor position and other data in Extended Attributes
  41.     - Unix/DOS file formats supported
  42.     - Up to 10 user accessible JumpLists supported
  43.     - kbInit/kbDone/kbTimer/kbOpen pseudo keys
  44.     - Word wraping
  45.     - Named pipe interface
  46.     - Optional opening of file in one instance of the editor
  47.  
  48. Introduction.
  49.  
  50.     I have started FAST Editor Lite project in April 1997.
  51.     Lack of time does not allow me to continue it in more or less regular way.
  52.     So, I'm adding features from time to time (if I feel need in it or some
  53.     FED user request it), or fixing bugs (if FED user reports it).
  54.     Primary goal of project was to create replacement for QEdit which was my
  55.     primary editor for about five years. Of course, I did not want to make
  56.     exact copy of QEdit, because I did not use all features of QEdit.
  57.     From the other hand QEdit lacks some features which are important for me.
  58.     Two most important are syntax highlighting and full undo.
  59.  
  60.     So, first step was to write fast editing engine with syntax highlighting.
  61.     And this occupied about half of development time. The rest was much more
  62.     easier. The goal was achieved in January of 1998, and I started to use
  63.     FED as my everyday editor.
  64.  
  65.     Starting from version 0.2.0s, so called 'Jump Lists' were introduced.
  66.     What is Jump List? This is a list of <file, row, col, comment> elements,
  67.     which can be filled from REXX script assigned to key and later invoked
  68.     by another (or the same) key. This allows to implement some features
  69.     existing in 'large' IDE's. Provided FED.INI file contains example of
  70.     filling Jump List with compiler messages. Then this JumpList is used for
  71.     quick navigation between error locations (file, row, col) pointed by
  72.     these messages. Note that file listed in JumpList not necessarily should
  73.     be already opened to enable navigation - FED will open it for you if
  74.     necessary.
  75.  
  76.     Version 0.2.16 intoduced word wrap feature.
  77.  
  78.     Version 0.2.17 beside some bugfixes introduces new important feature -
  79.     pipe interface. First copy of FED opens a named pipe \PIPE\FED,
  80.     reads and executes commands from that pipe. If copy of FED
  81.     which holds pipe is closed and other copy of FED is running,
  82.     then pipe will be reopened by that copy. If multiple copies
  83.     of FED is running and copy holding the pipe is closed, then
  84.     any copy may became a new pipe holder. There is no particular
  85.     order in which ownership will be transferred.
  86.     Each command begins with keyword followed by parameters. At
  87.     present pipe interface supports 3 commands:
  88.  
  89.     - open          (syntax: open <file>)
  90.     - cursor        (syntax: cursor <row>x<col>)
  91.     - execute       (syntax: execute <FED macro>)
  92.  
  93.     Any command can be executed by sending command in pipe using
  94.     CMD.EXE echo command:
  95.  
  96.         echo open FED.INI>\pipe\fed
  97.         echo cursor 5x6>\pipe\fed
  98.         echo execute PgUp>\pipe\fed
  99.  
  100.     For long commands it's possible to store command in file and
  101.     send file in pipe using 'type' or 'copy' commands.
  102.  
  103.     Now FED supports 'single instance' feature. In order to used it,
  104.     just open files using FED and '-p' command line parameter as
  105.     follows:
  106.  
  107.         FED -p <file>
  108.  
  109.     Note the whitespace between command line switch and file name.
  110.     If there is no running copy of FED, then parameter is ignored and
  111.     file is opened in current copy of FED. If there is other copy
  112.     of FED is running, then file will be opened in that copy and
  113.     current copy will exit.
  114.  
  115. FED Configuration.
  116.  
  117.     FED is configured via simple ASCII file called FED.INI.
  118.     This file contains all configurable parameters and key bindings.
  119.  
  120.     NOTE: Configurable parameters have default values, but key
  121.           bindings have not. This means that FED does not work
  122.           without INI file.
  123.  
  124.     Sample FED.INI file is included into package.
  125.     You can use it as a base for your own configuration.
  126.     FED.INI should be placed in the same directory as FED.EXE.
  127.  
  128.  
  129.   Format of FED.INI
  130.  
  131.     FED.INI is a simple ASCII file which consists of variable assignments,
  132.     comments and empty strings. Comments and empty strings are ignored.
  133.     Comment is a line started with ';','/' or '#' (without quotes).
  134.  
  135.     Variable assignments are just pairs <variable>=<value>.
  136.     During processing of 'value' part back slash (\) is threated
  137.     as a escape character. This allows to insert into 'value'
  138.     special characters: '\n', '\r', '\t'. Other characters following
  139.     backslash are inserted as is. If you need to insert backslash
  140.     as is, it should be prepended by backslash, i.e. doubled:
  141.  
  142.         \\ -> \
  143.         \\\\ -> \\
  144.  
  145.     and so on. This rule is also true for REXX macro.
  146.  
  147.     Each configurable parameter have preferred name. Type of values which may
  148.     be assigned to variable depends on variable. Some of them are numbers,
  149.     some - strings.
  150.  
  151.     Numeric values may be decimal or hexadecimal.
  152.     Hexadecimal values should be preceded by 0x, exactly as in C/C++.
  153.  
  154.     String value consists of one or more "segments".
  155.     Each segment is quoted string.
  156.  
  157.     String values should be in single or double quotes.
  158.     Quotes can't be escaped, so if you need to insert single quote, you
  159.     should use it in double quotes quoted string, and if you need double
  160.     quote, you should use it in single quotes quoted string.
  161.     If you need to continue string on the next line, close quote, add ','
  162.     at the end of line and open quote on the next line.
  163.     These rules are very similar to those in REXX language but
  164.     not completely equal.
  165.  
  166.     All configurable parameters and variable types are listed below
  167.     (short descriptions follow this list):
  168.  
  169.     color.app.default             - number
  170.     color.app.status              - number
  171.     color.dialog.default          - number
  172.     color.dialog.hilite           - number
  173.     color.edit.comment            - number
  174.     color.edit.const              - number
  175.     color.edit.default            - number
  176.     color.edit.eof                - number
  177.     color.edit.function           - number
  178.     color.edit.ident              - number
  179.     color.edit.number             - number
  180.     color.edit.preproc            - number
  181.     color.edit.selection          - number
  182.     color.edit.semicol            - number
  183.     color.edit.stdword            - number
  184.     color.edit.xnumber            - number
  185.     color.line.active.comment     - number
  186.     color.line.active.const       - number
  187.     color.line.active.default     - number
  188.     color.line.active.eof         - number
  189.     color.line.active.function    - number
  190.     color.line.active.ident       - number
  191.     color.line.active.number      - number
  192.     color.line.active.preproc     - number
  193.     color.line.active.selection   - number
  194.     color.line.active.semicol     - number
  195.     color.line.active.stdword     - number
  196.     color.line.active.xnumber     - number
  197.     color.line.inactive.comment   - number
  198.     color.line.inactive.const     - number
  199.     color.line.inactive.default   - number
  200.     color.line.inactive.eof       - number
  201.     color.line.inactive.function  - number
  202.     color.line.inactive.ident     - number
  203.     color.line.inactive.number    - number
  204.     color.line.inactive.preproc   - number
  205.     color.line.inactive.selection - number
  206.     color.line.inactive.semicol   - number
  207.     color.line.inactive.stdword   - number
  208.     color.line.inactive.xnumber   - number
  209.     color.list.active.current     - number
  210.     color.list.active.currsel     - number
  211.     color.list.active.default     - number
  212.     color.list.active.selection   - number
  213.     color.list.inactive.current   - number
  214.     color.list.inactive.currsel   - number
  215.     color.list.inactive.default   - number
  216.     color.list.inactive.selection - number
  217.     color.menu.active.current     - number
  218.     color.menu.active.currsel     - number
  219.     color.menu.active.default     - number
  220.     color.menu.active.selection   - number
  221.     color.static.default          - number
  222.     color.static.hilite           - number
  223.  
  224.     cursor.shape.insert           - number
  225.     cursor.shape.overwrite        - number
  226.  
  227.     editor.default.format         - number
  228.     editor.force.pm               - number - obsolete
  229.     editor.helptext               - string
  230.     editor.hiliting               - string
  231.     editor.statusline             - string
  232.     editor.tabwidth               - number
  233.     editor.untitled               - string
  234.     editor.ctrlbreak.action       - number
  235.     editor.no.ea                  - number
  236.     editor.statuspos              - number
  237.     editor.verbose.search         - number
  238.     editor.default.wordwrap.state - number - new
  239.     editor.default.wordwrap.margin- number - new
  240.     mouse.event.mask              - number
  241.     mouse.sense.shift             - number
  242.  
  243. Short description of variables
  244.  
  245.   Variables "color.*" contain decimal or hexadecimal color values of
  246.     different parts of editor. Colors are usual text mode character attributes,
  247.     where high order nibble (high order 4 bits of byte) is responsible for
  248.     background color, and lower order nibble - for foreground (character) color.
  249.     Note, that input line in dialog is exactly the same object as full editor
  250.     window, but with highlighting turned off. This causes full list of colors
  251.     for input line to appear in list, but only part of them are really used
  252.     (.default and .selection).
  253.  
  254.   Variable "editor.tabwidth" is responsible for tab character representation
  255.     in space characters number.
  256.  
  257.   Variable "editor.hiliting" contains string which is responsible for how the
  258.     editor will try to guess highlighting for opened file.
  259.     This string have the following format:
  260.  
  261.         "MODE_NAME_1:*.mask1;*.mask2;...\n",
  262.         "MODE_NAME_2:*.mask3;*.mask4;...\n".
  263.  
  264.     Note trailing '\n' sequence, it is used for delimiting highlighting mode
  265.     strings.
  266.  
  267.   Variable "editor.untitled" contains default name for '.Untitled' or newly
  268.     created files.
  269.  
  270.   Variables "cursor.shape.insert" and "cursor.shape.overwrite" contains
  271.     numbers which are responsible for cursor shape. This number means relative
  272.     (in percents of full cursor height) position from which shape starts. In
  273.     other words  0 - means baseline, 100 - means full character size.
  274.  
  275.   Variable "editor.statusline" represents format in which editor will
  276.     display status information. This string can contain following format rules:
  277.  
  278.     %n -  file number 0-9
  279.     %r -+ row
  280.     %c -+ col
  281.     %d -+ current char (decimal)
  282.     %x -  current char (hexadecimal)
  283.     %h -  highlighting mode
  284.     %a -  autoindent flag ('I'|' ')
  285.     %u -  update flag ('*'|' ')
  286.     %f -+ filename
  287.     %t -  file type: Unix ('\0x0a' delimited)/DOS ('\x0d\x0a' delimited)
  288.     %l -  placeholder for current codepage (LANG) setting
  289.     %p -+ relative position in file
  290.     %w -  word wrap status (' '|'W'|'M')
  291.  
  292.     For formats marked with '+' between % and format can be placed optional
  293.     digit. This digit means minimal length of representation. Unused positions
  294.     will be filled with zeroes. Other characters will be shown in the status
  295.     line as is.
  296.     By default this string has following contents :
  297.         "L%3r:C%2c %h [%u%f]".
  298.  
  299.     This means:
  300.         character L,
  301.         followed by 3-digits number of row,
  302.         semicolon,
  303.         character C,
  304.         followed by 2-digits column number,
  305.         space,
  306.         highlighting mode name,
  307.         character '[',
  308.         update flag,
  309.         current file name,
  310.         character ']'.
  311.     Example of status line with default format line:
  312.     'L001:C01 REXX [*C:\startup.cmd]'
  313.  
  314.     Default FED.INI specifies another format line:
  315.         "(%p%%) L%4r:C%2c CHR(%xh,%3dd) [%h:%a:%u:%t:%30f] %l"
  316.  
  317.     Example status line for it (right now when I'm editing this file):
  318.     '(42%) L0270:C05 CHR(20h,032d) [none:I:*:D:C:\Work\FOpS\config.txt░░░░░░░]'
  319.  
  320.  
  321.   Variable "editor.helptext" contains text which will be shown for command
  322.     'HelpScreen' (see below description of this command). Text should be
  323.     formatted on 'per line' basis, and each line should be followed by '\n'
  324.     sequence.
  325.  
  326.   Variable "editor.force.pm" - obsolete.
  327.  
  328.   Variable "editor.default.format" - set default format (Unix/DOS) for new
  329.     files. Default (unassigned) value is 0, which means DOS file format.
  330.     Any value other than 0 sets Unix file format.
  331.  
  332.   Variable "editor.ctrlbreak.action" defines what editor will do
  333.     on the Ctrl+Break key press:
  334.  
  335.     0 - die with message box (default)
  336.     1 - die without messages, all changes are lost
  337.     2 - die with saving all changes
  338.     3 - ignore Ctrl-Break
  339.  
  340.   Variable "editor.no.ea" disables writing EA's. If EA is present
  341.     then it still used but not updated.
  342.  
  343.   Variable "editor.statuspos" if it is >0 tells FED to place
  344.     status line at the top of screen.
  345.  
  346.   Variable "editor.verbose.search" to produce more messages during search.
  347.  
  348.   Variable "mouse.event.mask" defines a mask for mouse events which will
  349.     be used to move cursor. Following events are recognized:
  350.         MOTION                 0x01
  351.         MOTION_WITH_BN1_DOWN   0x02
  352.         BN1_DOWN               0x04
  353.         MOTION_WITH_BN2_DOWN   0x08
  354.         BN2_DOWN               0x10
  355.         MOTION_WITH_BN3_DOWN   0x20
  356.         BN3_DOWN               0x40
  357.  
  358.     Default value is 0x06, which is equal to MOTION_WITH_BN1_DOWN | BN1_DOWN.
  359.     Setting variable to 0 disables processing of mouse events.
  360.     Be careful with MOTION flag: enabling it will cause cursor movement
  361.     on all mouse moves.
  362.  
  363.   Variable "mouse.sense.shift" makes moving cursor with mouse sesitive to
  364.     Shift keys. If variable is not zero then moving cursor with mouse
  365.     will unmark previously maked block if Shift key is not pressed and
  366.     will mark block if Shift key is pressed.
  367.  
  368.   Variable "editor.default.wordwrap.state" determines default state
  369.     of the word wrap feature and default state of the merge feature.
  370.     Merge state determines if editor will merge remaider of the string which
  371.     exceeds specified limit with next text in next line.
  372.     Default state is used when file is opened or created new. Following
  373.     values are recognized:
  374.  
  375.         Value Wrap     Merge
  376.         0     off       off
  377.         1     on        off
  378.         2     off       on
  379.         3     on        on
  380.  
  381.     Default value of this variable is 2, so merge is on and word wrap is off.
  382.  
  383.   Variable "editor.default.wordwrap.margin" determines right margin of the
  384.     text for word wrap. By default this value is set to 78.
  385.  
  386. Key bindings
  387.  
  388.     Each key binding is a pair <key> = <action>
  389.     Key name starts with 'kb' followed by zero or more
  390.     special prefixes (Alt, Ctrl, Shift), followed by key name.
  391.     Order of special prefixes: Alt, Ctrl, Shift
  392.     This means that if you want to bind combination of keys Shift, Ctrl and
  393.     key F10, pressed simultaneously, you should name this key kbCtrlShiftF10.
  394.     Case of characters used in key name is ignored.
  395.  
  396.     All key names are listed below:
  397.  
  398.     kb0, kb1, kb2, kb3, kb4, kb5, kb6, kb7, kb8, kb9
  399.     kbA, kbB, kbBackSlash, kbBksp, kbC, kbCenter, kbComma,
  400.     kbD, kbDel, kbDiv, kbDown, kbE, kbEnd, kbEnter, kbEqual,
  401.     kbEsc, kbF, kbF1, kbF10, kbF11, kbF12, kbF2, kbF3, kbF4, kbF5,
  402.     kbF6, kbF7, kbF8, kbF9, kbG, kbGrDiv, kbGrEnter, kbGrMinus,
  403.     kbGrMul, kbGrPlus, kbH, kbHome, kbI, kbIns, kbJ, kbK, kbL,
  404.     kbLbracket, kbLeft, kbM, kbMinus, kbN, kbO, kbP, kbPgDown, kbPgUp,
  405.     kbPoint, kbQ, kbQuote, kbR, kbRbracket, kbRight, kbS, kbSemicolon,
  406.     kbSpace, kbT, kbTab, kbTilde, kbU, kbUp, kbV, kbW, kbX, kbY, kbZ
  407.  
  408.     Actions are sequences of quoted blocks of text and function names
  409.     Quoted text can contain escape sequences '\t' (insert TAB character)
  410.     and '\n' (emulates Enter key pressing).
  411.     For quoting may be used either single (') or double (") quotes,
  412.     but each block should be quoted with one type of them.
  413.     Case of key names and actions is ignored
  414.  
  415.     Actions may be continued in the next line by adding ',' at the end of line.
  416.   NOTE! key actions should not contain comments and continuation character (,)
  417.     and should not be inside quotes.
  418.  
  419.     Full list of available functions with short descriptions:
  420.  
  421.     Abort            - abort editor without saving changes
  422.     Bind             - interpret current file as a FED configuration file
  423.     Bksp             - delete previous character
  424.     Close            - close current file
  425.     Copy             - copy marked block into clipboard
  426.     Copyright        - invoke copyright message
  427.     Cut              - cut marked block and move it into clipboard
  428.     Del              - delete current character or clear marked block
  429.     DelLine          - delete current line
  430.     DelToEOL         - delete from current position to the end of line
  431.     DelWordLeft      - delete word left from cursor
  432.     DelWordRight     - delete word right from cursor
  433.     Down             - move cursor one line down
  434.     DownMark         - move cursor one line down and extend marked block
  435.     DupLine          - duplicate current line
  436.     End              - move cursor to end of line
  437.     EndMark          - move cursor to end of line and extend marked block
  438.     Exit             - exit with acknowledgement for saving files
  439.     FileBegin        - move cursor to the beginning of file
  440.     FileBeginMark    - move cursor to the beginning of file and extend marked block
  441.     FileEnd          - move cursor to the end of file
  442.     FileEndMark      - move cursor to the end of file and extend marked block
  443.     FileList         - invoke list of opened files
  444.     FlipAutoIndent   - toggle autoindent on/off
  445.     FlipBlockMode    - switch between rectangular/stream block
  446.     FlipHiliting     - switch highlighting between C++/REXX/MAKE/ASM/HTML/none
  447.     FlipType         - switch file type between UNIX/DOS formats
  448.     FlipWordWrap     - toggle state of word wrapping
  449.     FlipWordWrapMerge- toggle state of merge flag
  450.     HelpScreen       - invoke dialog with help text
  451.     HiliteSelect     - select hiliting mode from menu
  452.     Home             - move cursor to the beginning of line
  453.     HomeMark         - move cursor to the beginning of line and extend marked block
  454.     Indent           - indent block or line by one character right
  455.     Ins              - toggle insert/overwrite mode
  456.     InsDate          - insert current date at current cursor position
  457.     InsFileName      - insert current file name at current cursor position
  458.     InsFileNameShort - insert current file name with path name stripped
  459.     JumpCol          - invoke dialog and move cursor to the column entered in dialog
  460.     JumpLine         - invoke dialog and move cursor to the line entered in dialog
  461.     Left             - move cursor one character left
  462.     LeftMark         - move cursor one character left and extend marked block
  463.     Load             - invoke 'Open File' dialog
  464.     Lower            - convert current character/marked block to lower case
  465.     MacroRecEnd      - end recording and invoke 'Assign key' dialog
  466.     MacroRecStart    - start recording of keyboard macro
  467.     MarkGo0-9        - go to the position saved as bookmark 0-9
  468.     MarkSet0-9       - set bookmark 0-9
  469.     MatchBracket     - find matching bracket
  470.     MatchBracketMark - find matching bracket and extend marked block
  471.     New              - open new window with '.Untitled' file
  472.     NextFile         - switch to the next opened file
  473.     OpenJumpList0-9  - Show jump list 0-9
  474.     Paste            - paste block from clipboard
  475.     PgDn             - move cursor one page down
  476.     PgDnmark         - move cursor one page down and extend marked block
  477.     PgUp             - move cursor one page up
  478.     PgUpMark         - move cursor one page up and extend marked block
  479.     PrevFile         - switch to the previous opened file
  480.     Right            - move cursor one character right
  481.     RightMark        - move cursor one character right and extend marked block
  482.     Save             - save current file, invoke 'Save As' dialog for '.Untitled'
  483.     SaveAll          - save all opened files
  484.     SaveAs           - invoke 'Save As' dialog
  485.     Search           - invoke 'Search' dialog
  486.     SearchAgain      - repeat last search operation
  487.     SetCP            - change current Code Page
  488.     Sort             - sort lines using rectangular block as a set of keys
  489.     Undo             - undo action
  490.     UnIndent         - unindent block one character left
  491.     Up               - move cursor one line up
  492.     UpMark           - move cursor one line up and extend marked block
  493.     Upper            - convert current char/marked block to upper case
  494.     WordLeft         - move cursor one word left
  495.     WordLeftMark     - move cursor one word left and extend marked block
  496.     WordRight        - move cursor one word right
  497.     WordRightMark    - move cursor one word right and extend marked block
  498.  
  499. Some notes about REXX API interface.
  500.  
  501.     FED REXX API is still under construction. There are some known bugs
  502.     (especially with loading REXX code with curly braces inside '{}'),
  503.     but this API became more or less useful and short (very short) explanation
  504.     below tries to fill some gaps in information about this interface.
  505.  
  506.     List of REXX API's exported by FED consists of two parts. First path
  507.     is just the same functions as key macro functions described above.
  508.     All of these functions do not have parameters.
  509.  
  510.     fedAbort              fedLeft
  511.     fedBksp               fedLeftmark
  512.     fedClose              fedLoad
  513.     fedCopy               fedLower
  514.     fedCopyright          fedMacrorecend
  515.     fedCut                fedMacrorecstart
  516.     fedDel                fedMatchbracket
  517.     fedDelline            fedMatchbracketmark
  518.     fedDeltoeol           fedNew
  519.     fedDelwordleft        fedNextfile
  520.     fedDelwordright       fedPaste
  521.     fedDown               fedPgdn
  522.     fedDownmark           fedPgdnmark
  523.     fedEnd                fedPgup
  524.     fedEndmark            fedPgupmark
  525.     fedExit               fedPrevfile
  526.     fedFilebegin          fedRight
  527.     fedFilebeginmark      fedRightmark
  528.     fedFileend            fedSave
  529.     fedFileendmark        fedSaveall
  530.     fedFilelist           fedSaveas
  531.     fedFlipautoindent     fedSearch
  532.     fedFlipblockmode      fedSearchAgain
  533.     fedFliphiliting       fedSort
  534.     fedHelpscreen         fedUndo
  535.     fedHome               fedUnindent
  536.     fedHomemark           fedUp
  537.     fedIndent             fedUpmark
  538.     fedIns                fedUpper
  539.     fedInsdate            fedWordleft
  540.     fedInsfilename        fedWordleftmark
  541.     fedInsfilenameshort   fedWordright
  542.     fedJumpcol            fedWordrightmark
  543.     fedJumpline
  544.  
  545.     Second group is more functional and does not have counterparts in macro
  546.     function list.
  547.  
  548.     fedFillJumpList       - Fill JumpList with information
  549.     fedMsgBox             - Open simple message box and wait for key press.
  550.     fedOpenJumpList       - Show filled JumpList
  551.     fedOpenFile           - Open file or switch to it if already open
  552.     fedInsChar            - Insert sequence of characters
  553.     fedGetChar            - Get current char/line/substring
  554.     fedSet                - Set FED values
  555.     fedGet                - Get FED values
  556.     fedFind               - Find string in the current file
  557.     fedInput              - Invoke prompt and get user input
  558.     fedGetClip            - Get clipboard content
  559.     fedSetClip            - Set clipboard content
  560.  
  561.     REXX pool variable interface.
  562.  
  563.         REXX Pool is a feature that allows REXX scripts bout to
  564.         keys save and restore variables between calls.
  565.  
  566.     fedVarSet             - store variable
  567.     fedVarGet             - get variable value
  568.     fedVarDrop            - drop variable
  569.  
  570. Detailed description.
  571.  
  572. rc = fedFillJumpList(stem, jumplist)
  573.  
  574.     stem - name of variable filled as follows:
  575.             stem.jump_len       number of items in stem
  576.             stem.XX.jump_header what to show in list box
  577.             stem.XX.jump_file   file name
  578.             stem.XX.jump_row    row to jump (0 - do not change position)
  579.             stem.XX.jump_col    col to jump (0 - do not change position)
  580.  
  581.             Where XX is a number from 0 up to stem.jump_len-1.
  582.  
  583.             NOTE: all variables should be filled, even if they are not used.
  584.                   For example: if there is no column to jump in list item 5,
  585.                   variable stem.5.jump_col should be set to 0.
  586.  
  587.     jumplist - number of jump list to use. Range: 0-9
  588.  
  589.     rc - success, negative value - error.
  590.  
  591.  
  592. rc = fedMsgBox(message)
  593.  
  594.     message - text of message to show.
  595.  
  596.     rc - success, negative value - error.
  597.  
  598.  
  599. rc = fedOpenJumpList(jumplist)
  600.  
  601.     jumplist - number of jump list to use. Range: 0-9
  602.  
  603.     rc - success, negative value - error.
  604.  
  605.  
  606. rc = fedOpenFile(filename)
  607.  
  608.     filename - file name to open or switch to.
  609.  
  610.     rc - success, negative value - error.
  611.  
  612.  
  613. rc = fedInsChar(string)
  614.  
  615.     string - text to insert.
  616.              Text will be inserted from current cursor position.
  617.  
  618.     rc - success, negative value - error.
  619.  
  620.  
  621. rc = fedGetChar(row, [col], [len])
  622.  
  623.     row - line number in current file to get text
  624.     col - start column for text to get
  625.     len - length of substring to return
  626.  
  627.     rc - success, negative value - error.
  628.  
  629.     If len parameter is omitted, rest of string is returned.
  630.     If col is omitted, full line is returned (starting from column 1).
  631.  
  632. rc = fedSet(selector, [value])
  633.  
  634.     selector - variable to set
  635.     value    - new variable value
  636.  
  637.     I - Insert mode  (if value is omitted, mode flips between insert/replace)
  638.     H - Highlighting mode (if value is omitted, mode is switched through all modes)
  639.     A - Autoindent mode (if value is omitted, mode flips between on/off)
  640.     M - Marking state (if value is omitted marking mode is switched off)
  641.     R - Go to line
  642.     C - Go to column
  643.     B - Switch to buffer with given handle
  644.     N - Rename buffer to given name
  645.     WW - Word wrap margin
  646.     WS - Word wrap status
  647.     WM - Word wrap merge flag
  648.  
  649.     rc - success, negative value - error.
  650.  
  651. rc = fedGet(selector)
  652.  
  653.     selector - variable to return
  654.  
  655.     rc - success, negative value - error.
  656.  
  657.     Supported selectors:
  658.  
  659.     I  - Insert mode
  660.     H  - Highlighting mode
  661.     A  - Autoindent state
  662.     M  - Marking state
  663.     R  - Current absolute Row
  664.     C  - Current absolute Col
  665.     CH - Changed status
  666.     CR - Cursor Row (cursor screen coordinate)
  667.     CC - Cursor Col (cursor screen coordinate)
  668.     B  - Current buffer handle
  669.     ?  - Number of opened buffers
  670.     N  - Current buffer name
  671.     X  - Window rectangle size X (Screen columns)
  672.     Y  - Window rectangle size Y (Screen rows)
  673.     L  - Number of lines in file
  674.     D  - FED startup directory (current directory when FED was invoked)
  675.     WW - Word wrap margin (>0)
  676.     WS - Word wrap status (1/0)
  677.     WM - Word wrap merge flag (1/0)
  678.  
  679.  
  680. rc = fedFind(flags, pattern)
  681.  
  682.     flags - find flags
  683.  
  684.     pattern - pattern to look for
  685.  
  686.     rc - success, negative value - error.
  687.  
  688.  
  689.     Supported flags:
  690.  
  691.     B - Find in backward direction
  692.     G - Global search (from beginning to end or vice versa, depending on B flag)
  693.     I - Ignore case
  694.     E - Regexp. Pattern is regular expression
  695.  
  696.  
  697. rc = fedInput([prompt[, row [, col]]])
  698.  
  699.     prompt - name for the input window
  700.     row    - suggested row for the prompt
  701.     col    - suggested col for the prompt
  702.  
  703.     rc - user input is returned, otherwise empty string is returned.
  704.  
  705.  
  706. rc = fedGetClip()
  707.  
  708.     rc - clipboard content
  709.  
  710.  
  711. rc = fedSetClip(newtext)
  712.  
  713.     newtext - text to put in clipboard
  714.  
  715.  
  716. rc = fedVarSet(name[, value])
  717.  
  718.     if value is provided then variable is set,
  719.     otherwise variable is deleted
  720.  
  721.  
  722. rc = fedVarGet(name[, default])
  723.  
  724.     if variable does not present in pool, then it is created
  725.     and default value is returned if it is specified.
  726.  
  727. rc = fedVarDrop(name)
  728.  
  729.     Drops a set of variables whose names begins with 'name'
  730.  
  731.  
  732. rc = fedMenu(row, col, item1, ..., itemN)
  733.  
  734.     rc - 1...N      selected meny item on return
  735.     rc - 0          Esc was pressed
  736.     rc - negative   parameter error
  737.  
  738.     Displays a pop-up menu at specified location and process user
  739.     input until choice is made or Esc key is pressed.
  740.     To make text in menu item 'highlighted' brace it with tilde (~)
  741.     Also, first letter of highlighted text becomes a hotkey.
  742.     For example:
  743.         " ~T~est "
  744.     This menu item will have letter T highlighted and will be
  745.     select if user will press letter T on keyboard.
  746.  
  747.  
  748.  
  749.