]> git.eshelyaron.com Git - emacs.git/commitdiff
Remove the "def" indentation heuristic
authorLars Ingebrigtsen <larsi@gnus.org>
Mon, 18 Oct 2021 08:00:20 +0000 (10:00 +0200)
committerLars Ingebrigtsen <larsi@gnus.org>
Mon, 18 Oct 2021 08:00:20 +0000 (10:00 +0200)
* lisp/emacs-lisp/lisp-mode.el (lisp-indent-function): Don't
indent function calls with names that that start with "def"
specially (bug#43329).

etc/NEWS
lisp/emacs-lisp/lisp-mode.el
test/lisp/progmodes/elisp-mode-resources/elisp-indents.erts

index f4b462516faf491e18c5d503d50bf787b22e0304..2ef585f12d1eb123830bbaf4080d64714b08ef19 100644 (file)
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -164,6 +164,26 @@ Emacs buffers, like indentation and the like.  The new ert function
 \f
 * Incompatible Lisp Changes in Emacs 29.1
 
+---
+** 'def' indentation changes.
+In 'emacs-lisp-mode', forms with a symbol with a name that start with
+"def" have been automatically indented as if they were 'defun'-like
+forms, for instance:
+
+  (defzot 1
+    2 3)
+
+This heuristic has now been removed, and all functions/macros that
+want to be indented this way have to be marked with
+
+  (declare (indent defun))
+
+or the like.  If the function/macro definition itself can't be
+changed, the indentation can also be adjusted by saying something
+like:
+
+  (put 'defzot 'lisp-indent-function 'defun)
+
 ---
 ** The 'inhibit-changing-match-data' variable is now obsolete.
 Instead, functions like 'string-match' and 'looking-at' now take an
index c2f756c97707c5d8cfe5a59b39d96e0e5803bed7..fadc0a737919d7a6772b057aae145ca05f273737 100644 (file)
@@ -1220,9 +1220,6 @@ Lisp function does not specify a special indentation."
                                        'lisp-indent-function)
                         (get (intern-soft function) 'lisp-indent-hook)))
        (cond ((or (eq method 'defun)
-                  (and (null method)
-                       (> (length function) 3)
-                       (string-match "\\`def" function))
                    ;; Check whether we are in flet-like form.
                    (lisp--local-defform-body-p state))
               (lisp-indent-defform state indent-point))
index d3eaac9ba5a40352f0fa81a87d3b11acc8f28a4d..ba2f81a3a9d00eaae73524280738e373ebf91b73 100644 (file)
@@ -57,3 +57,17 @@ Name: defvar-keymap
   :foo bar
   "\r" #'eww-follow-link)
 =-=-=
+
+Name: def-indent1
+
+=-=
+(defzot-does-not-exist 1
+                       2 3)
+=-=-=
+
+Name: def-indent2
+
+=-=
+(define-keymap 1
+  2 3)
+=-=-=