diff --git a/package.json b/package.json index a43c3d6..b491c20 100644 --- a/package.json +++ b/package.json @@ -176,6 +176,12 @@ "default": "**/*.xml", "description": "The pattern used to search for input XML files when executing XQuery scripts.", "scope": "window" + }, + "xmlTools.preserveSpacesBetweenAttributes": { + "type": "boolean", + "default": false, + "description": "Preserves any spaces between attributes during formatting.", + "scope": "resource" } } }, diff --git a/src/common/configuration.ts b/src/common/configuration.ts index b1461d0..2d6dffc 100644 --- a/src/common/configuration.ts +++ b/src/common/configuration.ts @@ -59,11 +59,15 @@ export class Configuration { return this._getForResource("splitXmlnsOnFormat", resource); } + static preserveSpacesBetweenAttributes(resource: Uri): boolean { + return this._getForResource("preserveSpacesBetweenAttributes", resource); + } + private static _getForResource(section: string, resource: Uri): T { return workspace.getConfiguration(ExtensionTopLevelSection, resource).get(section); } - private static _getForWindow(section: string): T { + private static _getForWindow(section: string): T { return workspace.getConfiguration(ExtensionTopLevelSection).get(section); } } diff --git a/src/formatting/xml-formatting-options.ts b/src/formatting/xml-formatting-options.ts index 7c5185a..bbfb0d9 100644 --- a/src/formatting/xml-formatting-options.ts +++ b/src/formatting/xml-formatting-options.ts @@ -1,7 +1,6 @@ import { EndOfLine, FormattingOptions, TextDocument } from "vscode"; import { Configuration } from "../common"; -import * as constants from "../constants"; export interface XmlFormattingOptions { editorOptions: FormattingOptions; @@ -11,6 +10,7 @@ export interface XmlFormattingOptions { splitAttributesOnFormat: boolean; splitXmlnsOnFormat: boolean; initialIndentLevel?: number; + preserveSpacesBetweenAttributes: boolean; } export class XmlFormattingOptionsFactory { @@ -22,7 +22,8 @@ export class XmlFormattingOptionsFactory { removeCommentsOnMinify: Configuration.removeCommentsOnMinify(document.uri), splitAttributesOnFormat: Configuration.splitAttributesOnFormat(document.uri), splitXmlnsOnFormat: Configuration.splitXmlnsOnFormat(document.uri), - initialIndentLevel: 0 + initialIndentLevel: 0, + preserveSpacesBetweenAttributes: Configuration.preserveSpacesBetweenAttributes(document.uri) }; } }