Fix 'scheme-indent-function' to indent s-expressions starting with a keyword properly, like this: (#:foo 1 #:bar 2) instead of like this: (#:foo 1 #:bar 2) The fix is made by Mark H Weaver : --- emacs-29.1/lisp/progmodes/scheme.el.orig 2023-01-01 14:46:43.000000000 +0100 +++ emacs-29.1/lisp/progmodes/scheme.el 2023-08-02 19:32:06.837677107 +0200 @@ -539,6 +539,12 @@ (> (length function) 3) (string-match "\\`def" function))) (lisp-indent-defform state indent-point)) + ((and (null method) + (> (length function) 1) + ;; The '#' in '#:' seems to get lost, not sure why + (string-match "\\`:" function)) + (let ((lisp-body-indent 1)) + (lisp-indent-defform state indent-point))) ((integerp method) (lisp-indent-specform method state indent-point normal-indent))