!* -*-TECO-*- ! !~Filename~:! !Setup EMACS for editing Scheme code.! SCHEME !& Scheme Mode:! !Scheme Mode:! !C Set things up for editing Scheme code. Similar to Lisp mode, but syntax is slightly different. Loads the SCHEDIT library (similar to Ledit) and assigns keys. Puts ^R Indent for LISP on Tab, puts tab-hacking rubout on Rubout. Paragraphs are delimited only by blank lines.! !* This is called & Scheme Mode because the Scheme Mode function is an MM variable, and would shadow that name of this function.! M(M.M &_Init_Buffer_Locals) !* Standard Major Mode init routine.! 1m.vScheme_Library_Loaded M.M ^R_Indent_for_Lisp M.Q I 1,1M.L Space_Indent_Flag 1,Q¨1,Q. M.Q›W )M.Q .› !* Exchange rubout flavors.! 1,56 M.L Comment_Column 1,(:I*;) M.L Comment_Start 1,(:I*) M.L Paragraph_Delimiter QPermit_Unmatched_Paren"L 1,0M.LPermit_Unmatched_Paren' M.Q ..D 0FO..Q Scheme_..D F"N U..D' !* Select the Lisp syntax table! "# W :G..D U..D !* creating it if doesn't exist.! Q..D M.V Scheme_..D -1[1 32< %1*5+1:F..D A> 9*5+1:F..D_ !""""! 1M(M.M &_Alter_..D) || "| '' `' ,' @' [A]A {A}A îî _ _' !* Load the Scheme-Emacs interface if it isn't aleady loaded.! 1:"N :i*SCHEMEm.vSCHEDIT_Lisp_JName m(m.mLoad_Library)SCHEDIT' !* M-Z and M-O are local to scheme mode. C-X Z is global.! m.m^R_SCHEDIT_Zap_Defun M.Q ..Z !* Set up Zap Defun on M-Z! m.m^R_SCHEDIT_Zap_Region M.Q ..O !* and Zap Region on M-O.! m.m^R_SCHEDIT_Resume_Lispu:.x(Z) !* Set up C-X Z to resume lisp! et FOO.SCM 1M(M.M&_Set_Mode_Line) Scheme