PDP-10 Archive: emacs/scheme.emacs from mit_emacs_170_teco_1220 (original) (raw)


Trailing-Edge-PDP-10 Archives-mit_emacs_170_teco_1220- emacs/scheme.emacs


There are no other files named scheme.emacs in the archive.


!* --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
:i*Scheme m.l Lisp_Indent_Language
0m.v Scheme_Indentation_Hook
m.m &_Standard_Lisp_Indentation_Hook uScheme_Indentation_Hook
1m.v Scheme_Indent_DEFAnything
2m.v Scheme_Special_Indent_Offset
0m.v Scheme_Indent_Offset
1m.v Scheme_LET_Indent
1m.v Scheme_FLUID-LET_Indent
1m.v Scheme_LAMBDA_Indent
1m.v Scheme_NAMED-LAMBDA_Indent
1m.v Scheme_MACRO_Indent
2m.v Scheme_MAKE-PACKAGE_Indent
1m.v Scheme_WITHIN-CONTINUATION_Indent
1m.v Scheme_WITH-PRINTER-CHANNEL_Indent
1m.v Scheme_PRINTING-TO-CHANNEL_Indent
1m.v Scheme_LAMBDA-COMPONENTS_Indent
1m.v Scheme_ASSIGNMENT-COMPONENTS_Indent
1m.v Scheme_DEFINITION-COMPONENTS_Indent
1m.v Scheme_OPEN-BLOCK-COMPONENTS_Indent
1m.v Scheme_CLOSED-BLOCK-COMPONENTS_Indent
1m.v Scheme_COMMENT-COMPONENTS_Indent
1m.v Scheme_DECLARATION-COMPONENTS_Indent
1m.v Scheme_COMBINATION-COMPONENTS_Indent
1m.v Scheme_CONDITIONAL-COMPONENTS_Indent
1m.v Scheme_DISJUNCTION-COMPONENTS_Indent
1m.v Scheme_DELAY-COMPONENTS_Indent
1m.v Scheme_ACCESS-COMPONENTS_Indent
1m.v Scheme_IN-PACKAGE-COMPONENTS_Indent
1m.v Scheme_PROCEDURE-COMPONENTS_Indent
M.M ^R_Indent_for_Lisp  M.Q I
1,1M.L Space_Indent_Flag
1,Q(1,Q. M.QW )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}A 

_ _'

!* Load the Scheme-Emacs interface if it isn't aleady loaded.!
1:<m.m&_SCHEDIT_Library_Loaded>"N
  :i*SCHEMEm.vSCHEDIT_Lisp_JName
  m(m.mLoad_Library)SCHEDIT'

!* M-Z, C-M-Y 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_Load_Defun_into_Lisp M.Q ...Y !* and do C-M-Y! m.m^R_SCHEDIT_Load_Buffer_into_Lisp M.Q ..O !* and do M-O.! m.m^R_Find_Scheme_Definition M.Q ...S !* Very simple DEFUN finder.! 0 FO ..Q Scheme_Mode_Hook"E !* Omit global key setups if hook! 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 

!^R Find Scheme Definition:! !^R Find a DEFINE with the given name in this file by searching from the beginning. If given an argument, searches from the next line (to skip this occurrence).!

1,fFind_Scheme_definition_of:_
.[P
0f[Case			 !* Losers.!
!* Really test for arg.  ^Y default differs from calling or a ^R char.!
FF"E BJ'		 !* No arg, start from beginning.!
  "# L'
!* Search for "(DEFINE (FOO" and a delimiter.!
:s(define_(N"E QPJ :i*DNF	Definition_not_foundfs errw 0'
-:s(define_(
0