SoulEdit: Difference between revisions

From m204wiki
Jump to navigation Jump to search
(Created page with "'''SoulEdit''' is a code editor, written in SOUL, specifically designed for SOUL application development. '''SoulEdit" features extended editing capability - like split/join,...")
 
mNo edit summary
Line 7: Line 7:
<var class="product">SirPro</var> is a menu-driven application subsystem that provides tools for programmers, database administrators and application managers inside the Model 204 environment.  <var class="product">SirPro</var>'s primary feature set is centered on the manipulation of <var class="product">Model 204</var> procedures contained in Model 204 files.  <var class="product">SirPro</var> allows a programmer to search and display lists of procedures, and to Browse, Edit, Copy, Move, Delete and Rename procedures. To access '''SoulEdit''' from <var class="product">SirPro</var>, use the 'E' prefix command from the list of procedure. If '''SoulEdit''' is defined as a standalone apsy (for example, 'SE') simply type the apsy name with a procedure: '''SE MYPROCEDURE''' where MYPROCEDURE is a procedure in the current file.
<var class="product">SirPro</var> is a menu-driven application subsystem that provides tools for programmers, database administrators and application managers inside the Model 204 environment.  <var class="product">SirPro</var>'s primary feature set is centered on the manipulation of <var class="product">Model 204</var> procedures contained in Model 204 files.  <var class="product">SirPro</var> allows a programmer to search and display lists of procedures, and to Browse, Edit, Copy, Move, Delete and Rename procedures. To access '''SoulEdit''' from <var class="product">SirPro</var>, use the 'E' prefix command from the list of procedure. If '''SoulEdit''' is defined as a standalone apsy (for example, 'SE') simply type the apsy name with a procedure: '''SE MYPROCEDURE''' where MYPROCEDURE is a procedure in the current file.


===Command Line options===                                                                                                                       
==Command Line options==      


     T[ n]|TOP[ n]|M+PF7                      - go to the Top of the editor content... optional n (linenum) as top of page                     
     T[ n]|TOP[ n]|M+PF7                      - go to the Top of the editor content... optional n (linenum) as top of page                     
Line 44: Line 44:
     RUN TERM (saves & runs code on current thread)                                                                                             
     RUN TERM (saves & runs code on current thread)                                                                                             
     RUN [TERM] [<procName> [FILE <filename> [PASS <password]]]                                                                                 
     RUN [TERM] [<procName> [FILE <filename> [PASS <password]]]                                                                                 
     SHOW [[RUN|OUTPUT]|RUN OUTPUT]          - shows the output from the last executed code or commands line VAR/SHOW [SEQ] CHANGES           
     SHOW [ [RUN|OUTPUT]|RUN OUTPUT]          - shows the output from the last executed code or commands line VAR/SHOW [SEQ] CHANGES           
     SHOW CHANGES                            - compares current content against proc on file and is displayed in a scrollable form             
     SHOW CHANGES                            - compares current content against proc on file and is displayed in a scrollable form             
     SHOW SEQ CHANGES                        - do compare against SEQ version in same procfile                                                 
     SHOW SEQ CHANGES                        - do compare against SEQ version in same procfile                                                 
Line 82: Line 82:
     CLE¦CLEAR ERRORS                          - Clear the error bookmarks                                                                     
     CLE¦CLEAR ERRORS                          - Clear the error bookmarks                                                                     
                                                                                                                                                                                                                                                    
                                                                                                                                                                                                                                                    
===Line Prefix Commands===
==Line Prefix Commands==
 
===Block Prefixes - with repeating ignored===  


====Block Prefixes====
(with repeating ignored)... so CC3 ignores the 3
     CC = Block Copy                    (requires targeting prefix)                                                                           
     CC = Block Copy                    (requires targeting prefix)                                                                           
     MM = Block Move                    (requires targeting prefix)                                                                           
     MM = Block Move                    (requires targeting prefix)                                                                           
Line 94: Line 94:
     FF = Format specified block                                                                                                   
     FF = Format specified block                                                                                                   
                                                                                                                                    
                                                                                                                                    
====Block Prefixs (with repeating honored)====
===Block Prefixes - with repeating honored===


... so ""3 replicates the block 3 times
  (so, for instance, ""3 replicates the block 3 times)
   RR "" = Block Replicate                                                                                                         
   RR "" = Block Replicate                                                                                                         
   << (( = Block Shift Left  (with protections to prevent loss of leading text)                                                     
   << (( = Block Shift Left  (with protections to prevent loss of leading text)                                                     
   >> )) = Block Shift Right (with protections to prevent loss of trailing text)                                                   
   >> )) = Block Shift Right (with protections to prevent loss of trailing text)                                                   
                                                                                                                                    
                                                                                                                                    
====Targeting Prefixs====
===Targeting Prefixes===
 
       A = Target After Line                                                                                                       
       A = Target After Line                                                                                                       
       F = Target Following Line                                                                                                   
       F = Target Following Line                                                                                                   
Line 107: Line 108:
       P = Target Previous Line                                                                                                     
       P = Target Previous Line                                                                                                     
                                                                                                                                    
                                                                                                                                    
====Singular Prefixs====
===Singular Prefixes - with repeating ignored===
(with repeating ignored)
 
       C = copy                          (requires targeting prefix)                                                               
       C = copy                          (requires targeting prefix)                                                               
       M = Move                          (requires targeting prefix)                                                               
       M = Move                          (requires targeting prefix)                                                               
Line 116: Line 117:
       X = Expand/collapse INCLUDE inline... only usable on INCLUDE lines... the expanded INCLUDE lines are protected               
       X = Expand/collapse INCLUDE inline... only usable on INCLUDE lines... the expanded INCLUDE lines are protected               
                                                                                                                                    
                                                                                                                                    
====Singular Prefixes====
===Singular Prefixes - with repeating honored===
(with repeating honored)                 
 
       H = Hide                                                                                                                     
       H = Hide                                                                                                                     
     S + = Show                                                                                                                     
     S + = Show                                                                                                                     
Line 125: Line 126:
     < ( = Shift Line Left  (with protections to prevent loss of leading text)                                                     
     < ( = Shift Line Left  (with protections to prevent loss of leading text)                                                     
     > ) = Shift Line Right (with protections to prevent loss of trailing text)                                                     
     > ) = Shift Line Right (with protections to prevent loss of trailing text)                                                     


==See also==
==See also==

Revision as of 19:46, 9 July 2015

SoulEdit is a code editor, written in SOUL, specifically designed for SOUL application development. SoulEdit" features extended editing capability - like split/join, bookmarks, display filtering and syntax-specific colors - as well as facilities that make running, debugging and testing SOUL code more seamless and intuitive.

SoulEdit runs as an application subsystem, so it needs an apsy definition for it to operate along with a minimum 640K server size - 750K would be safer as that provides room for future enhancements and the addition of user-written macros. See the ULSPF Installation Guide for more information on setting up the environment for SoulEdit. SoulEdit is also built into SirPro, which is part of the UL/SPF family of products from Rocket Software. It can also be run as a standalone editor by setting up a separate APSY - at Rocket we run it as an apsy called SE so it's executable from the command line.

Overview

SirPro is a menu-driven application subsystem that provides tools for programmers, database administrators and application managers inside the Model 204 environment. SirPro's primary feature set is centered on the manipulation of Model 204 procedures contained in Model 204 files. SirPro allows a programmer to search and display lists of procedures, and to Browse, Edit, Copy, Move, Delete and Rename procedures. To access SoulEdit from SirPro, use the 'E' prefix command from the list of procedure. If SoulEdit is defined as a standalone apsy (for example, 'SE') simply type the apsy name with a procedure: SE MYPROCEDURE where MYPROCEDURE is a procedure in the current file.

Command Line options

   T[ n]|TOP[ n]|M+PF7                      - go to the Top of the editor content... optional n (linenum) as top of page                     
   B|BOTTOM|M+PF8                           - go to the Bottom of the editor content                                                         
   C <lineNumber>                           - center the line specified by lineNumber... lineNumber is absolute... not relative              
   +|-<numericValue>                        - position content relative to the numeric value                                                 
   [-]F|Find <value>                        - find previous/next value from cursor position (PF5 repeats last find)                          
   [-]/<value>                              - find previous/next value from cursor position (PF5 repeats last find)                          
   R|REPLACE/<replaceThis>/<withThis>[[/n] ALL]  - replace... n = replacements per line                    (verify not implemented yet)      
   for replace... the character immediately following the R or REPLACE is used as a delimiter between tokens(cannot be alphanumeric)         
   A|ALL <value>                            - hide all lines that do not match <value>... command without <value> performs a SHOW ALL instead
   HIDE <value>                             - hide all lines that match <value>                                                              
   SHOW|HIDE COMMENTS                       - show or hide all comment lines                                                                 
   UNHIDE <value>                           - unhide all lines that match <value>                                                            
   CLEAR HIDDEN|RESET HIDDEN                - clear all hidden lines (unhide)                                                                
   SHOW ALL|SHOW HIDDEN                     - clear all hidden lines (unhide)                                                                
   [IN <fileName> ]GET <procName>           - obtain the named proc and insert into editor... can use line command targeting                 
   SAVE[ <procName>]                        - save current editor content (optional save into a different named proc including temp procs)   
   END                                      - perform SAVE and exit the editor                                                               
   QUIT                                     - exit the editor without saving or giving a modification warning                                
   ALIGN <value>                            - requires BB line command range  (has issues when crossing 'block' statements)                  
   SORT [A|D|ASC|DESC|ASCENDING|DESCENDING] - requires BB line command range                                                                 
   CLEAR                                    - clear all line commands                                                                        
   RESET PROC|RELOAD|RELOAD PROC            - discards any changes by reloading the current procedure from file                              
   REFRESH PAGE                             - ignore any changes upon this page since last enter                                             
   NUM|NUMS|NUMBERS [ON|OFF]                - show line numbers in prefix field (toggle)                                                     
   =                                        - Repeat last command (same as PF9)                                                              
   command stack (pf6)                      - cycles thru the command stack                                                                  
   SET COMMAND STACK n                      - defaults to 10... but user may want to increase/decrease.                                      
   split/join lines (pf2)                   - cursor sensitive... if no data from cursor a join is performed else split is performed         
   FLIP HIDDEN                              - flip the hidden state of lines... hidden->shown && shown->hidden                               
   FF|BB+FORMAT - FORMAT [width] [INDENT n] - format range (indents and alignment)... not fully completed... but mostly functional           
   UNDO FORMAT                              - reinstates the last FORMAT to its state before the format (does not check if code has changed) 
   SET FORMAT <type>                        - force the formatting type used by FORMAT/FF .. Valid types: M204, XSL                          
   RUN   (saves & runs code in a daemon)    - output from the execution is scrollable (lost daemons are trapped and reported)                
   RUN TERM (saves & runs code on current thread)                                                                                            
   RUN [TERM] [<procName> [FILE <filename> [PASS <password]]]                                                                                
   SHOW [ [RUN|OUTPUT]|RUN OUTPUT]           - shows the output from the last executed code or commands line VAR/SHOW [SEQ] CHANGES           
   SHOW CHANGES                             - compares current content against proc on file and is displayed in a scrollable form            
   SHOW SEQ CHANGES                         - do compare against SEQ version in same procfile                                                
   SCALE  (toggles on/off)                  - |...+....1....+....2....+....3...etc                                                           
   PFKEYS (toggles on/off)                  - show valid pfkeys upon the last line of the page                                               
   NEW PROC[EDURE]                          - clear current code (essentially a quit)... and start with a blank proc                         
   Formating for XSL                        - change formating where proc name ends with .xsl                                                
   PF1|HELP                                 - yup... right... will get right onto that   (basic atm... this actually)                        
   VAR|VARS|VARIABLES                       - show variable usage(counts) within scope                                                       
   SETUP|PROFILE                            - set user editor preferences                                                                    
   COLORS                                   - set user editor color preferences                                                              
   SET FILE <fileName>                      - sets the filename for saving procedures... also clears the procedure name                      
   bookmarks   .<value>                     - bookmarks...example.  .foo as a line command bookmarks it...  command .foo focuses the bookmark
   CLEAR BOOKMARKS                          - clear all bookmarks                                                                            
   XCOMPARE|XC [EXACT|DEBLANK|COMPRESS]      - XCompares current content against proc on file and is displayed in a scrollable form          
   XCOMPARE SEQ|XCS [EXACT|DEBLANK|COMPRESS] - do XCompare against SEQ version in same procfile                                              
   LAYOUT|MAP                                - list all class/subroutines/functions... can use pf4 to focus entry from listing               
   cursor sensitive FIND                     - PF10       performs a FIND for the text under the cursor                                      
   cursor sensitive ALL                      - shift+PF10 performs an ALL for the text under the cursor                                      
   cursor sensitive TraceText                - PF11       creates/appends the value under the cursor to a traceText upon the following line  
   open INCLUDE code specified by cursor     - PF12       when a cursor is on a line with an include statement will save current and -       
                                                          open(for edit) the include                                                         
   INCLUDES command                          - show heirarchy of all includes referenced within the current procedure                        
   PROTECT/UNPROTECT                         - force the displayed content to be protected/unprotected                                       
   BB¦BLOCK WHERE                            - Used to add BB markers to the current 'where' scope                                           
   AUDIT [minutes¦timestamp¦LAST[RUN]]       - This command shows the journal lines for the user... defaults to the last minute unless an    
                                               optional time is supplied                                                                     
   SNAP¦SNAPSHOT                             - Takes a copy of the code in the current editing session and saves it as snapshot              
   XCB [previous snapshot offset]            - Compare the current code against the last snapshot taken                                      
                                                                                                                                             

Used in conjunction with the pf12 key on the run output when compilation/runtime errors occur, the following commands can be used to navigate thru the errors in the currently loaded procedure:-

   NE¦NEXT ERROR                             - Navigate to the next error                                                                    
   PE¦PREVIOUS ERROR                         - Navigate to the previous error                                                                
   CE¦CURRENT ERROR                          - Navigate to the current error                                                                 
   CLE¦CLEAR ERRORS                          - Clear the error bookmarks                                                                     
                                                                                                                                                                                                                                                 

Line Prefix Commands

Block Prefixes - with repeating ignored

    CC = Block Copy                     (requires targeting prefix)                                                                          
    MM = Block Move                     (requires targeting prefix)                                                                          
    DD = Block Delete                                                                                                                        
    HH = Block Hide                                                                                                                          
    ** = Block Comment (set/clear - first line is used to determine state switch... if first char is * then comments are removed)
    BB = Block Boundaries.. used with editor commands: SORT, ALIGN, FORMAT.    Optional for R, REPLACE                           
    FF = Format specified block                                                                                                  
                                                                                                                                 

Block Prefixes - with repeating honored

  (so, for instance, ""3 replicates the block 3 times)
 RR "" = Block Replicate                                                                                                         
 << (( = Block Shift Left  (with protections to prevent loss of leading text)                                                    
 >> )) = Block Shift Right (with protections to prevent loss of trailing text)                                                   
                                                                                                                                 

Targeting Prefixes

     A = Target After Line                                                                                                       
     F = Target Following Line                                                                                                   
     B = Target Before Line                                                                                                      
     P = Target Previous Line                                                                                                    
                                                                                                                                 

Singular Prefixes - with repeating ignored

     C = copy                           (requires targeting prefix)                                                              
     M = Move                           (requires targeting prefix)                                                              
     E = Expand line to 255 bytes  (toggles on/off)                                                                              
     / = center this line                                                                                                        
     - = folding of blocks... hide lines from marked line to closing/opening block... example: if -> end if... etc               
     X = Expand/collapse INCLUDE inline... only usable on INCLUDE lines... the expanded INCLUDE lines are protected              
                                                                                                                                 

Singular Prefixes - with repeating honored

     H = Hide                                                                                                                    
   S + = Show                                                                                                                    
     D = Delete                                                                                                                  
   R " = Replicate                                                                                                               
     * = Comment (set/clear - if first char is * then comments are removed)                                                      
   < ( = Shift Line Left  (with protections to prevent loss of leading text)                                                     
   > ) = Shift Line Right (with protections to prevent loss of trailing text)                                                    

See also

SirPro

SirLib