GNU bug report logs - #73359
30.0.91; editorconfig does not work on xml files

Previous Next

Package: emacs;

Reported by: Nguyễn Quốc Minh <nqminhuit <at> gmail.com>

Date: Thu, 19 Sep 2024 14:29:03 UTC

Severity: normal

Found in version 30.0.91

Done: Eli Zaretskii <eliz <at> gnu.org>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 73359 in the body.
You can then email your comments to 73359 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-gnu-emacs <at> gnu.org:
bug#73359; Package emacs. (Thu, 19 Sep 2024 14:29:03 GMT) Full text and rfc822 format available.

Acknowledgement sent to Nguyễn Quốc Minh <nqminhuit <at> gmail.com>:
New bug report received and forwarded. Copy sent to bug-gnu-emacs <at> gnu.org. (Thu, 19 Sep 2024 14:29:03 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Nguyễn Quốc Minh <nqminhuit <at> gmail.com>
To: bug-gnu-emacs <at> gnu.org
Subject: 30.0.91; editorconfig does not work on xml files
Date: Thu, 19 Sep 2024 14:29:48 +0700
[Message part 1 (text/plain, inline)]
Hello,

I have encountered an issue when opening an xml file from emacs 30, here is
how to reproduce:
1. start emacs with 'emacs -Q -mm'
2. enable editorconfig-mode with 'M-x editorconfig-mode'
3. open an xml file, e.g., pom.xml from a Java project.
4. observe the minibuffer:

For information about GNU Emacs and the GNU system, type C-h C-a.
funcall-interactively: Text is read-only [10 times]
Quit
Editorconfig mode enabled
Quit
pom.xml has auto save data; consider M-x recover-this-file
Using vacuous schema
Unsupported element in ‘editorconfig-indentation-alist’:
((nxml-attribute-indent . 2) . 2)
Directory-local variables error: (wrong-type-argument listp Unsupported
element in ‘editorconfig-indentation-alist’: ((nxml-attribute-indent . 2) .
2))


My '.editorconfig' content:

root = true
[*]
charset = utf-8
end_of_line = lf
insert_final_newline = true
trim_trailing_whitespace = true
indent_style = space
indent_size = 2
[*.{java,proto}]
indent_size = 4

Best regards,
minh
[Message part 2 (text/html, inline)]

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#73359; Package emacs. (Thu, 19 Sep 2024 16:11:02 GMT) Full text and rfc822 format available.

Message #8 received at 73359 <at> debbugs.gnu.org (full text, mbox):

From: Eli Zaretskii <eliz <at> gnu.org>
To: Nguyễn Quốc Minh <nqminhuit <at> gmail.com>,
 Stefan Monnier <monnier <at> iro.umontreal.ca>
Cc: 73359 <at> debbugs.gnu.org
Subject: Re: bug#73359: 30.0.91; editorconfig does not work on xml files
Date: Thu, 19 Sep 2024 19:10:25 +0300
> From: Nguyễn Quốc Minh
>  <nqminhuit <at> gmail.com>
> Date: Thu, 19 Sep 2024 14:29:48 +0700
> 
> 1. start emacs with 'emacs -Q -mm'
> 2. enable editorconfig-mode with 'M-x editorconfig-mode'
> 3. open an xml file, e.g., pom.xml from a Java project.
> 4. observe the minibuffer:
> 
> For information about GNU Emacs and the GNU system, type C-h C-a.
> funcall-interactively: Text is read-only [10 times]
> Quit
> Editorconfig mode enabled
> Quit
> pom.xml has auto save data; consider M-x recover-this-file
> Using vacuous schema
> Unsupported element in ‘editorconfig-indentation-alist’: ((nxml-attribute-indent . 2) . 2)
> Directory-local variables error: (wrong-type-argument listp Unsupported element in
> ‘editorconfig-indentation-alist’: ((nxml-attribute-indent . 2) . 2))

Stefan, this element of editorconfig-indentation-alist:

      (nxml-mode nxml-child-indent (nxml-attribute-indent . 2))

seems to violate the expected form of the elements, which is
(MODE . SETTING).  It was added as part of commit 8e143a2f300, whose
log says "Sync with upstream", so I suppose this form of the element
is supported by upstream, but not by Emacs?  I guess we need to
replace it with a function or something?

Btw, can we clarify the doc string of editorconfig-indentation-alist,
where it says "where SETTING should obey the same rules as
`editorconfig-indent-size-vars'"?  Because if one looks at the doc
string of editorconfig-indent-size-vars, the "rules" are either
trivial or unclear.  If SETTING above should be one or more symbols
("list of variables that need to be set to SIZE") or a function that
returns a list of (VAR . VAL) pairs, then why not say that in the doc
string of editorconfig-indentation-alist?




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#73359; Package emacs. (Fri, 20 Sep 2024 19:00:02 GMT) Full text and rfc822 format available.

Message #11 received at 73359 <at> debbugs.gnu.org (full text, mbox):

From: Stefan Monnier <monnier <at> iro.umontreal.ca>
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: 73359 <at> debbugs.gnu.org,
 Nguyễn Quốc Minh <nqminhuit <at> gmail.com>
Subject: Re: bug#73359: 30.0.91; editorconfig does not work on xml files
Date: Fri, 20 Sep 2024 14:58:54 -0400
> Stefan, this element of editorconfig-indentation-alist:
>
>       (nxml-mode nxml-child-indent (nxml-attribute-indent . 2))
>
> seems to violate the expected form of the elements, which is
> (MODE . SETTING).  It was added as part of commit 8e143a2f300, whose
> log says "Sync with upstream", so I suppose this form of the element
> is supported by upstream, but not by Emacs?  I guess we need to
> replace it with a function or something?

Yup.  I pushed the patch below to `emacs-30` for it.

> Btw, can we clarify the doc string of editorconfig-indentation-alist,
> where it says "where SETTING should obey the same rules as
> `editorconfig-indent-size-vars'"?  Because if one looks at the doc
> string of editorconfig-indent-size-vars, the "rules" are either
> trivial or unclear.  If SETTING above should be one or more symbols
> ("list of variables that need to be set to SIZE") or a function that
> returns a list of (VAR . VAL) pairs, then why not say that in the doc
> string of editorconfig-indentation-alist?

I didn't want to do it because it's redundant with the docstring of
`editorconfig-indent-size-vars`, but see the patch where I tried to
address your request.


        Stefan


diff --git a/lisp/editorconfig.el b/lisp/editorconfig.el
index 931781007d9..870f6d32162 100644
--- a/lisp/editorconfig.el
+++ b/lisp/editorconfig.el
@@ -211,7 +211,7 @@ editorconfig-indentation-alist
     (mustache-mode mustache-basic-offset)
     (nasm-mode nasm-basic-offset)
     (nginx-mode nginx-indent-level)
-    (nxml-mode nxml-child-indent (nxml-attribute-indent . 2))
+    (nxml-mode . editorconfig--get-indentation-nxml-mode)
     (objc-mode c-basic-offset)
     (octave-mode octave-block-offset)
     (perl-mode perl-indent-level)
@@ -266,7 +266,9 @@ editorconfig-indentation-alist
 `editorconfig-indent-size-vars'.
 
 Each element should look like (MODE . SETTING) where SETTING
-should obey the same rules as `editorconfig-indent-size-vars'."
+should obey the same rules as `editorconfig-indent-size-vars',
+i.e. either a list of variable names or a function returning a list of (VAR . VAL)
+settings."
   :type '(alist :key-type symbol
                 :value-type (choice function
                                     (repeat
@@ -341,6 +343,11 @@ editorconfig--get-indentation-latex-mode
     (LaTeX-indent-level . ,size)
     (LaTeX-item-indent . ,(- size))))
 
+(defun editorconfig--get-indentation-nxml-mode (size)
+  "Vars to set `nxml-mode' indent size to SIZE."
+  `((nxml-child-indent . ,size)
+    (nxml-attribute-indent . ,(* 2 size))))
+
 (defun editorconfig--get-indentation-lisp-mode (size)
   "Set indent size to SIZE for Lisp mode(s)."
   (when (cond ((null editorconfig-lisp-use-default-indent)  t)





Reply sent to Eli Zaretskii <eliz <at> gnu.org>:
You have taken responsibility. (Sat, 21 Sep 2024 10:37:02 GMT) Full text and rfc822 format available.

Notification sent to Nguyễn Quốc Minh <nqminhuit <at> gmail.com>:
bug acknowledged by developer. (Sat, 21 Sep 2024 10:37:02 GMT) Full text and rfc822 format available.

Message #16 received at 73359-done <at> debbugs.gnu.org (full text, mbox):

From: Eli Zaretskii <eliz <at> gnu.org>
To: Stefan Monnier <monnier <at> iro.umontreal.ca>
Cc: 73359-done <at> debbugs.gnu.org, nqminhuit <at> gmail.com
Subject: Re: bug#73359: 30.0.91; editorconfig does not work on xml files
Date: Sat, 21 Sep 2024 13:36:25 +0300
> From: Stefan Monnier <monnier <at> iro.umontreal.ca>
> Cc: Nguyễn Quốc Minh <nqminhuit <at> gmail.com>,
>   73359 <at> debbugs.gnu.org
> Date: Fri, 20 Sep 2024 14:58:54 -0400
> 
> > Stefan, this element of editorconfig-indentation-alist:
> >
> >       (nxml-mode nxml-child-indent (nxml-attribute-indent . 2))
> >
> > seems to violate the expected form of the elements, which is
> > (MODE . SETTING).  It was added as part of commit 8e143a2f300, whose
> > log says "Sync with upstream", so I suppose this form of the element
> > is supported by upstream, but not by Emacs?  I guess we need to
> > replace it with a function or something?
> 
> Yup.  I pushed the patch below to `emacs-30` for it.

Thanks, I'm therefore closing this bug.

> > Btw, can we clarify the doc string of editorconfig-indentation-alist,
> > where it says "where SETTING should obey the same rules as
> > `editorconfig-indent-size-vars'"?  Because if one looks at the doc
> > string of editorconfig-indent-size-vars, the "rules" are either
> > trivial or unclear.  If SETTING above should be one or more symbols
> > ("list of variables that need to be set to SIZE") or a function that
> > returns a list of (VAR . VAL) pairs, then why not say that in the doc
> > string of editorconfig-indentation-alist?
> 
> I didn't want to do it because it's redundant with the docstring of
> `editorconfig-indent-size-vars`, but see the patch where I tried to
> address your request.

Thanks.




bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Sat, 19 Oct 2024 11:24:10 GMT) Full text and rfc822 format available.

This bug report was last modified 299 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.