!* -*- TECO -*- Library created and maintained by KMP@MC ! !~Filename~:! !EMACS macros for editting XLMS code! XLMS !XLMS Mode:! !S Setup for editting XLMS code Just like Lisp Mode, but knows something about XLMS's funny syntax ! M(M.M &_Init_Buffer_Locals) M.Q..D !* Make a local called ..D ! 0FO..Q XLMS_..DF"N U..D' !* Dont copy ..D if dont have to ! "#W !* ! 40M.LComment Column !* Set comment column ! :i..D ..D !* Copy ..D ! Q..D M.V XLMS_..D !* Set up to do this faster next time. ! 5*;:f..D_; !* Make semicolon just a break char ! 5*/:f..D_/ !* Make slash just a normal char ! !""! 5*':f..D_' !* Make quote like lisp quote ! 5*":f..D_A !'! !* Make doublequote a normal char ! 5*|:f..D_| !* Make vertical bar just a delimiter ! 5*}:f..D_) !* Make braces work like parens ! 5*{:f..D_( !* Make braces work like parens ! 5*]:f..D_) !* Make brackets like parens ! 5*[:f..D_(' !* Make brackets like parens ! :I* ;_  M.L Comment_Begin !* How to start comment ! :I* ;  M.L Comment_Start !* How to recognize comment start ! :I*  M.L Comment_End !* How to end comment (nothing) ! M.M ^R_Indent_For_LispM.QI !* Make Tab indent for lisp ! m.m^R_Beginning_of_XLMS_Expressionm.Q...A !* Make C-M-A win ! m.m^R_End_of_XLMS_Expressionm.q...E !* Make C-M-E win ! Q¨Q.Í.Q›)M.Q.› !* Ctrl-Rubout <-> Rubout interchange ! qPermit_Unmatched_Paren"l !* If user wanted it, ! 1,0m.LPermit_Unmatched_Paren' !* Make unmatched parens an error ! 1 M(M.M&_Set_Mode_Line)XLMS !* Set mode line ! !^R Beginning of XLMS Expression:! !^R Go to beginning of XLMS expression ! :cw -1*:s !* Search back for Return + Open-Paren ! ( !* or Return + Open-Bracket ! ["ll0'"#fg -1' !^R End of XLMS Expression:! !^R Go to end of XLMS expression ! 1m(m.m ^R_Beginning_of_XLMS_Expression)"l0' !* Find starting point ! flll !* and move to end of exp ! 0 !* relative to there. Return. !