GNU bug report logs -
#73359
30.0.91; editorconfig does not work on xml files
Previous Next
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.
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):
[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: 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):
> 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: 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.