Subject: Re: bug#76498: (ert-deftest) has indentation of 13 by default

From: Eli Zaretskii <[email-masked]>
Date: Sun, 02 Mar 2025 15:43:42 +0200

> From: Stefan Kangas <[email-masked]>
> Date: Sun, 2 Mar 2025 04:45:32 -0800
> Cc: [email-masked], Eli Zaretskii <[email-masked]>, 
> 	Stefan Monnier <[email-masked]>
> 
> Konstantin Kharlamov <[email-masked]> writes:
> 
> > I'm writing tests for purescript-mode package, and I stumbled upon odd
> > behavior: `ert-deftest` is spuriously indented to either 2 (expected)
> > or 13 (unexpected).
> >
> > After digging into it, I found that if you `emacs -Q some-file-with-
> > tests.el` and try to indent the second line after `ert-deftest`, you'll
> > get size of 13. But if you `(require 'ert)` and try again you'll get 2.
> >
> > This is because, even though `ert-deftest` keyword is declared inside
> > `lisp-mode.el`, but *indentation size* for it resides instead in
> > `ert.el`, as part of "declare" statement of `ert-deftest` macro.
> >
> > This is definitely not expected. First of all, there's no reason for
> > user to evaluate `(require 'ert)` while working with tests — you
> > wouldn't want to experiment with tests in your working Emacs anyway.
> > Which means you get incorrect indentation and left wondering what's
> > happening. Second of all, `ert-deftest` as a keyword resides inside
> > `lisp-mode.el` anyway, so what's the point of having the indentation
> > set in a different place.
> >
> > Could we move the indentation size to `lisp-mode.el`, please?
> 
> I think this is a more general problem that applies to basically any
> macro.  Instead of fixing this locally just for that one macro, maybe we
> should make autoload pick up on that automatically (for autoloaded
> macros)?
> 
> Eli, Stefan, WDYT?

I have no opinion on this (and don't understand the OP's use case in
the first place: does he want Emacs to know about ERT-sepcific macros
without loading ert??), sorry.