andrew@stl.stc.co.uk (Andrew Macpherson) (03/30/89)
This message contains a context diff relative to emacs18.53 of some
changes I have found useful in modula-2 mode. I hope you also will
find them useful.
*** dist-18.53/lisp/modula2.el Mon May 30 21:45:26 1988
--- modula2.el.new Wed Mar 29 19:02:13 1989
***************
*** 65,70
(define-key map "\C-cy" 'm2-import)
(define-key map "\C-c{" 'm2-begin-comment)
(define-key map "\C-c}" 'm2-end-comment)
(define-key map "\C-c\C-z" 'suspend-emacs)
(define-key map "\C-c\C-v" 'm2-visit)
(define-key map "\C-c\C-t" 'm2-toggle)
--- 65,71 -----
(define-key map "\C-cy" 'm2-import)
(define-key map "\C-c{" 'm2-begin-comment)
(define-key map "\C-c}" 'm2-end-comment)
+ (define-key map "\C-j" 'm2-newline)
(define-key map "\C-c\C-z" 'suspend-emacs)
(define-key map "\C-c\C-v" 'm2-visit)
(define-key map "\C-c\C-t" 'm2-toggle)
***************
*** 153,162
(defun m2-case ()
"Build skeleton CASE statment, prompting for the <expression>."
(interactive)
! (insert "CASE " (read-string ": ") " OF")
! (m2-newline)
! (m2-newline)
! (insert "END (* case *);")
(end-of-line 0)
(m2-tab))
--- 154,164 -----
(defun m2-case ()
"Build skeleton CASE statment, prompting for the <expression>."
(interactive)
! (let ((name (read-string "Case-Expression: ")))
! (insert name " OF")
! (m2-newline)
! (m2-newline)
! (insert "END (* case " name " *);"))
(end-of-line 0)
(m2-tab))
***************
*** 180,187
(defun m2-for ()
"Build skeleton FOR loop statment, prompting for the loop parameters."
(interactive)
! (insert "FOR " (read-string "init: ") " TO " (read-string "end: "))
! (let ((by (read-string "by: ")))
(if (not (string-equal by ""))
(insert " BY " by)))
(insert " DO")
--- 182,193 -----
(defun m2-for ()
"Build skeleton FOR loop statment, prompting for the loop parameters."
(interactive)
! (insert "FOR ")
! (let ((name (read-string "Loop Initialiser: ")) limit by)
! (insert name " TO ")
! (setq limit (read-string "Limit: "))
! (insert limit)
! (setq by (read-string "Step: "))
(if (not (string-equal by ""))
(insert " BY " by))
(insert " DO")
***************
*** 183,193
(insert "FOR " (read-string "init: ") " TO " (read-string "end: "))
(let ((by (read-string "by: ")))
(if (not (string-equal by ""))
! (insert " BY " by)))
! (insert " DO")
! (m2-newline)
! (m2-newline)
! (insert "END (* for *);")
(end-of-line 0)
(m2-tab))
--- 189,199 -----
(insert limit)
(setq by (read-string "Step: "))
(if (not (string-equal by ""))
! (insert " BY " by))
! (insert " DO")
! (m2-newline)
! (m2-newline)
! (insert "END (* for " name " to " limit " *);"))
(end-of-line 0)
(m2-tab))
***************
*** 206,215
(defun m2-if ()
"Insert skeleton IF statment, prompting for <boolean-expression>."
(interactive)
! (insert "IF " (read-string "<boolean-expression>: ") " THEN")
! (m2-newline)
! (m2-newline)
! (insert "END (* if *);")
(end-of-line 0)
(m2-tab))
--- 212,223 -----
(defun m2-if ()
"Insert skeleton IF statment, prompting for <boolean-expression>."
(interactive)
! (insert "IF ")
! (let ((thecondition (read-string "<boolean-expression>: ")))
! (insert thecondition " THEN")
! (m2-newline)
! (m2-newline)
! (insert "END (* if " thecondition " *);"))
(end-of-line 0)
(m2-tab))
***************
*** 228,235
(interactive)
(insert "IMPLEMENTATION MODULE ")
(let ((name (read-string "Name: ")))
! (insert name ";\n\n\n\nEND " name ".\n"))
! (previous-line 3))
(defun m2-or ()
(interactive)
--- 236,254 -----
(interactive)
(insert "IMPLEMENTATION MODULE ")
(let ((name (read-string "Name: ")))
! (insert name ";\n\n\n\nEND " name ".\n")
! (previous-line 3)
! (m2-header)
! (m2-type)
! (newline)
! (m2-var)
! (newline)
! (m2-begin)
! (m2-begin-comment)
! (insert " Module " name " Initialisation Code "))
! (m2-end-comment)
! (newline)
! (m2-tab))
(defun m2-or ()
(interactive)
***************
*** 263,273
(defun m2-with ()
(interactive)
(insert "WITH ")
! (insert (read-string ": "))
! (insert " DO")
! (m2-newline)
! (m2-newline)
! (insert "END (* with *);")
(end-of-line 0)
(m2-tab))
--- 282,293 -----
(defun m2-with ()
(interactive)
(insert "WITH ")
! (let ((name (read-string "Record-Type: ")))
! (insert name)
! (insert " DO")
! (m2-newline)
! (m2-newline)
! (insert "END (* with " name " *);"))
(end-of-line 0)
(m2-tab))
***************
*** 306,312
(m2-newline)
(m2-newline)
(insert "UNTIL ")
! (insert (read-string ": ") ";")
(end-of-line 0)
(m2-tab))
--- 326,332 -----
(m2-newline)
(m2-newline)
(insert "UNTIL ")
! (insert (read-string "<boolean-expression>: ") ";")
(end-of-line 0)
(m2-tab))
***************
*** 320,330
(defun m2-while ()
(interactive)
(insert "WHILE ")
! (insert (read-string ": "))
! (insert " DO")
! (m2-newline)
! (m2-newline)
! (insert "END (* while *);")
(end-of-line 0)
(m2-tab))
--- 340,350 -----
(defun m2-while ()
(interactive)
(insert "WHILE ")
! (let ((name (read-string "<boolean-expression>: ")))
! (insert " DO")
! (m2-newline)
! (m2-newline)
! (insert "END (* while " name " *);"))
(end-of-line 0)
(m2-tab))
--
Andrew Macpherson | God bless the King! --- I mean the Faith's Defender
PSI%234237100122::andrew | God bless (no harm in blessing) the Pretender!
andrew@stl.stc.co.uk | But who Pretender is, or who the King, ---
...mcvax!ukc!stl!andrew | God bless us all! That's quite another thing.