home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / viscobv7.zip / vac22os2 / ibmcobol / macros / pli.lxl < prev    next >
Text File  |  1998-02-24  |  10KB  |  240 lines

  1. /********************************************************
  2. * PLI.LXL - load macro for PL/I files                   *
  3. *                                                       *
  4. * This macro is invoked by LPEX when a file with an     *
  5. * extension of .PLI is edited                           *
  6. *                                                       *
  7. ********************************************************/
  8. /* Space is deliberately first. Thus it takes over the default class of DATA. */
  9. 'SET CLASSES SPACE COMMENT CODE ERROR FLOW COMMENTONLY PROC PERCENT INCLUDE EXTENSION EXEC'
  10.  
  11. /* Set up new items in the ActionBar. */
  12. 'SET ACTIONBAR.LP_OPTIONS.Automatic_~indenting... 2 PPRS AIDLG'
  13. 'SET HELP. 16093'
  14. 'SET ACTIONBAR.LP_OPTIONS.~Language_editing. 5'
  15. 'SET HELP. 16099'
  16. 'SET ACTIONBAR.LP_OPTIONS.~Language_editing.~Token_highlighting  PPRS TOKOPT'
  17. 'EXTRACT ACTIONBARID. INTO ID_TOKEN_HIGHLIGHTING'
  18. 'SET HELP. 16100'
  19. 'SET ACTIONBAR.LP_OPTIONS.~Language_editing.Automatic_~indenting PPRS AIOPT'
  20. 'EXTRACT ACTIONBARID. INTO ID_AUTOMATIC_INDENTING'
  21. 'SET HELP. 16101'
  22. 'SET ACTIONBAR.LP_OPTIONS.~Language_editing.~Syntax_assist   PPRS  SYNAOPT'
  23. 'EXTRACT ACTIONBARID. INTO ID_SYNTAX_ASSIST'
  24. 'SET HELP. 16088'
  25.  
  26. /* Set up help entry */
  27. 'EXTRACT ENVIRONMENT'
  28. PARSE VAR environment 'PLATFORM='platform environment
  29. if platform = 'WINDOWS' then
  30.    infview = 'IVIEW'
  31. else
  32.    infview = 'VIEW'
  33. if platform = 'WINDOWS' then
  34.   do;
  35. 'SET ACTIONBAR.LP_HELP.P~L/I_Reference 6 ;START 'infview' PLIWNLRM.INF'
  36. 'SET ACTIONBAR.LP_HELP.PL/I_Guide 7 ;START 'infview' PLIWNAPG.INF'
  37.   end ;
  38. else
  39.   do ;
  40. 'SET ACTIONBAR.LP_HELP.P~L/I_Reference 6 ;START 'infview' PLIOSLRM.INF'
  41. 'SET ACTIONBAR.LP_HELP.PL/I_Guide 7 ;START 'infview' PLIOSAPG.INF'
  42.   end ;
  43.  
  44. /* Set up the subsetting views on the View pull down. */
  45. view_all            = 'LP_VIEW.All'
  46. view_errors         = 'LP_VIEW.~Errors'
  47. view_procs          = 'LP_VIEW.Proce~dures'
  48. view_outline        = 'LP_VIEW.~Outline_Logic_(Flow)'
  49. view_compress       = 'LP_VIEW.~Compress_Spaces'
  50. view_comments       = 'LP_VIEW.Comments'
  51. view_block_comments = 'LP_VIEW.~Block_Comments_only'
  52. view_preprocessor   = 'LP_VIEW.Preprocessor_only'
  53. view_includes       = 'LP_VIEW.Includes'
  54. view_extensions     = 'LP_VIEW.E~xtensions'
  55. view_sql_cics       = 'LP_VIEW.S~QL/CICS'
  56.  
  57. /* This is a bit contrived. Uncheck will uncheck all of the menu items whose id's are mentioned in the global variable constructed from set global.doc' || docnum || '.menu_ids' */
  58. /* Mnucheck will check the named item. The name MUST EXACTLY match the set actionbar value. OR IT WON'T WORK. */
  59. 'SET ACTIONBAR.LP_VIEW.SEPARATOR 2'
  60.  
  61. MENU_IDS = '' ;
  62.  
  63. 'SET ACTIONBAR.'view_all' 3 ;UNCHECK DOC ;MNUCHECK 'view_all' ;SET INCLUDE ;SET EXCLUDE ;VIEWNAME  '
  64. 'EXTRACT ACTIONBARID. INTO ID'
  65. MENU_IDS = MENU_IDS || ' ' || ID ;
  66. 'SET HELP. 16074'
  67.  
  68. 'SET ACTIONBAR.'view_errors' 4 ;UNCHECK DOC ;MNUCHECK 'view_errors' ;SET INCLUDE ERROR ;SET EXCLUDE ;VIEWNAME Errors'
  69. 'EXTRACT ACTIONBARID. INTO ID'
  70. MENU_IDS = MENU_IDS || ' ' || ID ;
  71. 'SET HELP. 16074'
  72. 'SET GROUP. ERROR PARSED'
  73.  
  74. 'SET ACTIONBAR.'view_procs' 5 ;UNCHECK DOC ;MNUCHECK 'view_procs' ;INCLUDE PROC ;SET EXCLUDE ;VIEWNAME Procedures'
  75. 'EXTRACT ACTIONBARID. INTO ID'
  76. MENU_IDS = MENU_IDS || ' ' || ID ;
  77. 'SET HELP. 16074'
  78. 'SET GROUP. PROC PARSED'
  79.  
  80. 'SET ACTIONBAR.'view_outline' 6 ;UNCHECK DOC ;MNUCHECK 'view_outline' ;INCLUDE FLOW ;SET EXCLUDE ;VIEWNAME Outline'
  81. 'EXTRACT ACTIONBARID. INTO ID'
  82. MENU_IDS = MENU_IDS || ' ' || ID ;
  83. 'SET HELP. 16074'
  84. 'SET GROUP. FLOW PARSED'
  85.  
  86. 'SET ACTIONBAR.'view_compress' 7 ;UNCHECK DOC ;MNUCHECK 'view_compress' ;SET INCLUDE ;SET EXCLUDE SPACE ;VIEWNAME Compress'
  87. 'EXTRACT ACTIONBARID. INTO ID'
  88. MENU_IDS = MENU_IDS || ' ' || ID ;
  89. 'SET HELP. 16074'
  90. 'SET GROUP. PARSED'
  91.  
  92. 'SET ACTIONBAR.'view_comments' 8 ;UNCHECK DOC ;MNUCHECK 'view_comments' ;SET INCLUDE COMMENTONLY COMMENT ;SET EXCLUDE ;VIEWNAME Comments'
  93. 'EXTRACT ACTIONBARID. INTO ID'
  94. MENU_IDS = MENU_IDS || ' ' || ID ;
  95. 'SET HELP. 16074'
  96. 'SET GROUP. COMMENTONLY COMMENT PARSED'
  97.  
  98. 'SET ACTIONBAR.'view_block_comments' 9 ;UNCHECK DOC ;MNUCHECK 'view_block_comments' ;SET INCLUDE COMMENTONLY ;SET EXCLUDE ;VIEWNAME Block Comments'
  99. 'EXTRACT ACTIONBARID. INTO ID'
  100. MENU_IDS = MENU_IDS || ' ' || ID ;
  101. 'SET HELP. 16074'
  102. 'SET GROUP. COMMENTONLY PARSED'
  103.  
  104. 'SET ACTIONBAR.'view_preprocessor' 10 ;UNCHECK DOC ;MNUCHECK 'view_preprocessor' ;SET INCLUDE PERCENT ;SET EXCLUDE ;VIEWNAME Preprocessor'
  105. 'EXTRACT ACTIONBARID. INTO ID'
  106. MENU_IDS = MENU_IDS || ' ' || ID ;
  107. 'SET HELP. 16074'
  108. 'SET GROUP. PERCENT PARSED'
  109.  
  110. 'SET ACTIONBAR.'view_includes' 11 ;UNCHECK DOC ;MNUCHECK 'view_includes' ;SET INCLUDE INCLUDE ;SET EXCLUDE ;VIEWNAME Includes'
  111. 'EXTRACT ACTIONBARID. INTO ID'
  112. MENU_IDS = MENU_IDS || ' ' || ID ;
  113. 'SET HELP. 16074'
  114. 'SET GROUP. INCLUDE PARSED'
  115.  
  116. 'SET ACTIONBAR.'view_extensions' 12 ;UNCHECK DOC ;MNUCHECK 'view_extensions' ;SET INCLUDE EXTENSION ;SET EXCLUDE ;VIEWNAME Extensions'
  117. 'EXTRACT ACTIONBARID. INTO ID'
  118. MENU_IDS = MENU_IDS || ' ' || ID ;
  119. 'SET HELP. 16074'
  120. 'SET GROUP. EXTENSION PARSED'
  121.  
  122. 'SET ACTIONBAR.'view_sql_cics' 13 ;UNCHECK DOC ;MNUCHECK 'view_sql_cics' ;SET INCLUDE EXEC ;SET EXCLUDE ;VIEWNAME EXEC'
  123. 'EXTRACT ACTIONBARID. INTO ID'
  124. MENU_IDS = MENU_IDS || ' ' || ID ;
  125. 'SET HELP. 16074'
  126. 'SET GROUP. EXEC PARSED'
  127.  
  128. /* Initially we see the Document view, check the View/All menu item. */
  129. 'MNUCHECK 'view_all
  130.  
  131. 'EXTRACT DOCNUM INTO DOCNUM'
  132. 'SET GLOBAL.DOC' || DOCNUM || '.MENU_IDS' MENU_IDS ;
  133. DROP MENU_IDS DOCNUM ;
  134.  
  135. /* set fonts for PL/I parser */
  136. /*'LOADFONTS LPEXFNTS'             * load the Italic, Bold and Smallcaps fonts */
  137.                                   /* a no-op if already loaded this session */
  138.                                   /*
  139. 'SET FACE.ITALIC LPEXFONTS ITALIC'       /* create the italic logical font */
  140. 'SET FACE.BOLD   LPEXFONTS BOLD'         /* and the bold one */
  141. 'SET FACE.SMALLCAPS LPEXFONTS SMALLCAPS' /* and the smallcaps one */
  142.                                   */
  143.  
  144. /* Set Symbolic Fonts */
  145. 'SET FONT.A BLACK/WHITE                  "Variable and Procedure names"'
  146. 'SET FONT.B BRIGHT PINK/WHITE            "Built in functions"'
  147. 'SET FONT.C CYAN/WHITE                   "Comments"'
  148. 'SET FONT.E REVERSE BRIGHT RED/WHITE     "Errors"'
  149. 'SET FONT.F BRIGHT BLUE/WHITE            "Flow of control keywords"'
  150. 'SET FONT.G GREY/WHITE                   "Words not available at this language level"'
  151. 'SET FONT.I UNDERLINE BRIGHT BLUE/WHITE  "Include keyword"'
  152. 'SET FONT.K BRIGHT BLUE/WHITE            "Key words"'
  153. 'SET FONT.L GREEN/WHITE                  "Literals"'
  154. 'SET FONT.N RED/WHITE                    "Numbers"'
  155. 'SET FONT.P BRIGHT BLUE/WHITE            "Proc and Entry keywords"'
  156. 'SET FONT.S BLUE/WHITE                   "Language symbols"'
  157. 'SET FONT._ BLACK/WHITE                  "Layout spaces"'
  158. 'SET FONT.?  BRIGHT GREEN/GREEN          "Outside margins"'
  159. 'SET FONT.Q UNDERLINE BRIGHT BLUE/WHITE  "Preprocessor keywords"'
  160. 'SET FONT.R UNDERLINE        BLUE/WHITE  "Preprocessor semicolons and '?'"'
  161. 'SET FONT.T BRIGHT BLUE/WHITE            "exec, cics, and sql keywords"'
  162. 'SET FONT.U black/white                  "Proc and Entry labels"'
  163. 'SET FONT.X CYAN/WHITE                   "SQL reserved words"'
  164. 'SET FONT.! black/white                  "Default for unscanned text"'
  165.  
  166.  /* Assume mainframe margins of 2 and 72. */
  167.  
  168. 'SET GLOBAL.OPTIONS.PLI MAXTOKENS(600),MARGINS(1,100),OR(''|''),NOT(''~^''),NAMES(''L#@$''),LANGLVL(SAA2),INCLUDE ( EXT ( ''INC'' ''CPY'' ''MAC'' ) )'
  169. /*t = time('R') ; */
  170.   /*  The following initializes a new file with a Proc statement and an */
  171.   /*  End statement.  If you do not like this behavior, delete these lines */
  172.  'EXTRACT ELEMENTS into NumOfLines NAME into CurrentName LENGTH into LineLength'
  173.   If NumOfLines = 1  & LineLength = 0 Then       /* this is a new file */
  174.     Do;
  175.       if CurrentName \= '' then do
  176.          Parse var CurrentName CurrentName '.' . ;
  177.          CurrentName = ' ' || substr( CurrentName , lastpos('\' , CurrentName ) + 1) ;
  178.       end
  179.       else
  180.          CurrentName = ' Untitled'
  181.       SET CONTENT    CurrentName ': Procedure options (  ) ; '
  182.       INSERT
  183.       INSERT
  184.       INSERT
  185.       INSERT ' End' CurrentName '; '
  186.       TOP
  187.     End;
  188.  /*  End of lines to initialize new file content */
  189.  
  190. 'PPRS ALL'                                  /* do an initial parse */
  191. /*t = time('E') ;*/
  192. /*say 'Initial parse took' t 'seconds'*/
  193. 'SET PARSER PPRS CURRENT'                   /* set up the parser for future changes */
  194.  
  195. /* Send the tokeniser the menu id's it needs for checking and unchecking items. */
  196. 'PPRS INIT' ID_TOKEN_HIGHLIGHTING  ID_AUTOMATIC_INDENTING ID_SYNTAX_ASSIST
  197.  
  198. if platform = 'WINDOWS' then
  199.   'PPRS INITNDX IBMWTRW1'
  200. else
  201.   'PPRS INITNDX DDE4TRIB'
  202.  
  203.  
  204. /* Conserve memory - these are no longer needed. */
  205. DROP ID_TOKEN_HIGHLIGHTING  ID_AUTOMATIC_INDENTING ID_SYNTAX_ASSIST
  206.  
  207.  
  208.                      /* set up rest of syntax assist (from assistpl.lx) */
  209.  
  210. /* template insertion (first character = new line) */
  211. 'SET GLOBAL.PROTO.PLI.If /If ? /Then/   Do ;//   End ;/Else/   Do ;//   End ;'
  212. 'SET GLOBAL.PROTO.PLI.Do  /Do ? ;/   /End;'
  213. 'SET GLOBAL.PROTO.PLI.Select /Select ( ? ) ;//When ( ? )/   Do ;/   /   End ;//Otherwise/   Do ;/   /   End ;//End ;'
  214.                   /*  End of code extracted from assistpl.lx  */
  215.  
  216. 'SET ACTION.C-M PMAT' ;
  217.  
  218. 'SET ACTION.C-S-N NEXT CLASS PROC' ;
  219. 'SET ACTION.C-R PROTO PROTO.PLI.' ;
  220. 'SET ACTION.C-S-P PREV CLASS PROC' ;
  221.  
  222. 'SET ACTION.C-UP SCROLL UP 5' ;
  223. 'SET ACTION.C-DOWN SCROLL DOWN 5' ;
  224.  
  225. 'SET TABS 2 EVERY 3' ;
  226.  
  227. 'SET ACTION.C-A-LEFT  BLOCK SHIFT LEFT  3'
  228. 'SET ACTION.C-A-RIGHT BLOCK SHIFT RIGHT 3'
  229.  
  230. /* Set up context sensitive help. */
  231. 'SET ACTION.F1 LXR PPRS HELP'
  232.  
  233. /* Set up automatic indentation. */
  234. 'SET ACTION.C-ENTER  ;INSERT ;PPRS AINEW'
  235.  
  236. /* Set up one key include opening */
  237. 'SET ACTION.A-O  PPRS OPENINC'
  238.  
  239. 'LXR NAVIG.LX'
  240.