!~FILENAME~:! DELIM !& Setup DELIM Library:! Q.]U...G FSBCONSM.VDelimiter ..D Buffer M.M& Matching ParenM.VMM & Normal Matching Paren M.M& Display Matching DelimiterF(M.VMM & Matching ParenW)FS^RParen M(M.MMake Delimiter Pairs)()[]{} M(:I*<F(-33.@; M.M^R MOVE OVER DELIMITERS,)+200.FS^RCMACROW>) )()[]{}<>  !^R Move Over Delimiters:! [..D M(M.M& Delim Munge ..D) FS^RLast&177.( )*5:+1:G..D-("E f"e1'f"l(fll):'*(-1)fl(' "#f"e1'f"l(-fll):'fl(' "E)L.'"#)[1[0q1-."Nq1'"#q0':' ?. !& Delim Munge ..D:! FS^RLast&177.[0[1[2[3 Q0*5+2[4Q4:G..D*5+2[1 [..OQ..O[OQDelimiter ..D BufferU..OG..DJ <:S(); .-(./5*5)-2"E Q1-."N Q4-."N .-1:\U2-X3.-1FA FN2:F..D3''' > HFX..DQOU..O !Make Delimiter Pairs:! [1[2 *5:F..D / <u1q1-"e0;'u2q2-"e0;' q1*5:f..D (2 q2*5:f..D )1 >  !UnMake Delimiter Pairs:! <F(-@;)F(*5:f..DAA  )+200.F(@fs^RInit,)@fs^RCMACRO >)  !& Display Matching Delimiter :! M(M.M& Delim Munge ..D) F:M(M.M& Normal Matching Paren) !~DOC~ ~FILENAME~:! DELIM macros for moving over []{}<>(), etc. To make other characters delimiters, run MAKE DELIMITER PAIRS and assign ^R MOVE OVER DELIMITERS to control, meta, or control-meta slots for the delimiter characters. For example: MM Make Delimiter Pairs<> M.M^R Move Over Delimiters U.< M.M^R Move Over Delimiters U.> will make C-< and C-> move back and forward (respectively) over <> Use UNMAKE DELIMITER PAIRS to undo this. Also sets up FS ^R Paren to do the right thing. !~DOC~ & Setup DELIM Library:! S Assign macros so control []{}()<> moves over these !~DOC~ ^R Move Over Delimiters:! ^R Move over balanced pairs of delimiters. With a pre-comma argument, just set .,. !~DOC~ & Delim Munge ..D:! S Munge ..D appropriately for delimiter operation. !~DOC~ Make Delimiter Pairs:! C Define entries in the Delimiter ..D Table for balanced pairs of delimiters. The string argument should be an even number of characters, paired. Note that the delimiter characters must have ^R Move Over Delimiters assigned to one of their ^R macro slots (control, meta, or control-meta - but not TOP). !~DOC~ UnMake Delimiter Pairs:! C Resets the syntax of delimiter characters. !~DOC~ & Display Matching Delimiter :! S After a delimiter has been inserted, display the matching one. !~DIRECTORY~:! & Setup DELIM Library ^R Move Over Delimiters & Delim Munge ..D Make Delimiter Pairs UnMake Delimiter Pairs & Display Matching Delimiter