From 60110f8d970c3082eee93092a6ab30cd774ec9ed Mon Sep 17 00:00:00 2001 From: Josh Johnson Date: Tue, 15 Mar 2016 14:38:39 -0400 Subject: [PATCH] fix(XmlFormatter): correct split namespace formatting When namespaces are being split, do not keep the indent after a self-closed element. fixes #46 --- src/services/XmlFormatter.ts | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/services/XmlFormatter.ts b/src/services/XmlFormatter.ts index 85ad7a3..37b8eb3 100644 --- a/src/services/XmlFormatter.ts +++ b/src/services/XmlFormatter.ts @@ -40,7 +40,7 @@ export class XmlFormatter { let inComment: boolean = false; let level: number = 0; let output: string = ''; - + for (let i = 0; i < parts.length; i++) { // -1) { @@ -62,7 +62,7 @@ export class XmlFormatter { // else if (/^<\w/.test(parts[i - 1]) && /^<\/\w/.test(parts[i]) && /^<[\w:\-\.\,]+/.exec(parts[i - 1])[0] == /^<\/[\w:\-\.\,]+/.exec(parts[i])[0].replace('/', '')) { - + output += parts[i]; if (!inComment) level--; } @@ -83,10 +83,15 @@ export class XmlFormatter { } // - else if (parts[i].search(/\/>/) > -1) { + else if (parts[i].search(/\/>/) > -1 && (!this.splitNamespaces || parts[i].search(/xmlns\:/) == -1)) { output = (!inComment) ? output += this._getIndent(level, parts[i]) : output += parts[i]; } + // xmlns /> + else if (parts[i].search(/\/>/) > -1 && parts[i].search(/xmlns\:/) > -1 && this.splitNamespaces) { + output = (!inComment) ? output += this._getIndent(level--, parts[i]) : output += parts[i]; + } + // else if (parts[i].search(/<\?/) > -1) { output += this._getIndent(level, parts[i]);