home *** CD-ROM | disk | FTP | other *** search
/ C Programming Starter Kit 2.0 / SamsPublishing-CProgrammingStarterKit-v2.0-Win31.iso / bc45 / kbdsrc.pak / EPSILON.KB < prev    next >
Text File  |  1997-07-23  |  36KB  |  1,224 lines

  1. Script  EPSILON;
  2.  
  3. /***********************************************************************
  4.  
  5.             Epsilon keystoke emulation for Borland C++ IDE.
  6.  
  7.         This file contains a KEYMAPR script which partially emulates the
  8. Epsilon editor in the Borland C++ IDE. A complete description of the KEYMAPR
  9. language and compiler may be found in on-line help.
  10.  
  11. Most of the simple Epsilon commands have been fully implemented.  Most
  12. of the complex command have been either partially implemented or not
  13. implemented at all.  The macro names correspond to the names in
  14. the Espilon default macro set.  Below is a list of all the default commands.
  15.  
  16. IDE Binding   Epsilon Command            Comments
  17. -----------   ---------------            -------------------------
  18. Ctrl-G        abort                      not implemented
  19. <Esc>         alt_prefix                 built into keyboard tables
  20. Ctrl-Alt-W    append_next_kill
  21. Ctrl-U        argument                   not implemented
  22. Ctrl-B        backward_character
  23. <LfAr>        backward_character
  24. Ctrl-H        backward_delete_character
  25. <BkSp>        backward_delete_character
  26. Alt-<del>     backward_kill_level        point must be on ')', '}' or ']'
  27. Ctrl-Alt-H    backward_kill_word
  28. Alt-<BkSp>    backward_kill_word
  29. Ctrl-Alt-B    backward_level             point must be on ')', '}' or ']'
  30. Alt-[         backward_paragraph         not implemented
  31. Alt-<UpAr>    was backward_paragraph, remapped to move cursor to pane above.
  32. Alt-A         backward_sentence          not implemented
  33. Ctrl-<UpAr>   backward_sentence          not implemented
  34. Alt-B         backward_word
  35. Ctrl-<LfAr>   backward_word
  36. Ctrl-A        beginning_of_line
  37. Alt-<LfAr>    was beginning_of_line, remapped to move cursor to next pane to left
  38. Alt-,         beginning_of_window
  39. <Home>        beginning_of_window
  40. <F4>          bind_to_key                not implemented
  41. Ctrl-X+Ctrl-B bufed                      not implemented
  42. Alt-C         capitalize_word
  43.               case_indirect              built into keyboard tables
  44. <F7>          cd                         not implemented
  45. Alt-S         center_line                not implemented
  46. Ctrl-L        center_window
  47. Alt-~         change_modified            not implemented
  48. Ctrl-F2       compare_windows            not implemented
  49. Ctrl-X+C      compare_windows            not implemented
  50. Alt-W         copy_region
  51. Ctrl-F7       copy_to_file
  52. Ctrl-X+L      count_lines                not implemented
  53. Ctrl-^        ctrl-prefix                not implemented
  54. Ctrl-X+Ctrl-O delete_blank_lines         not implemented
  55. Ctrl-D        delete_character
  56. <Del>         delete_character
  57. Alt-\         delete_horizontal_space
  58. F1+C          describe_command           not implemented
  59. F1+K          describe_key               not implemented
  60. Ctrl-X+D      dired                      not implemented
  61. <Tab>         do_c_indent                inserts a TAB character
  62. Ctrl-N        down_line
  63. <DnAr>        down_line
  64. Ctrl-X+)      end_kbd_macro              toggles recording mode
  65. Ctrl-E        end_of_line
  66. Alt-<RgAr>    was end_of_line, remapped to move cursor to next pane to right
  67. Alt-.         end_of_window
  68. <End>         end_of_window
  69. Ctrl-<PgUp>   enlarge_window
  70. Ctrl-X+^      enlarge_window
  71. Alt-<PgUp>    enlarge_window_horiz
  72. Ctrl-X+@      enlarge_window_horiz
  73. Ctrl-M        enter_key
  74. Ctrl-X+Ctrl-X exchange_point_and_mark
  75. Ctrl-X+Ctrl-C exit                       not implemented
  76. Ctrl-X+Ctrl-Z exit_level                 not implemented
  77. Alt-Q         fill_paragraph             not implemented
  78. Alt-)         find_delimiter             same as backward_level
  79. Ctrl-X+Ctrl-F find_file
  80. Ctrl-F        forward_character
  81. <RgAr>        forward_character
  82. Ctrl-Alt-F    forward_level              point must be on '(', '{' or '['
  83. Alt-]         forward_paragraph          not implemented
  84. Alt-<DnAr>    was forward_paragraph, remapped to move cursor to pane below
  85. Alt-E         forward_sentence           not implemented
  86. Ctrl-<DnAr>   forward_sentence           not implemented
  87. Alt-F         forward_word
  88. Ctrl-<RgAr>   forward_word
  89. Alt-<         goto_beginning
  90. Ctrl-<Home>   goto_beginning
  91. Alt->         goto_end
  92. Ctrl-<End>    goto_end
  93. Ctrl-X+G      goto_line
  94. Ctrl-X+.      goto_tag                   browser menu
  95. <F1>          help
  96. Alt-?         help
  97. Ctrl-_        help
  98. Ctrl-S        incremental_search
  99. <Tab>         indent_previous            not implemented
  100. Ctrl-Alt-\    indent_region              same as indent_rigidly
  101. Ctrl-X+Ctrl-I indent_rigidly
  102. Ctrl-X+<Tab>  indent_rigidly
  103. Alt-<Tab>     indent_under
  104. Ctrl-X+I      insert_file
  105. Ctrl-X+K      kill_buffer                not implemented
  106. Ctrl-Alt-K    kill_level                 point must be on '(', '{' or '['
  107. Ctrl-K        kill_line
  108. Ctrl-W        kill_region
  109. Alt-K         kill_sentence              not implemented
  110. Ctrl-X+0      kill_window
  111. Alt-D         kill_word
  112. Ctrl-<F4>     last_kbd_macro
  113. Ctrl-X+E      last_kbd_macro
  114. <F3>          load_bytes                 not implemented
  115. Alt-L         lower_case_word
  116. Ctrl-X+M      make
  117. Alt-H         mark_paragraph             not implemented
  118. <Space>       maybe_break_line           not implemented
  119. Ctrl-X+Alt-N  name_kbd_macro             not implemented
  120. Alt-X         named_command
  121. <F2>          named_command
  122. Ctrl-X+Ctrl-N next_error
  123. Ctrl-V        next_page
  124. <PgDn>        next_page
  125. Ctrl-<F5>     next_video                 not implemented
  126. Alt-<End>     next_window
  127. Ctrl-X+N      next_window
  128. Ctrl-X+1      one_window
  129. Ctrl-O        open_line
  130. <Ins>         overwrite_mode
  131. Ctrl-X+,      pluck_tag                  browser menu
  132. Alt-V         previous_page
  133. <PgUp>        previous_page
  134. Alt-<Home>    previous_window
  135. Ctrl-X+P      previous_window
  136. Ctrl-X+Ctrl-E push
  137. Alt-%         query_replace
  138. Ctrl-Q        quoted_insert
  139. Ctrl-X+R      redo
  140. <F10>         redo
  141. Ctrl-<F10>    redo_changes               same as redo
  142. Ctrl-X+Ctrl-R redo_changes               same as redo
  143. Alt-*         regex_replace
  144. Ctrl-Alt-S    regex_search
  145. Alt-&         replace_string
  146. Ctrl-R        reverse_incremental_search
  147. Ctrl-Alt-R    reverse_regex_search
  148. Ctrl-X+S      save_all_buffers
  149. Alt-Z         scroll_down
  150. Alt-{         scroll_left                not implemented
  151. Alt-}         scroll_right               not implemented
  152. Ctrl-Z        scroll_up
  153. Ctrl-X+B      select_buffer
  154. Ctrl-X+Alt-,  select_tag_file            not implemented
  155. Ctrl-X+F      set_fill_column            not implemented
  156. Ctrl-@        set_mark
  157. Alt-@         set_mark
  158. <F8>          set_variable               not implemented
  159. Alt-<F5>      set_video                  not implemented
  160. Ctrl-X+=      show_point                 not implemented
  161. Ctrl-<F8>     show_variable              not implemented
  162. Ctrl-<PgDn>   shrink_window
  163. Alt-<PgDn>    shrink_window_horiz
  164. Ctrl-X+2      split_window
  165. Ctrl-X+5      split_window_vertically
  166. Ctrl-X+(      start_kbd_macro            toggle macro recording
  167. Ctrl-X+Ctrl-M start_process              not implemented
  168. Ctrl-C        stop_process               not implemented
  169. Ctrl-X+Ctrl-Alt-I
  170.               tabify_region              not implemented
  171. Ctrl-X+Ctrl-<Tab>
  172.               tabify_region              not implemented
  173. Ctrl-X+Alt-.  tag_files                  not implemented
  174. Alt-M         to_indentation
  175. Ctrl-T        transpose_characters
  176. Ctrl-X+Ctrl-T transpose_lines
  177. Alt-T         transpose_words
  178. Ctrl-X+U      undo
  179. F9            undo
  180. Ctrl-<F9>     undo_changes               same as undo
  181. Ctrl-X+Ctrl-U undo_changes               same as undo
  182. Ctrl_X+Alt-I  untabify_region            not implemented
  183. Ctrl-P        up_line
  184. <UpAr>        up_line
  185. Alt-U         upper_case_word
  186. Ctrl-X+Ctrl-V visit_file                 not implemented
  187. Ctrl-X+Ctrl-W write_file
  188. Ctrl-X+W      write_region
  189. Ctrl-<F3>     write_state                not implemented
  190. Ctrl-X+W      write_region
  191. Ctrl-Y        yank
  192. Alt-Y         yank_pop                   not implemented
  193.  
  194. ********************************************************************/
  195.  
  196. /******* Compatibility Macros ********/
  197. MACRO WordLeft
  198.   CursorLeftSkipNonWord;
  199.   CursorLeftSkipWordStream;
  200.   FixScreenPos;
  201. END;
  202.  
  203. MACRO EpsilonMarkKillLine
  204.   SetBlockBeg;
  205.   IF InqCursorPastEOL THEN
  206.     CursorCharRight
  207.   ELSE
  208.     RightOfLine
  209.   ENDIF;
  210.   SetBlockEnd;
  211.   FixScreenPos;
  212. END;
  213.  
  214. /*******************************************************************
  215.         KBDL SCRIPTS TO EMULATE EPSILON FROM THE BORLAND C++ IDE     
  216.  *******************************************************************/
  217.  
  218. /* MACRO abort                         not implemented */
  219. /* MACRO alt_prefix                 built into keyboard */
  220.  
  221. MACRO append_next_kill
  222.     ClipAppendNextCut;
  223. END;
  224.  
  225. /* MACRO argument                 not implemented */
  226.  
  227. MACRO backward_character
  228.     CursorSwitchedLeft;
  229.     ClipReplaceNextCut;
  230. END;
  231.  
  232. MACRO backward_delete_character
  233.     BackspaceDelete;
  234.     ClipReplaceNextCut;
  235. END;
  236.  
  237. MACRO backward_kill_level         /* point must be on ')', '}' or ']' */
  238.     SetNonInclusiveBlock;
  239.     CursorCharRight;
  240.     SetBlockEnd;
  241.     MatchPairBackward;
  242.     SetBlockBeg;
  243.     ClipMaybeAppendCut;
  244.     ClipAppendNextCut;
  245. END;
  246.  
  247. MACRO backward_kill_word
  248.     SetBlockEnd;
  249.     CursorLeftSkipNonWord;
  250.     CursorLeftSkipWord;
  251.     SetBlockBeg;
  252.     HighlightBlock;
  253.     ClipMaybeAppendCut;
  254.     FixScreenPos;
  255.     ClipAppendNextCut;
  256. END;
  257.  
  258. MACRO backward_level                 /* point must be on ')', '}' or ']' */
  259.     MatchPairBackward;
  260.     ClipReplaceNextCut;
  261. END;
  262.  
  263. /* MACRO backward_paragraph         not implemented */
  264. /* MACRO backward_sentence         not implemented */
  265.  
  266. MACRO backward_word
  267.     WordLeft;
  268.     ClipReplaceNextCut;
  269. END;
  270.  
  271. MACRO beginning_of_line
  272.     LeftOfLine;FixScreenPos;
  273.     ClipReplaceNextCut;
  274. END;
  275.  
  276. MACRO beginning_of_window
  277.     TopOfScreen;
  278.     ClipReplaceNextCut;
  279. END;
  280.  
  281. /* MACRO bind_to_key                 not implemented */
  282. /* MACRO bufed                         not implemented */
  283.  
  284. MACRO capitalize_word
  285.     SetNonInclusiveBlock;
  286.     HideBlock;
  287.     CursorRightSkipNonWord;
  288.     SetBlockBeg;
  289.     CursorRightSkipWord;
  290.     SetBlockEnd;
  291.     HighlightBlock;
  292.     LowerCaseBlock;
  293.     MoveToBlockBeg;
  294.     HideBlock;
  295.     SetBlockBeg;
  296.     CursorRight;
  297.     SetBlockEnd;
  298.     HighlightBlock;
  299.     UpperCaseBlock;
  300.     CursorRightSkipWord;
  301.     HideBlock;
  302.     ClipReplaceNextCut;
  303.     FixScreenPos;
  304. END;
  305.  
  306. /* MACRO center_line                 not implemented */
  307.  
  308. MACRO center_window
  309.     CenterLineInWindow
  310. END;
  311.  
  312. /* MACRO change_modified         not implemented */
  313. /* MACRO compare_windows         not implemented */
  314.  
  315. MACRO copy_region
  316.     HideBlock;
  317.     SwapPrevPos;
  318.     SetBlockBeg;
  319.     SwapPrevPos;
  320.     SetBlockEnd;
  321.     HighlightBlock;
  322.     IF InqValidBlock THEN
  323.       BEGIN
  324.         ClipCopy;
  325.         ClipReplaceNextCut;
  326.       END
  327.     ELSE
  328.       BEGIN
  329.         HideBlock;
  330.         SetBlockBeg;
  331.         SwapPrevPos;
  332.         SetBlockEnd;
  333.         SwapPrevPos;
  334.         HighlightBlock;
  335.         IF InqValidBlock THEN
  336.           BEGIN
  337.             ClipCopy;
  338.             ClipReplaceNextCut;
  339.           END;
  340.         ENDIF
  341.       END
  342.     ENDIF
  343. END;
  344.  
  345. MACRO copy_to_file
  346.     SaveFileAs;
  347.     ClipReplaceNextCut;
  348. END;
  349.  
  350. /* MACRO count_lines                 not implemented */
  351. /* MACRO ctrl-prefix                 not implemented */
  352. /* MACRO delete_blank_lines         not implemented */
  353.  
  354. MACRO delete_character
  355.     DeleteChar;
  356.     ClipReplaceNextCut;
  357. END;
  358.  
  359. MACRO delete_horizontal_space
  360.     CursorLeftSkipWhite;
  361.     SetTempPos;
  362.     CursorRightSkipWhite;
  363.     SetTempEndPos;
  364.     DeleteTempBlock;
  365.     FixScreenPos;
  366.     ClipReplaceNextCut;
  367. END;
  368.  
  369. /* MACRO describe_command         not implemented */
  370. /* MACRO describe_key                 not implemented */
  371. /* MACRO dired                         not implemented */
  372.  
  373. MACRO do_c_indent                 /* inserts a TAB character */
  374.     LiteralChar(9);
  375.     ClipReplaceNextCut;
  376. END;
  377.  
  378. MACRO down_line
  379.     CursorDown;
  380.     ClipReplaceNextCut;
  381. END;
  382.  
  383. MACRO end_kbd_macro                 /* toggles recording mode */
  384.     RecordKeyMacro;
  385. END;
  386.  
  387. MACRO end_of_line
  388.     RightOfLine;FixScreenPos;
  389.     ClipReplaceNextCut;
  390. END;
  391.  
  392. MACRO end_of_window
  393.     BottomOfScreen;
  394.     ClipReplaceNextCut;
  395. END;
  396.  
  397. MACRO enlarge_window
  398.     MovePaneEdge(4);
  399. END;
  400.  
  401. MACRO enlarge_window_horiz
  402.     MovePaneEdge(5);
  403. END;
  404.  
  405. MACRO enter_key
  406.     LiteralChar(13);
  407.     ClipReplaceNextCut;
  408. END;
  409.  
  410. MACRO exchange_point_and_mark
  411.     SwapPrevPos;
  412.     FixScreenPos;
  413. END;
  414.  
  415. MACRO exit
  416.     Quit;
  417. END;
  418.  
  419. MACRO exit_level                 /* Leaves editor - Enables Menus */
  420.     Quit;
  421. END;
  422.  
  423. /* MACRO fill_paragraph                 not implemented */
  424.  
  425. MACRO find_delimiter                 /* same as backward_level */
  426.     MatchPairForward;
  427.     ClipReplaceNextCut;
  428. END;
  429.  
  430. MACRO find_file
  431.     OpenFileInPane;
  432.     ClipReplaceNextCut;
  433. END;
  434.  
  435. MACRO forward_character
  436.     CursorSwitchedRight;
  437.     ClipReplaceNextCut;
  438. END;
  439.  
  440. MACRO forward_level                 /* point must be on '(', '{' or '[' */
  441.     MatchPairForward;
  442.     ClipReplaceNextCut;
  443. END;
  444.  
  445. /* MACRO forward_paragraph         not implemented */
  446. /* MACRO forward_sentence         not implemented */
  447.  
  448. MACRO forward_word
  449.   CursorRightSkipNonWord;
  450.   CursorRightSkipWordStream;
  451.   FixScreenPos;
  452.   ClipReplaceNextCut;
  453. END;
  454.  
  455. MACRO goto_beginning
  456.     HomeCursor;
  457.     ClipReplaceNextCut;
  458. END;
  459.  
  460. MACRO goto_end
  461.     EndCursor;
  462.     ClipReplaceNextCut;
  463. END;
  464.  
  465. MACRO goto_line
  466.     GoToLine;
  467.     ClipReplaceNextCut;
  468. END;
  469.  
  470. MACRO goto_tag
  471.     BrowseSymbolAtCursor;
  472.     ClipReplaceNextCut;
  473. END;
  474.  
  475. MACRO incremental_search
  476.     SetNonInclusiveBlock;HideBlock;
  477.     SetSearchDirection(1);
  478.     SetSearchCase(0);
  479.     IncrementalSearch;
  480.     ClipReplaceNextCut;
  481. END;
  482.  
  483. /* MACRO indent_previous         not implemented */
  484.  
  485. MACRO indent_region                 /* same as indent_rigidly */
  486.     IndentBlock;
  487.     ClipReplaceNextCut;
  488. END;
  489.  
  490. MACRO indent_rigidly
  491.     IndentBlock;
  492.     ClipReplaceNextCut;
  493. END;
  494.  
  495. MACRO indent_under
  496.     SmartTab;
  497.     ClipReplaceNextCut;
  498. END;
  499.  
  500. MACRO insert_file
  501.     SetPrevPos;
  502.     HideBlock;
  503.     ReadBlock;
  504.     ClipReplaceNextCut;
  505. END;
  506.  
  507. MACRO kill_buffer
  508.   DeleteBuffer;
  509. END;
  510.  
  511. MACRO kill_level                 /* point must be on '(', '{' or '[' */
  512.     SetNonInclusiveBlock;
  513.     SetBlockBeg;
  514.     MatchPairForward;
  515.     CursorCharRight;
  516.     SetBlockEnd;
  517.     ClipMaybeAppendCut;
  518.     ClipAppendNextCut;
  519. END;
  520.  
  521. MACRO kill_line
  522.     SetTempPos;
  523.     EpsilonMarkKillLine;
  524.     MoveToTempPos;
  525.     HighlightBlock;
  526.     ClipMaybeAppendCut;
  527.     ClipAppendNextCut;
  528. END;
  529.  
  530. MACRO kill_region
  531.     SwapPrevPos;
  532.     SetBlockBeg;
  533.     SwapPrevPos;
  534.     SetBlockEnd;
  535.     HighlightBlock;
  536.     ClipMaybeAppendCut;
  537.     ClipAppendNextCut;
  538. END;
  539.  
  540. /* MACRO kill_sentence                 not implemented */
  541.  
  542. MACRO kill_window
  543.     DeletePane(4);
  544.     ClipReplaceNextCut;
  545. END;
  546.  
  547. MACRO kill_word
  548.     SetBlockBeg;
  549.     CursorRightSkipNonWord;
  550.     CursorRightSkipWord;
  551.     SetBlockEnd;
  552.     HighlightBlock;
  553.     ClipMaybeAppendCut;
  554.     FixScreenPos;
  555.     ClipAppendNextCut;
  556. END;
  557.  
  558. MACRO last_kbd_macro
  559.     PlaybackKeyMacro;
  560. END;
  561.  
  562. /* MACRO load_bytes                 not implemented */
  563.  
  564. MACRO lower_case_word
  565.     SetNonInclusiveBlock;
  566.     HideBlock;
  567.     CursorRightSkipNonWord;
  568.     SetBlockBeg;
  569.     CursorRightSkipWord;
  570.     SetBlockEnd;
  571.     HighlightBlock;
  572.     LowerCaseBlock;
  573.     HideBlock;
  574.     ClipReplaceNextCut;
  575.     FixScreenPos;
  576. END;
  577.  
  578. MACRO make
  579.     MakeProject;
  580. END;
  581.  
  582. /* MACRO mark_paragraph                 not implemented */
  583. /* MACRO maybe_break_line         not implemented */
  584. /* MACRO name_kbd_macro                 not implemented */
  585.  
  586. MACRO named_command
  587.     Menu;
  588. END;
  589.  
  590. MACRO next_error
  591.     NextError;
  592.     ClipReplaceNextCut;
  593. END;
  594.  
  595. MACRO next_page
  596.     FixScreenPos;
  597.     PageScreenDown;
  598.     FixCursorPos;
  599.     ClipReplaceNextCut;
  600. END;
  601.  
  602. /* MACRO next_video                 not implemented */
  603.  
  604. MACRO next_window
  605.     MoveToPane(4);
  606.     ClipReplaceNextCut;
  607. END;
  608.  
  609. MACRO one_window
  610.     DeletePane(5);
  611.     ClipReplaceNextCut;
  612. END;
  613.  
  614. MACRO open_line
  615.     LiteralChar(13);
  616.     CursorUp;
  617.     RightOfLine;
  618.     ClipReplaceNextCut;
  619. END;
  620.  
  621. MACRO overwrite_mode
  622.     ToggleInsert;
  623. END;
  624.  
  625. MACRO pluck_tag
  626.     BrowseSymbolAtCursor;
  627. END;
  628.  
  629. MACRO previous_page
  630.     FixScreenPos;
  631.     PageScreenUp;
  632.     FixCursorPos;
  633.     ClipReplaceNextCut;
  634. END;
  635.  
  636. MACRO previous_window
  637.     MoveToPane(5);
  638.     ClipReplaceNextCut;
  639. END;
  640.  
  641. MACRO push
  642.     Menu;
  643. END;
  644.  
  645. MACRO query_replace
  646.     Replace;
  647.     ClipReplaceNextCut;
  648. END;
  649.  
  650. MACRO quoted_insert
  651.     LiteralChar;
  652.     ClipReplaceNextCut;
  653. END;
  654.  
  655. MACRO _redo
  656.     ReDo;
  657.     ClipReplaceNextCut;
  658. END;
  659.  
  660. MACRO redo_changes                 /* same as redo */
  661.     ReDo;
  662.     ClipReplaceNextCut;
  663. END;
  664.  
  665. MACRO regex_replace
  666.     SetSearchRegExp(1);
  667.     Replace;
  668.     ClipReplaceNextCut;
  669. END;
  670.  
  671. MACRO regex_search
  672.     GetFindString;
  673.     ClipReplaceNextCut;
  674. END;
  675.  
  676. MACRO replace_string
  677.     Replace;
  678.     ClipReplaceNextCut;
  679. END;
  680.  
  681. MACRO reverse_incremental_search
  682.     SetSearchDirection(0);
  683.     SetSearchCase(0);
  684.     IncrementalSearch;
  685.     ClipReplaceNextCut;
  686. END;
  687.  
  688. MACRO reverse_regex_search
  689.     SetSearchDirection(0);
  690.     SetSearchRegExp(1);
  691.     GetFindString;
  692.     ClipReplaceNextCut;
  693. END;
  694.  
  695. MACRO save_all_buffers
  696.     SaveAll;
  697.     ClipReplaceNextCut;
  698. END;
  699.  
  700. MACRO save_file
  701.     SaveFile;
  702.     ClipReplaceNextCut;
  703. END;
  704.  
  705. MACRO scroll_down
  706.     ScrollScreenDown;
  707.     ClipReplaceNextCut;
  708. END;
  709.  
  710. /* MACRO scroll_left                 not implemented */
  711. /* MACRO scroll_right                 not implemented */
  712.  
  713. MACRO scroll_up
  714.     ScrollScreenUp;
  715.     ClipReplaceNextCut;
  716. END;
  717.  
  718. /* MACRO select_buffer                 not implemented */
  719. /* MACRO select_tag_file         not implemented */
  720. /* MACRO set_fill_column         not implemented */
  721.  
  722. MACRO set_mark
  723.     HideBlock;
  724.     SetPrevPos;
  725. END;
  726.  
  727. /* MACRO set_variable                 not implemented */
  728. /* MACRO set_video                 not implemented */
  729. /* MACRO show_point                 not implemented */
  730. /* MACRO show_variable                 not implemented */
  731.  
  732. MACRO shrink_window
  733.     MovePaneEdge(6);
  734. END;
  735.  
  736. MACRO shrink_window_horiz
  737.     MovePaneEdge(7);
  738. END;
  739.  
  740. MACRO split_window
  741.     CreatePane(0);
  742. END;
  743.  
  744. MACRO split_window_vertically
  745.     CreatePane(2);
  746. END;
  747.  
  748. MACRO start_kbd_macro                 /* toggle macro recording */
  749.     RecordKeyMacro;
  750. END;
  751.  
  752. /* MACRO start_process                 not implemented */
  753. /* MACRO stop_process                 not implemented */
  754. /* MACRO tabify_region                 not implemented */
  755. /* MACRO tag_files                 not implemented */
  756. MACRO to_indentation
  757.     FirstNonBlank;
  758.     ClipReplaceNextCut;
  759. END;
  760.  
  761. MACRO transpose_characters
  762.     /* this will only work if persistent blocks are on */
  763.     SetBlockBeg;
  764.     CursorSwitchedRight;
  765.     SetBlockEnd;
  766.     HighlightBlock;
  767.     CursorSwitchedLeft;
  768.     CursorSwitchedLeft;
  769.     MoveBlock;
  770.     HideBlock;
  771.     ClipReplaceNextCut;
  772. END;
  773.  
  774. MACRO transpose_lines
  775.     /* this will only work if persistent blocks are on */
  776.     LeftOfLine;
  777.     SetBlockBeg;
  778.     RightOfLine;
  779.     CursorCharRight;
  780.     SetBlockEnd;
  781.     HighlightBlock;
  782.     CursorUp;
  783.     CursorUp;
  784.     MoveBlock;
  785.     HideBlock;
  786.     FixScreenPos;
  787.     ClipReplaceNextCut;
  788. END;
  789.  
  790. MACRO transpose_words
  791.     /* this will only work if persistent blocks are on */
  792.     CursorRightSkipNonWord;
  793.     SetBlockBeg;
  794.     CursorRightSkipWord;
  795.     SetBlockEnd;
  796.     HighlightBlock;
  797.     CursorLeftSkipWord;
  798.     CursorLeftSkipNonWord;
  799.     CursorLeftSkipWord;
  800.     MoveBlock;
  801.     HideBlock;
  802.     FixScreenPos;
  803.     ClipReplaceNextCut;
  804. END;
  805.  
  806. MACRO _undo
  807.     Undo;
  808.     ClipReplaceNextCut;
  809. END;
  810.  
  811. MACRO undo_changes                 /* same as undo */
  812.     Undo;
  813.     ClipReplaceNextCut;
  814. END;
  815.  
  816. /* MACRO untabify_region                 not implemented */
  817.  
  818. MACRO up_line
  819.     CursorUp;
  820.     ClipReplaceNextCut;
  821. END;
  822.  
  823. MACRO upper_case_word
  824.     SetNonInclusiveBlock;
  825.     HideBlock;
  826.     CursorRightSkipNonWord;
  827.     SetBlockBeg;
  828.     CursorRightSkipWord;
  829.     SetBlockEnd;
  830.     HighlightBlock;
  831.     UpperCaseBlock;
  832.     HideBlock;
  833.     ClipReplaceNextCut;
  834.     FixScreenPos;
  835. END;
  836.  
  837. /* MACRO visit_file                 not implemented */
  838.  
  839. MACRO write_file
  840.     SaveFile;
  841. END;
  842.  
  843. MACRO write_region
  844.     HideBlock;
  845.     SwapPrevPos;
  846.     SetBlockBeg;
  847.     SwapPrevPos;
  848.     SetBlockEnd;
  849.     HighlightBlock;
  850.     WriteBlock;
  851.     ClipReplaceNextCut;
  852. END;
  853.  
  854. /* MACRO write_state                 not implemented */
  855.  
  856. MACRO yank
  857.     /* works everywhere but at start of file */
  858.     CursorCharLeft;
  859.     SetPrevPos;
  860.     CursorCharRight;
  861.     ClipPaste;
  862.     SwapPrevPos;
  863.     CursorCharRight;
  864.     SwapPrevPos;
  865.     ClipReplaceNextCut;
  866. END;
  867.  
  868. /**** key bindings ******/
  869. KEYBOARD System
  870. F1 : Help;
  871. F5 : ToggleBreakpoint; : ToggleBreakpoint
  872. F8 : Step;             : Step
  873. F9 : MakeProject;      : MakeProject
  874.  
  875. shift-F4: WindowTileHorz;
  876. /* shift-F5: WinCascade */
  877.  
  878. alt-F5 : InspectAtCursor; : InspectAtCursor
  879. alt-F7 : PrevError;    : PrevError
  880. alt-F8 : NextError;    : NextError
  881. alt-F9 : CompileFile;  : CompileFile
  882. alt-F10: LocalMenu;
  883.  
  884. ctrl-F2       : TerminateProgram; : TerminateProgram
  885. ctrl-F5       : AddWatch;     : AddWatch
  886. Ctrl-F7       : copy_to_file; : SaveFileAs
  887. ctrl-F9       : RunProgram;   : RunProgram
  888.  
  889. Ctrl-X+(      : start_kbd_macro;         /* toggle macro recording */
  890. Ctrl-X+)      : end_kbd_macro;                 /* toggles recording mode */
  891. /* Ctrl-F4       : last_kbd_macro; */
  892. Ctrl-X+e      : last_kbd_macro;
  893. Ctrl-X+E      : last_kbd_macro;
  894.  
  895. Ctrl-X+Ctrl-S : save_file;    : SaveFile
  896. Ctrl-X+Ctrl-W : write_file;
  897. /* Ctrl-X+Ctrl-C : exit_level;   : Quit */
  898.  
  899. /* ---- Pane mgmt keys ------------------ */
  900. Ctrl-PgUp     : enlarge_window;
  901. /* Ctrl-X+^      : enlarge_window; parser failure */
  902. Alt-PgUp      : enlarge_window_horiz;
  903. /* Ctrl-X+@      : enlarge_window_horiz; parser failure */
  904. Ctrl-X+0      : kill_window;
  905. Alt-End       : next_window;
  906. Esc+End       : next_window;
  907. Ctrl-X+n      : next_window;
  908. Ctrl-X+N      : next_window;
  909. Ctrl-X+1      : one_window;
  910. Alt-Home      : previous_window;
  911. Esc+Home      : previous_window;
  912. Ctrl-X+p      : previous_window;
  913. Ctrl-X+P      : previous_window;
  914. Ctrl-PgDn     : shrink_window;
  915. Alt-PgDn      : shrink_window_horiz;
  916. Ctrl-X+2      : split_window;
  917. Ctrl-X+5      : split_window_vertically;
  918. END;
  919.  
  920. KEYBOARD Editor
  921. star  : LiteralChar('*');
  922. minus : LiteralChar('-');
  923. plus  : LiteralChar('+');
  924. enter : LiteralChar(13);
  925. space : LiteralChar(' ');
  926.  
  927.  
  928. /* Ctrl-G       : abort;                 not implemented */
  929. /* Esc          : alt_prefix;                 built into keyboard tables */
  930. Ctrl-Alt-w   : append_next_kill;
  931. Esc+Ctrl-w   : append_next_kill;
  932. /* Ctrl-U       : argument;                 not implemented */
  933. Ctrl-B        : backward_character;
  934. LfAr              : backward_character;
  935. Ctrl-H        : backward_delete_character;
  936. BkSp              : backward_delete_character;
  937. Alt-Del       : backward_kill_level;         /* point must be on ')', '}' or ']' */
  938. Esc+Del       : backward_kill_level;         /* point must be on ')', '}' or ']' */
  939. Ctrl-Alt-H    : backward_kill_word;
  940. Alt-BkSp      : backward_kill_word;
  941. Esc+BkSp      : backward_kill_word;
  942. Esc+Ctrl-H    : backward_kill_word;
  943. Ctrl-Alt-B    : backward_level;                 /* point must be on ')', '}' or ']' */
  944. Esc+Ctrl-B    : backward_level;                 /* point must be on ')', '}' or ']' */
  945. /* Alt-[         : backward_paragraph;         not implemented */
  946. Alt-UpAr      : MoveToPane(0);
  947. /* Alt-A         : backward_sentence;         not implemented */
  948. /* Ctrl-UpAr     : backward_sentence;         not implemented */
  949. Alt-b         : backward_word;
  950. Esc+@b         : backward_word;
  951. Ctrl-LfAr     : backward_word;
  952. Ctrl-A        : beginning_of_line;
  953. Alt-LfAr      : MoveToPane(2);
  954. Esc+LfAr      : beginning_of_line;
  955. Alt-,              : beginning_of_window;
  956. Esc+,              : beginning_of_window;
  957. Home          : beginning_of_window;
  958. /* F4            : bind_to_key;                 not implemented */
  959. /* Ctrl-X+Ctrl-B : bufed;                 not implemented */
  960. Alt-c         : capitalize_word;
  961. Esc+@c        : capitalize_word;
  962. /* Alt-S         : center_line;                 not implemented */
  963. Ctrl-L        : center_window;
  964. /* Alt-~         : change_modified;         not implemented */
  965. /* Ctrl-F2       : compare_windows;         not implemented */
  966. /* Ctrl-X+@C     : compare_windows;         not implemented */
  967. Alt-w        : copy_region;
  968. Esc+@w       : copy_region;
  969. /* Ctrl-X+@L     : count_lines;                 not implemented */
  970. /* Ctrl-^        : ctrl-prefix;                 not implemented */
  971. /* Ctrl-X+Ctrl-O : delete_blank_lines;         not implemented */
  972. Ctrl-D        : delete_character;
  973. Del           : delete_character;
  974. Alt-\              : delete_horizontal_space;
  975. Esc+\              : delete_horizontal_space;
  976. /* Ctrl-X+d   : dired;                   not implemented */
  977. /* Ctrl-X+D   : dired;                   not implemented */
  978. /* F1+C              : describe_command;         not implemented */
  979. /* F1+K              : describe_key;                 not implemented */
  980. /* Ctrl-X+@D     : dired;                 not implemented */
  981. Tab           : do_c_indent;                 /* inserts a TAB character */
  982. Ctrl-N        : down_line;
  983. DnAr              : down_line;
  984. Ctrl-X+)      : end_kbd_macro; /* N.B. must duplicate this due to quirk in keymap processor */
  985. Ctrl-E        : end_of_line;
  986. Alt-RgAr      : MoveToPane(3);
  987. Esc+RgAr      : end_of_line;
  988. Alt-.         : end_of_window;
  989. Esc+.         : end_of_window;
  990. End           : end_of_window;
  991. /* Ctrl-X+^      : enlarge_window; parser failure */
  992. /* Ctrl-X+@      : enlarge_window_horiz; parser failure */
  993. Ctrl-M              : enter_key;
  994. Ctrl-X+Ctrl-X : exchange_point_and_mark;
  995. /* Ctrl-X+Ctrl-C : exit; */
  996. /* Ctrl-X+Ctrl-Z : exit_level; */
  997. /* Alt-Q         : fill_paragraph;         not implemented */
  998. Alt-)              : find_delimiter;                 /* same as backward_level */
  999. Alt-shift-0        : find_delimiter;                 /* same as backward_level */
  1000. Esc+)              : find_delimiter;                 /* same as backward_level */
  1001. Ctrl-X+Ctrl-F : find_file;
  1002. Ctrl-F        : forward_character;
  1003. RgAr              : forward_character;
  1004. Ctrl-Alt-F    : forward_level;                 /* point must be on '(', '{' or '[' */
  1005. Esc+Ctrl-F    : forward_level;                 /* point must be on '(', '{' or '[' */
  1006. /* Alt-]         : forward_paragraph;         not implemented */
  1007. Alt-DnAr      : MoveToPane(1);
  1008. /* Alt-E         : forward_sentence;         not implemented */
  1009. /* Ctrl-DnAr     : forward_sentence;         not implemented */
  1010. Alt-f        : forward_word;
  1011. Esc+@f       : forward_word;
  1012. Ctrl-RgAr     : forward_word;
  1013. Alt-<         : goto_beginning;
  1014. Esc+<         : goto_beginning;
  1015. Ctrl-Home     : goto_beginning;
  1016. Alt->         : goto_end;
  1017. Esc+>         : goto_end;
  1018. Ctrl-End      : goto_end;
  1019. Ctrl-X+g     : goto_line;
  1020. Ctrl-X+G     : goto_line;
  1021. Ctrl-X+.      : goto_tag;
  1022. Alt-?              : help;
  1023. Alt-Shift-/        : help;
  1024. Esc+?              : help;
  1025. Ctrl-_              : help;
  1026. Ctrl-Shift-dash     : help;
  1027. Ctrl-S              : incremental_search;
  1028. /* Tab           : indent_previous;         not implemented */
  1029. Ctrl-Alt-\    : indent_region;                 /* same as indent_rigidly */
  1030. Esc+Ctrl-\    : indent_region;                 /* same as indent_rigidly */
  1031. Ctrl-X+Ctrl-I : indent_rigidly;
  1032. Ctrl-X+Tab    : indent_rigidly;
  1033. Alt-Tab       : indent_under;
  1034. Esc+Tab       : indent_under;
  1035. Ctrl-X+i      : insert_file;
  1036. Ctrl-X+I      : insert_file;
  1037. Ctrl-X+@K     : kill_buffer;
  1038. Ctrl-Alt-K    : kill_level;                 /* point must be on '(', '{' or '[' */
  1039. Esc+Ctrl-K    : kill_level;                 /* point must be on '(', '{' or '[' */
  1040. Ctrl-K        : kill_line;
  1041. Ctrl-W        : kill_region;
  1042. /* Alt-K         : kill_sentence;         not implemented */
  1043. Ctrl-X+0      : kill_window;  /* N.B. must duplicate this due to quirk in keymap processor */
  1044. Alt-d        : kill_word;
  1045. Esc+@d        : kill_word;
  1046. Ctrl-X+e      : last_kbd_macro; /* N.B. must duplicate this due to quirk in keymap processor */
  1047. Ctrl-X+E      : last_kbd_macro; /* N.B. must duplicate this due to quirk in keymap processor */
  1048. /* F3            : load_bytes;                 not implemented */
  1049. Alt-l              : lower_case_word;
  1050. Esc+@l              : lower_case_word;
  1051. Ctrl-X+m     : make;
  1052. Ctrl-X+M     : make;
  1053. /* Alt-H         : mark_paragraph;         not implemented */
  1054. /* Space         : maybe_break_line;         not implemented */
  1055. /* Ctrl-X+Alt-N  : name_kbd_macro;         not implemented */
  1056. Alt-x        : named_command;
  1057. Esc+@x        : named_command;
  1058. F2              : named_command;
  1059. Ctrl-X+Ctrl-N : next_error;
  1060. Ctrl-V        : next_page;
  1061. PgDn              : next_page;
  1062. /* Ctrl-F5       : next_video;                 not implemented */
  1063. Esc+End       : next_window;  /* N.B. must duplicate this due to quirk in keymap processor */
  1064. Ctrl-X+n      : next_window;  /* N.B. must duplicate this due to quirk in keymap processor */
  1065. Ctrl-X+N      : next_window;  /* N.B. must duplicate this due to quirk in keymap processor */
  1066. Ctrl-X+1      : one_window;   /* N.B. must duplicate this due to quirk in keymap processor */
  1067. Ctrl-O        : open_line;
  1068. Ins              : overwrite_mode;
  1069. Ctrl-X+,      : pluck_tag;
  1070. Alt-v        : previous_page;
  1071. Esc+@v        : previous_page;
  1072. PgUp              : previous_page;
  1073. Esc+Home      : previous_window;  /* N.B. must duplicate this due to quirk in keymap processor */
  1074. Ctrl-X+p      : previous_window;  /* N.B. must duplicate this due to quirk in keymap processor */
  1075. Ctrl-X+P      : previous_window;  /* N.B. must duplicate this due to quirk in keymap processor */
  1076. Ctrl-X+Ctrl-E : push;
  1077. Alt-%      : query_replace;
  1078. Alt-Shift-5: query_replace;
  1079. Esc+%      : query_replace;
  1080. Ctrl-Q        : quoted_insert;
  1081. Ctrl-X+r     : _redo;
  1082. Ctrl-X+R     : _redo;
  1083. F10           : _redo;
  1084. Ctrl-F10      : redo_changes;                 /* same as redo */
  1085. Ctrl-X+Ctrl-R : redo_changes;                 /* same as redo */
  1086. Alt-*              : regex_replace;
  1087. Esc+*              : regex_replace;
  1088. Ctrl-Alt-S    : regex_search;
  1089. Esc+Ctrl-S    : regex_search;
  1090. Alt-&              : replace_string; : Replace
  1091. Alt-Shift-7        : replace_string;
  1092. Esc+&              : replace_string;
  1093. Ctrl-R              : reverse_incremental_search;
  1094. Ctrl-Alt-R    : reverse_regex_search;
  1095. Esc+Ctrl-R    : reverse_regex_search;
  1096. Ctrl-X+s     : save_all_buffers;
  1097. Ctrl-X+S     : save_all_buffers;
  1098. Ctrl-X+Ctrl-S : save_file;  /* N.B. must duplicate this due to quirk in keymap processor */
  1099. Alt-Z         : scroll_down;
  1100. Esc+Z         : scroll_down;
  1101. /* Alt-{         : scroll_left;                 not implemented */
  1102. /* Alt-}         : scroll_right;         not implemented */
  1103. Ctrl-Z        : scroll_up;
  1104. Ctrl-X+B      : BufferList; : BufferList
  1105. Ctrl-X+b      : BufferList;
  1106. /* Ctrl-X+Alt,   : select_tag_file;         not implemented */
  1107. /* Ctrl-X+F      : set_fill_column;         not implemented */
  1108. Ctrl-@        : set_mark;
  1109. Ctrl-Shift-2  : set_mark;
  1110. Ctrl-2  : set_mark;
  1111. Alt-@         : set_mark;
  1112. Alt-2   : set_mark;
  1113. Alt-Shift-2   : set_mark;
  1114. Esc+@@        : set_mark;
  1115. /* F8            : set_variable;         not implemented */
  1116. /* Alt-F5        : set_video;                 not implemented */
  1117. /* Ctrl-X+=      : show_point;                 not implemented */
  1118. /* Ctrl-F8       : show_variable;         not implemented */
  1119. Ctrl-X+2      : split_window;  /* N.B. must duplicate this due to quirk in keymap processor */
  1120. Ctrl-X+5      : split_window_vertically; /* N.B. must duplicate this due to quirk in keymap processor */
  1121. Ctrl-X+(      : start_kbd_macro; /* N.B. must duplicate this due to quirk in keymap processor */
  1122. /* Ctrl-X+Ctrl-M : start_process;         not implemented */
  1123. /* Ctrl-C              : stop_process;         not implemented */
  1124. /* Ctrl-X+Ctrl-Alt-I
  1125.               : tabify_region;                 not implemented */
  1126. /* Ctrl-X+Alt-Tab
  1127.               : tabify_region;                 not implemented */
  1128. /* Ctrl-X+Alt-.  : tag_files;                 not implemented */
  1129. Alt-m        : to_indentation;
  1130. Esc+m        : to_indentation;
  1131. Esc+M        : to_indentation;
  1132. Ctrl-T              : transpose_characters;
  1133. Ctrl-X+Ctrl-T : transpose_lines;
  1134. Alt-t        : transpose_words;
  1135. Esc+t        : transpose_words;
  1136. Esc+T        : transpose_words;
  1137. Ctrl-X+u     : _undo;
  1138. Ctrl-X+U     : _undo;
  1139. F9            : _undo;
  1140. Ctrl-F9       : undo_changes;                 /* same as undo */
  1141. Ctrl-X+Ctrl-U : undo_changes;                 /* same as undo */
  1142. /* Ctrl_X+Alt-I  : untabify_region;         not implemented */
  1143. Ctrl-P        : up_line;
  1144. UpAr              : up_line;
  1145. Alt-U              : upper_case_word;
  1146. Esc+U              : upper_case_word;
  1147. /* Ctrl-X+Ctrl-V : visit_file;                 not implemented */
  1148. Ctrl-X+Ctrl-W : write_file; /* N.B. must duplicate this due to quirk in keymap processor */
  1149. Ctrl-X+w     : write_region;
  1150. Ctrl-X+W     : write_region;
  1151. /* Ctrl-F3       : write_state;                 not implemented */
  1152. Ctrl-Y        : yank;
  1153. END;
  1154.  
  1155. KEYBOARD MessageWindow
  1156. space : MsgViewSrc; : MsgViewSrc
  1157. enter : MsgEditSrc; : MsgEditSrc
  1158. END;
  1159.  
  1160. KEYBOARD BreakpointView
  1161. ctrl-P : DebugDetailBreakList; : DebugDetailBreakList
  1162. ctrl-I : DebugInspectBreakList; : DebugInspectBreakList
  1163. ctrl-E : DebugEditBreakList; : DebugEditBreakList
  1164. ctrl-R : DebugRemoveBreakList; : DebugRemoveBreakList
  1165. ctrl-A : DebugAddAtLineBreakList; : DebugAddAtLineBreakList
  1166. /*
  1167. ctrl-W : DebugAddWinMsg; : DebugAddWinMsgBreakList
  1168. */
  1169. END;
  1170.  
  1171. KEYBOARD CallStack
  1172. ctrl-I : DebugInspectCallStack; : DebugInspectCallStack
  1173. ctrl-E : DebugEditCallStack; : DebugEditCallStack
  1174. END;
  1175.  
  1176. KEYBOARD DataInspector
  1177. ctrl-R : DebugRangeInspect; : DebugRangeInspect
  1178. ctrl-C : DebugChange; : DebugChange
  1179. ctrl-I : DebugInspectData; : DebugInspectData
  1180. ctrl-D : DebugDescend; : DebugDescend
  1181. ctrl-N : DebugNewExpr; : DebugNewExpr
  1182. ctrl-T : DebugTypecast; : DebugTypecast
  1183. END;
  1184.  
  1185. KEYBOARD DebugLog
  1186. ctrl-C : DebugCaptureLog; : DebugCaptureLog
  1187. ctrl-O : DebugLogOptions; : DebugLogOptions
  1188. ctrl-A : DebugCommentLog; : DebugCommentLog
  1189. ctrl-E : DebugEraseLog; : DebugEraseLog
  1190. END;
  1191.  
  1192. KEYBOARD RegisterView
  1193. ctrl-H : DebugHexReg; : DebugHexReg
  1194. ctrl-D : DebugDecimalReg; : DebugDecimalReg
  1195. ctrl-W : DebugWordReg; : DebugWordReg
  1196. ctrl-U : DebugDWordReg; : DebugDWordReg
  1197. END;
  1198.  
  1199. KEYBOARD WatchView
  1200. ctrl-P : DebugDetailWatchList; : DebugDetailWatchList
  1201. ctrl-R : DebugRemoveWatchList; : DebugRemoveWatchList
  1202. ctrl-A : DebugAddWatchList; : DebugAddWatchList
  1203. END;
  1204.  
  1205. KEYBOARD ProjectWindow
  1206. enter    : ProjectNodeAction;
  1207. plus     : ProjectExpandNode;
  1208. minus    : ProjectCollapseNode;
  1209. space    : ProjectNodeToggle;
  1210. esc      : ProjectEndNodeSearch;
  1211. upar     : ProjectNodeUp;
  1212. dnar     : ProjectNodeDown;
  1213. home     : ProjectFirstNode;
  1214. end      : ProjectLastNode;
  1215. pgup     : ProjectPrevPage;
  1216. pgdn     : ProjectNextPage;
  1217. alt-lfar : ProjectPromoteNode;
  1218. alt-rgar : ProjectDemoteNode;
  1219. alt-upar : ProjectMoveUp;
  1220. alt-dnar : ProjectMoveDown;
  1221. END;
  1222.  
  1223.  
  1224.