unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#73359: 30.0.91; editorconfig does not work on xml files
@ 2024-09-19  7:29 Nguyễn Quốc Minh
  2024-09-19 16:10 ` Eli Zaretskii
  0 siblings, 1 reply; 4+ messages in thread
From: Nguyễn Quốc Minh @ 2024-09-19  7:29 UTC (permalink / raw)
  To: 73359

[-- Attachment #1: Type: text/plain, Size: 1031 bytes --]

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

[-- Attachment #2: Type: text/html, Size: 1558 bytes --]

^ permalink raw reply	[flat|nested] 4+ messages in thread

* bug#73359: 30.0.91; editorconfig does not work on xml files
  2024-09-19  7:29 bug#73359: 30.0.91; editorconfig does not work on xml files Nguyễn Quốc Minh
@ 2024-09-19 16:10 ` Eli Zaretskii
  2024-09-20 18:58   ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
  0 siblings, 1 reply; 4+ messages in thread
From: Eli Zaretskii @ 2024-09-19 16:10 UTC (permalink / raw)
  To: Nguyễn Quốc Minh, Stefan Monnier; +Cc: 73359

> From: Nguyễn Quốc Minh
>  <nqminhuit@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?





^ permalink raw reply	[flat|nested] 4+ messages in thread

* bug#73359: 30.0.91; editorconfig does not work on xml files
  2024-09-19 16:10 ` Eli Zaretskii
@ 2024-09-20 18:58   ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2024-09-21 10:36     ` Eli Zaretskii
  0 siblings, 1 reply; 4+ messages in thread
From: Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2024-09-20 18:58 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: 73359, Nguyễn Quốc Minh

> 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)






^ permalink raw reply related	[flat|nested] 4+ messages in thread

* bug#73359: 30.0.91; editorconfig does not work on xml files
  2024-09-20 18:58   ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2024-09-21 10:36     ` Eli Zaretskii
  0 siblings, 0 replies; 4+ messages in thread
From: Eli Zaretskii @ 2024-09-21 10:36 UTC (permalink / raw)
  To: Stefan Monnier; +Cc: 73359-done, nqminhuit

> From: Stefan Monnier <monnier@iro.umontreal.ca>
> Cc: Nguyễn Quốc Minh <nqminhuit@gmail.com>,
>   73359@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.





^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2024-09-21 10:36 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-09-19  7:29 bug#73359: 30.0.91; editorconfig does not work on xml files Nguyễn Quốc Minh
2024-09-19 16:10 ` Eli Zaretskii
2024-09-20 18:58   ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-09-21 10:36     ` Eli Zaretskii

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).