格式化时如何阻止 PhpStorm 在 XML 节点之间插入换行符?
How can I stop PhpStorm to insert linebreaks between XML nodes when formatting?
我有以下 XML(来自 Magento 2):
<item name="address-list" xsi:type="array">
<item name="component" xsi:type="string">Magento_Checkout/js/view/shipping-address/list</item>
<item name="displayArea" xsi:type="string">address-list</item>
</item>
当我使用自动代码格式功能时,我得到以下信息:
<item name="address-list" xsi:type="array">
<item name="component"
xsi:type="string">Magento_Checkout/js/view/shipping-address/list
</item>
<item name="displayArea"
xsi:type="string">address-list
</item>
</item>
这不再有效,因为 Magento 会解释标签之间的空格,例如,组件变为
"Magento_Checkout/js/view/shipping-address/list "
^^^^^ Unwanted spaces ^^^^^^^^^
如何让 PhpStorm 停止插入这些换行符?
编辑
演示文件:
https://gist.github.com/amenk/c018332373045e3e8b13
格式化前
格式化后:
设置:
根据您的描述和屏幕截图:由于右边距,您似乎将其包裹起来(该值对于您的行而言太低,IDE 将这么长的行分成几行)。
最简单的解决方案是 增加右边距(在当前 IDE 版本中,可以在每个文件 type/language 的基础上这样做,只要它在代码样式中有条目)。在您的情况下,它将位于 Settings/Preferences | Editor | Code Style | XML | Other
此外,您可以更改代码样式设置以防止这种换行,即使行长于当前右边距也是如此。为此,请查看同一设置页面上的 "Wrap attributes" 选项 - 使用 Do not wrap
而不是您的 Wrap if long
.
此设置似乎在我的设置中运行良好:
我有以下 XML(来自 Magento 2):
<item name="address-list" xsi:type="array">
<item name="component" xsi:type="string">Magento_Checkout/js/view/shipping-address/list</item>
<item name="displayArea" xsi:type="string">address-list</item>
</item>
当我使用自动代码格式功能时,我得到以下信息:
<item name="address-list" xsi:type="array">
<item name="component"
xsi:type="string">Magento_Checkout/js/view/shipping-address/list
</item>
<item name="displayArea"
xsi:type="string">address-list
</item>
</item>
这不再有效,因为 Magento 会解释标签之间的空格,例如,组件变为
"Magento_Checkout/js/view/shipping-address/list "
^^^^^ Unwanted spaces ^^^^^^^^^
如何让 PhpStorm 停止插入这些换行符?
编辑
演示文件:
https://gist.github.com/amenk/c018332373045e3e8b13
格式化前
格式化后:
设置:
根据您的描述和屏幕截图:由于右边距,您似乎将其包裹起来(该值对于您的行而言太低,IDE 将这么长的行分成几行)。
最简单的解决方案是 增加右边距(在当前 IDE 版本中,可以在每个文件 type/language 的基础上这样做,只要它在代码样式中有条目)。在您的情况下,它将位于
Settings/Preferences | Editor | Code Style | XML | Other
此外,您可以更改代码样式设置以防止这种换行,即使行长于当前右边距也是如此。为此,请查看同一设置页面上的 "Wrap attributes" 选项 - 使用
Do not wrap
而不是您的Wrap if long
.此设置似乎在我的设置中运行良好: