forked from external/vscode-xml
		
	Merge pull request #186 from DotJoshJohnson/release-2.3.0
Release v2.3.0
This commit is contained in:
		
						commit
						0a17f59e67
					
				
					 10 changed files with 75 additions and 4 deletions
				
			
		
							
								
								
									
										2
									
								
								.gitignore
									
										
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								.gitignore
									
										
									
									
										vendored
									
									
								
							| 
						 | 
					@ -1,4 +1,4 @@
 | 
				
			||||||
out
 | 
					out
 | 
				
			||||||
node_modules
 | 
					node_modules
 | 
				
			||||||
.vscode-test/
 | 
					.vscode-test/
 | 
				
			||||||
.vsix
 | 
					/*.vsix
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -2,7 +2,7 @@
 | 
				
			||||||
    "name": "xml",
 | 
					    "name": "xml",
 | 
				
			||||||
    "displayName": "XML Tools",
 | 
					    "displayName": "XML Tools",
 | 
				
			||||||
    "description": "XML Formatting, XQuery, and XPath Tools for Visual Studio Code",
 | 
					    "description": "XML Formatting, XQuery, and XPath Tools for Visual Studio Code",
 | 
				
			||||||
    "version": "2.2.0",
 | 
					    "version": "2.3.0",
 | 
				
			||||||
    "preview": false,
 | 
					    "preview": false,
 | 
				
			||||||
    "publisher": "DotJoshJohnson",
 | 
					    "publisher": "DotJoshJohnson",
 | 
				
			||||||
    "author": {
 | 
					    "author": {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -32,6 +32,7 @@ export class V2XmlFormatter implements XmlFormatter {
 | 
				
			||||||
        let indentLevel = 0;
 | 
					        let indentLevel = 0;
 | 
				
			||||||
        let location = Location.Text;
 | 
					        let location = Location.Text;
 | 
				
			||||||
        let lastNonTextLocation = Location.Text; // hah
 | 
					        let lastNonTextLocation = Location.Text; // hah
 | 
				
			||||||
 | 
					        let attributeQuote = "";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        // NOTE: all "exiting" checks should appear after their associated "entering" checks
 | 
					        // NOTE: all "exiting" checks should appear after their associated "entering" checks
 | 
				
			||||||
        for (let i = 0; i < xml.length; i++) {
 | 
					        for (let i = 0; i < xml.length; i++) {
 | 
				
			||||||
| 
						 | 
					@ -126,13 +127,17 @@ export class V2XmlFormatter implements XmlFormatter {
 | 
				
			||||||
                output += cc;
 | 
					                output += cc;
 | 
				
			||||||
                lastNonTextLocation = location;
 | 
					                lastNonTextLocation = location;
 | 
				
			||||||
                location = Location.AttributeValue;
 | 
					                location = Location.AttributeValue;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                attributeQuote = cc;
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            // exiting StartTag.Attribute.AttributeValue, entering StartTag
 | 
					            // exiting StartTag.Attribute.AttributeValue, entering StartTag
 | 
				
			||||||
            else if (location === Location.AttributeValue && (cc === "\"" || cc === "'")) {
 | 
					            else if (location === Location.AttributeValue && cc === attributeQuote) {
 | 
				
			||||||
                output += cc;
 | 
					                output += cc;
 | 
				
			||||||
                lastNonTextLocation = location;
 | 
					                lastNonTextLocation = location;
 | 
				
			||||||
                location = Location.StartTag;
 | 
					                location = Location.StartTag;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                attributeQuote = undefined;
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            // approaching the end of a self-closing tag where there was no whitespace (issue #149)
 | 
					            // approaching the end of a self-closing tag where there was no whitespace (issue #149)
 | 
				
			||||||
| 
						 | 
					@ -169,7 +174,7 @@ export class V2XmlFormatter implements XmlFormatter {
 | 
				
			||||||
                indentLevel--;
 | 
					                indentLevel--;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                // if the end tag immediately follows a line break, just add an indentation
 | 
					                // if the end tag immediately follows a line break, just add an indentation
 | 
				
			||||||
                // if the end tag immediately follows another end tag, add a line break and indent
 | 
					                // if the end tag immediately follows another end tag or a self-closing tag (issue #185), add a line break and indent
 | 
				
			||||||
                // otherwise, this should be treated as a same-line end tag(ex. <element>text</element>)
 | 
					                // otherwise, this should be treated as a same-line end tag(ex. <element>text</element>)
 | 
				
			||||||
                if (pc === "\n") {
 | 
					                if (pc === "\n") {
 | 
				
			||||||
                    output += `${this._getIndent(options, indentLevel)}<`;
 | 
					                    output += `${this._getIndent(options, indentLevel)}<`;
 | 
				
			||||||
| 
						 | 
					@ -179,6 +184,10 @@ export class V2XmlFormatter implements XmlFormatter {
 | 
				
			||||||
                    output += `${options.newLine}${this._getIndent(options, indentLevel)}<`;
 | 
					                    output += `${options.newLine}${this._getIndent(options, indentLevel)}<`;
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                else if (pc === ">" && ppc === "/") {
 | 
				
			||||||
 | 
					                    output += `${this._getIndent(options, indentLevel)}<`;
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                else {
 | 
					                else {
 | 
				
			||||||
                    output += "<";
 | 
					                    output += "<";
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -68,6 +68,18 @@ describe("V2XmlFormatter", () => {
 | 
				
			||||||
            options.enforcePrettySelfClosingTagOnFormat = false;
 | 
					            options.enforcePrettySelfClosingTagOnFormat = false;
 | 
				
			||||||
        });
 | 
					        });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        it("should properly format closing tag after self-closing tag", () => {
 | 
				
			||||||
 | 
					            testFormatter(xmlFormatter, options, "issue-185");
 | 
				
			||||||
 | 
					        });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        it("should support single quotes within double-quoptes attributes and vice-versa", () => {
 | 
				
			||||||
 | 
					            testFormatter(xmlFormatter, options, "issue-187");
 | 
				
			||||||
 | 
					        });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        it("should not ruin attributes with unusual characters", () => {
 | 
				
			||||||
 | 
					            testFormatter(xmlFormatter, options, "issue-189");
 | 
				
			||||||
 | 
					        });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    });
 | 
					    });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
});
 | 
					});
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										5
									
								
								src/test/test-data/issue-185.formatted.xml
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								src/test/test-data/issue-185.formatted.xml
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,5 @@
 | 
				
			||||||
 | 
					<test>
 | 
				
			||||||
 | 
					    <example>
 | 
				
			||||||
 | 
					        <one/>
 | 
				
			||||||
 | 
					    </example>
 | 
				
			||||||
 | 
					</test>
 | 
				
			||||||
							
								
								
									
										1
									
								
								src/test/test-data/issue-185.unformatted.xml
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								src/test/test-data/issue-185.unformatted.xml
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1 @@
 | 
				
			||||||
 | 
					<test><example><one/></example></test>
 | 
				
			||||||
							
								
								
									
										17
									
								
								src/test/test-data/issue-187.formatted.xml
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										17
									
								
								src/test/test-data/issue-187.formatted.xml
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,17 @@
 | 
				
			||||||
 | 
					<Project>
 | 
				
			||||||
 | 
					    <PropertyGroup>
 | 
				
			||||||
 | 
					        <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
 | 
				
			||||||
 | 
					        <LangVersion>latest</LangVersion>
 | 
				
			||||||
 | 
					    </PropertyGroup>
 | 
				
			||||||
 | 
					    <PropertyGroup Condition=" '$(Configuration)'=='Release' ">
 | 
				
			||||||
 | 
					        <DebugSymbols>false</DebugSymbols>
 | 
				
			||||||
 | 
					        <DebugType>None</DebugType>
 | 
				
			||||||
 | 
					        <Optimize>true</Optimize>
 | 
				
			||||||
 | 
					    </PropertyGroup>
 | 
				
			||||||
 | 
					    <ItemGroup Condition=" '$(Configuration)'=='Release' ">
 | 
				
			||||||
 | 
					        <Content Remove="appsettings.Development.json" />
 | 
				
			||||||
 | 
					    </ItemGroup>
 | 
				
			||||||
 | 
					    <ItemGroup Condition=" '$(Configuration)'=='Debug' ">
 | 
				
			||||||
 | 
					        <Content Remove="appsettings.Production.json" />
 | 
				
			||||||
 | 
					    </ItemGroup>
 | 
				
			||||||
 | 
					</Project>
 | 
				
			||||||
							
								
								
									
										17
									
								
								src/test/test-data/issue-187.unformatted.xml
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										17
									
								
								src/test/test-data/issue-187.unformatted.xml
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,17 @@
 | 
				
			||||||
 | 
					<Project>
 | 
				
			||||||
 | 
					    <PropertyGroup>
 | 
				
			||||||
 | 
					        <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
 | 
				
			||||||
 | 
					        <LangVersion>latest</LangVersion>
 | 
				
			||||||
 | 
					    </PropertyGroup>
 | 
				
			||||||
 | 
					    <PropertyGroup Condition=" '$(Configuration)'=='Release' ">
 | 
				
			||||||
 | 
					        <DebugSymbols>false</DebugSymbols>
 | 
				
			||||||
 | 
					        <DebugType>None</DebugType>
 | 
				
			||||||
 | 
					        <Optimize>true</Optimize>
 | 
				
			||||||
 | 
					    </PropertyGroup>
 | 
				
			||||||
 | 
					    <ItemGroup Condition=" '$(Configuration)'=='Release' ">
 | 
				
			||||||
 | 
					        <Content Remove="appsettings.Development.json" />
 | 
				
			||||||
 | 
					    </ItemGroup>
 | 
				
			||||||
 | 
					    <ItemGroup Condition=" '$(Configuration)'=='Debug' ">
 | 
				
			||||||
 | 
					        <Content Remove="appsettings.Production.json" />
 | 
				
			||||||
 | 
					    </ItemGroup>
 | 
				
			||||||
 | 
					</Project>
 | 
				
			||||||
							
								
								
									
										5
									
								
								src/test/test-data/issue-189.formatted.xml
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								src/test/test-data/issue-189.formatted.xml
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,5 @@
 | 
				
			||||||
 | 
					<!DOCTYPE xml>
 | 
				
			||||||
 | 
					<core:FragmentDefinition xmlns="sap.m" 
 | 
				
			||||||
 | 
					    xmlns:core="sap.ui.core">
 | 
				
			||||||
 | 
					    <Text text="{parts: ['i18n>dialog.countdown.text','view>/Countdown'],formatter: 'jQuery.sap.formatMessage'}" />
 | 
				
			||||||
 | 
					</core:FragmentDefinition>
 | 
				
			||||||
							
								
								
									
										5
									
								
								src/test/test-data/issue-189.unformatted.xml
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								src/test/test-data/issue-189.unformatted.xml
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,5 @@
 | 
				
			||||||
 | 
					<!DOCTYPE xml>
 | 
				
			||||||
 | 
					<core:FragmentDefinition xmlns="sap.m"
 | 
				
			||||||
 | 
					    xmlns:core="sap.ui.core">
 | 
				
			||||||
 | 
					    <Text text="{parts: ['i18n>dialog.countdown.text','view>/Countdown'],formatter: 'jQuery.sap.formatMessage'}" />
 | 
				
			||||||
 | 
					</core:FragmentDefinition>
 | 
				
			||||||
		Loading…
	
	Add table
		
		Reference in a new issue