Function: scheme-let-indent
scheme-let-indent is a byte-compiled function defined in scheme.el.gz.
Signature
(scheme-let-indent STATE INDENT-POINT NORMAL-INDENT)
Source Code
;; Defined in /usr/src/emacs/lisp/progmodes/scheme.el.gz
;;; Let is different in Scheme
;; (defun scheme-would-be-symbol (string)
;; (not (string-equal (substring string 0 1) "(")))
;; (defun scheme-next-sexp-as-string ()
;; ;; Assumes that it is protected by a save-excursion
;; (forward-sexp 1)
;; (let ((the-end (point)))
;; (backward-sexp 1)
;; (buffer-substring (point) the-end)))
;; This is correct but too slow.
;; The one below works almost always.
;;(defun scheme-let-indent (state indent-point)
;; (if (scheme-would-be-symbol (scheme-next-sexp-as-string))
;; (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)))