bug-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#33301: 27.0.50; broken elisp indentation for non-definition symbols


From: João Távora
Subject: bug#33301: 27.0.50; broken elisp indentation for non-definition symbols starting with "def.."
Date: Thu, 08 Nov 2018 09:52:51 +0000
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/27.0.50 (gnu/linux)

Michael Heerdegen <michael_heerdegen@web.de> writes:

> Noam Postavsky <npostavs@gmail.com> writes:
>
>> > (cond (bla
>> >        ok)
>> >       (defan
>> >         strange))
>
> That's explicitly done in 'lisp-indent-function':
>                  (and (null method)
>                       (> (length function) 3)
>                       (string-match "\\`def" function))) ;; <==

Ah, that's unfortunate.  Still, coundn't we improve the heuristic by
asking if the "function" has a macro definition?  Isn't that closer to
the intended behaviour?

diff --git a/lisp/emacs-lisp/lisp-mode.el b/lisp/emacs-lisp/lisp-mode.el
index afb7cbd1dd..e7373ece85 100644
--- a/lisp/emacs-lisp/lisp-mode.el
+++ b/lisp/emacs-lisp/lisp-mode.el
@@ -1104,7 +1104,8 @@ lisp-indent-function
        (cond ((or (eq method 'defun)
                   (and (null method)
                        (> (length function) 3)
-                       (string-match "\\`def" function)))
+                       (string-match "\\`def" function)
+                       (macrop (intern function))))
               (lisp-indent-defform state indent-point))
              ((integerp method)
               (lisp-indent-specform method state

João








reply via email to

[Prev in Thread] Current Thread [Next in Thread]