This is the mail archive of the guile@cygnus.com mailing list for the guile project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: emacs 20 and Scheme mode


Mark Galassi <rosalia@cygnus.com> writes:

> That, together with better-looking font-lock-mode make emacs-20.2 very
> attractive for Scheme use.

I agree, but there is a bug with indenting the "let" form of Scheme.
I already reported this and here is the patch against it:

cd ~/e20/lisp/progmodes/
diff -c /home/rms/e20/lisp/progmodes/scheme.el.\~1\~ /home/rms/e20/lisp/progmodes/scheme.el
*** /home/rms/e20/lisp/progmodes/scheme.el.~1~	Tue Jun 17 17:53:51 1997
--- /home/rms/e20/lisp/progmodes/scheme.el	Sun Oct  5 20:53:58 1997
***************
*** 356,362 ****
  	       (lisp-indent-specform method state
  				     indent-point normal-indent))
  	      (method
! 		(funcall method state indent-point)))))))
  
  
  ;;; Let is different in Scheme
--- 356,362 ----
  	       (lisp-indent-specform method state
  				     indent-point normal-indent))
  	      (method
! 		(funcall method state indent-point normal-indent)))))))
  
  
  ;;; Let is different in Scheme
***************
*** 378,388 ****
  ;;      (scheme-indent-specform 2 state indent-point)
  ;;      (scheme-indent-specform 1 state indent-point)))
  
! (defun scheme-let-indent (state indent-point)
    (skip-chars-forward " \t")
    (if (looking-at "[-a-zA-Z0-9+*/?!@$%^&_:~]")
!       (lisp-indent-specform 2 state indent-point (current-column))
!       (lisp-indent-specform 1 state indent-point (current-column))))
  
  ;; (put 'begin 'scheme-indent-function 0), say, causes begin to be indented
  ;; like defun if the first form is placed on the next line, otherwise
--- 378,388 ----
  ;;      (scheme-indent-specform 2 state indent-point)
  ;;      (scheme-indent-specform 1 state indent-point)))
  
! (defun scheme-let-indent (state indent-point normal-indent)
    (skip-chars-forward " \t")
    (if (looking-at "[-a-zA-Z0-9+*/?!@$%^&_:~]")
!       (lisp-indent-specform 2 state indent-point normal-indent)
!     (lisp-indent-specform 1 state indent-point normal-indent))))
  
  ;; (put 'begin 'scheme-indent-function 0), say, causes begin to be indented
  ;; like defun if the first form is placed on the next line, otherwise

Diff finished at Sun Oct  5 20:54:35