plugin-xml icon indicating copy to clipboard operation
plugin-xml copied to clipboard

Bug: Double Apostrophe in <value> URI Formatting Issue

Open Alfystar opened this issue 10 months ago • 2 comments

Description: I encountered a problem with the @prettier/plugin-xml plugin. When an XML file contains the text:

<value>&apos;&apos;</value>

Image

Prettier rewrites it as:

<value>
    &apos; &apos;
</value>

Image

This formatting adds an unwanted space between the apostrophes, which disrupts the appearance of our system.

Steps to Reproduce:

  1. Create an XML file with the following content:
    <root>
        <value>&apos;&apos;</value>
    </root>
    
  2. Run Prettier with the @prettier/plugin-xml plugin.
  3. Observe the formatted output.

Expected Behavior: The content of the <value> tag should remain <value>&apos;&apos;</value> without adding spaces.

Actual Behavior: The content of the <value> tag is rewritten as:

<value>
    &apos; &apos;
</value>

Additional Information: In other cases, when there is only one apostrophe, Prettier formats correctly by keeping the line together:

<values>
    <field>ITA_IFM_ActivityDescription__c</field>
    <value xsi:type="xsd:string">MEDIA COMPLESSITA&apos;</value>
</values>

This leads us to believe it is a minor bug. Could you please provide feedback?

Prettier Configuration:

{
    "plugins": ["prettier-plugin-apex", "@prettier/plugin-xml"],
    "printWidth": 600,
    "singleQuote": true,
    "trailingComma": "all",
    "bracketSpacing": false,
    "useTabs": true,
    "bracketSameLine": true,
    "apexInsertFinalNewline": false,
    "overrides": [
        {
            "files": "*.{trigger,cls}",
            "options": {"parser": "apex"}
        },
        {
            "files": "*.{apex}",
            "options": {"parser": "apex-anonymous"}
        },
        {
            "files": "**/lwc/**/*.html",
            "options": {"parser": "lwc"}
        },
        {
            "files": "*.{cmp,page,component,evt}",
            "options": {
                "parser": "html",
                "trailingComma": "none"
            }
        },
        {
            "files": "**/aura/**/*.js",
            "options": {"trailingComma": "none"}
        },
        {
            "files": "**/aura/**/*.{auradoc,design,app}",
            "options": {"parser": "angular"}
        },
        {
            "files": "**/*.xml",
            "options": {
                "parser": "xml",
                "useTabs": false,
                "tabWidth": 4,
                "xmlWhitespaceSensitivity": "preserve",
                "embeddedLanguageFormatting": "off",
                "xmlSelfClosingSpace": false
            }
        }
    ]
}

and this is our package.json

{
  "name": "***",
  "version": "1.0.0",
  "author": "***",
  "devDependencies": {
    "@prettier/plugin-xml": "^3.4.1",
    "prettier": "^3.4.2",
    "prettier-plugin-apex": "^2.2.2"
  },
  "repository": {
    "type": "****",
    "url": "****"
  },
  "scripts": {
    "prettier": "prettier"
  },
  "dependencies": {
    "sfdx-plugin-source-read": "^1.4.0"
  }
}

Thanks in advice, i'm here if you need anything else 😊

Alfystar avatar Jan 22 '25 10:01 Alfystar

Have you news about this bug?

Alfystar avatar Jan 29 '25 13:01 Alfystar

Excuse me, can I at least know if you consider this a bug?

Alfystar avatar Feb 10 '25 13:02 Alfystar

I'm not sure if this is a bug or not. You're setting it to "preserve", which means in some cases we keep the whitespace and in some cases we do not. I will investigate further.

kddnewton avatar Jul 08 '25 14:07 kddnewton

The problem remains, we had to exclude that resource to avoid problems in fact

If you can fix it that would be great!

Alfystar avatar Jul 09 '25 14:07 Alfystar

Hi @kddnewton news on it?

Alfystar avatar Sep 29 '25 10:09 Alfystar