commit
						d58e7a5324
					
				
					 2 changed files with 34 additions and 0 deletions
				
			
		| 
						 | 
					@ -51,6 +51,10 @@ export function deactivate() {
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
function _handleContextChange(editor: vsc.TextEditor): void {
 | 
					function _handleContextChange(editor: vsc.TextEditor): void {
 | 
				
			||||||
 | 
					    if (!editor || !editor.document) {
 | 
				
			||||||
 | 
					        return;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
    switch (editor.document.languageId) {
 | 
					    switch (editor.document.languageId) {
 | 
				
			||||||
        case 'xquery':
 | 
					        case 'xquery':
 | 
				
			||||||
            XQueryLintingFeatureProvider.provideXQueryDiagnostics(editor);
 | 
					            XQueryLintingFeatureProvider.provideXQueryDiagnostics(editor);
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -119,8 +119,10 @@ export class XmlFormatter {
 | 
				
			||||||
            removeComments = false;
 | 
					            removeComments = false;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        
 | 
					        
 | 
				
			||||||
 | 
					        xml = this._stripLineBreaks(xml);
 | 
				
			||||||
        xml = (removeComments) ? xml.replace(/\<![ \r\n\t]*(--([^\-]|[\r\n]|-[^\-])*--[ \r\n\t]*)\>/g, '') : xml;
 | 
					        xml = (removeComments) ? xml.replace(/\<![ \r\n\t]*(--([^\-]|[\r\n]|-[^\-])*--[ \r\n\t]*)\>/g, '') : xml;
 | 
				
			||||||
        xml = xml.replace(/>\s{0,}</g, '><');
 | 
					        xml = xml.replace(/>\s{0,}</g, '><');
 | 
				
			||||||
 | 
					        xml = xml.replace(/"\s+(?=[^\s]+=)/g, '" ');
 | 
				
			||||||
        
 | 
					        
 | 
				
			||||||
        return xml;
 | 
					        return xml;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
| 
						 | 
					@ -130,6 +132,34 @@ export class XmlFormatter {
 | 
				
			||||||
        
 | 
					        
 | 
				
			||||||
        return `${this.newLine}${this.indentPattern.repeat(level)}${trailingValue}`;
 | 
					        return `${this.newLine}${this.indentPattern.repeat(level)}${trailingValue}`;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					    private _stripLineBreaks(xml: string): string {
 | 
				
			||||||
 | 
					        let output: string = '';
 | 
				
			||||||
 | 
					        let inTag: boolean = false;
 | 
				
			||||||
 | 
					        let inTagName: boolean = false;
 | 
				
			||||||
 | 
					        let inCdata: boolean = false;
 | 
				
			||||||
 | 
					        let inAttribute: boolean = false;
 | 
				
			||||||
 | 
					        
 | 
				
			||||||
 | 
					        for (let i = 0; i < xml.length; i++) {
 | 
				
			||||||
 | 
					            let char: string = xml.charAt(i);
 | 
				
			||||||
 | 
					            
 | 
				
			||||||
 | 
					            if (char == '!' && (xml.substr(i, 8) == '![CDATA[' || xml.substr(i, 3) == '!--')) {
 | 
				
			||||||
 | 
					                inCdata = true;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            
 | 
				
			||||||
 | 
					            else if (char == ']' && (xml.substr(i, 3) == ']]>' || xml.substr(i, 3) == '-->')) {
 | 
				
			||||||
 | 
					                inCdata = false;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            
 | 
				
			||||||
 | 
					            else if (char.search(/[\r\n]/g) > -1 && !inCdata) {
 | 
				
			||||||
 | 
					                continue;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            
 | 
				
			||||||
 | 
					            output += char;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        
 | 
				
			||||||
 | 
					        return output;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export interface IXmlFormatterOptions {
 | 
					export interface IXmlFormatterOptions {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		
		Reference in a new issue