Hi Jonathan, hi Patrick,
The new serialization parameter 'indent-attributes' is already available [1]:
(: provided globally :) declare option output:indent 'yes'; declare option output:indent-attributes 'yes'; <e a='a' b='b' c='c'/>
(: provided locally :) serialize( <e a='a' b='b' c='c'/>, map { 'indent-attributes': true(), 'indent': true() } )
Result: <e a="a" b="b" c="c"/>
Thank you to Gunther Rademacher, who contributed the code solution!
A new stable snapshot is available [2]. The serialization parameter may officially be supported with XQuery 4 [3].
Hope this helps, Christian
[1] https://docs.basex.org/wiki/Serialization [2] https://files.basex.org/releases/latest/ [3] https://github.com/qt4cg/qtspecs/issues/358#issuecomment-1436595401
On Wed, Feb 15, 2023 at 7:05 PM Jonathan Robie jonathan.robie@gmail.com wrote:
Hi Christian,
I prefer to be able to require one attribute per line. This is important for Git diffs, which are the main reason we care.
Jonathan
On Wed, Feb 15, 2023 at 11:31 AM Christian Grün christian.gruen@gmail.com wrote:
Hi Jonathan,
Thanks for sharing your tidy settings.
With the given configuration, all attributes except for the first are returned in a separate line…
<wg class="cl" rule="S-IO" cltype="VerbElided">
In Patrick’s example, some attributes were returned in a single line (possibly depending on the expected string length). Maybe it was generated via Saxon (just a guess):
<wg class="cl" rule="S-IO" cltype="VerbElided">
Do you have a preference which representation would be required, or do you think the details are not that relevant?
We could possibly add a custom serialization parameter similar to tidy’s 'indent-attributes' option, and it would probably be easier to ignore the expected string length.
All the best, Christian