From: Lars Ingebrigtsen Date: Mon, 18 Oct 2021 08:00:20 +0000 (+0200) Subject: Remove the "def" indentation heuristic X-Git-Tag: emacs-29.0.90~3671^2~510 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=32df2034234056bf24312ef5883671b59a387520;p=emacs.git Remove the "def" indentation heuristic * lisp/emacs-lisp/lisp-mode.el (lisp-indent-function): Don't indent function calls with names that that start with "def" specially (bug#43329). --- diff --git a/etc/NEWS b/etc/NEWS index f4b462516fa..2ef585f12d1 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -164,6 +164,26 @@ Emacs buffers, like indentation and the like. The new ert function * 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 diff --git a/lisp/emacs-lisp/lisp-mode.el b/lisp/emacs-lisp/lisp-mode.el index c2f756c9770..fadc0a73791 100644 --- a/lisp/emacs-lisp/lisp-mode.el +++ b/lisp/emacs-lisp/lisp-mode.el @@ -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)) diff --git a/test/lisp/progmodes/elisp-mode-resources/elisp-indents.erts b/test/lisp/progmodes/elisp-mode-resources/elisp-indents.erts index d3eaac9ba5a..ba2f81a3a9d 100644 --- a/test/lisp/progmodes/elisp-mode-resources/elisp-indents.erts +++ b/test/lisp/progmodes/elisp-mode-resources/elisp-indents.erts @@ -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) +=-=-=