Subject: bug#62000: Inconsistent indentation rules for define-configuration

From: Simon Tournier <[email-masked]>
Date: Tue, 07 Mar 2023 14:16:57 +0100

Hi,

Cool you had the number 62000. ;-)

On Mon, 06 Mar 2023 at 12:48, Bruno Victal <[email-masked]> wrote:
> Suspected file: .dir-locals.el
>
> Using 'package' as a field in define-configuration results in
> inconsistent indentation: 
>
> --8<---------------cut here---------------start------------->8---
> (define-configuration/no-serialization mympd-configuration
>   (package
>     (file-like mympd)        ;;;; <<<<<<<<<<<<<<<<<<<<< notice how it's indented with 2 spaces
>     "The package object of the myMPD server."
>     empty-serializer)
>
>   (shepherd-requirement
>    (list-of-symbol '())      ;;;; <<<<<<<<<<<<<<<<<<<<< vs 1 space
>    "This is a list of symbols naming Shepherd services that this service
> will depend on."
>    empty-serializer)
>
> ;; ...
> )
> --8<---------------cut here---------------end--------------->8---

What do you mean by inconsistent?  Do you think that
’sheperd-requirement’ should be management by .dir-locals.el?

Well, .dirl-locals.el does not consider the context, IIUC.

For instance,

        (let ((package something))
          (package
            ()
            )
          )

Because of .dir-locals.el, the rules looks like that:

        (not-in-dir-locals.el
         ()
         )

        (package
          ()
          )

        (package/inherit
            ()
          ()
          )

        (add-before
            ()
            ()
          ()
          )

        (let-keywords
            ()
            ()
            ()
          ()
          )

Or you can see that differently,

        (not-in-dir-locals.el ()
                              ()
                              )

        (package ()
                 ()
                 )

        (package/inherit ()
          ()
          )

        (add-before () ()
          ()
          )

Well, since ’sheperd-requirement’ is not in .dir-locals.el, the
indentation seems expected.  What do you consider as a bug?

Cheer,
simon