diff --git a/.gitignore b/.gitignore index 0abbed5..b1265b9 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ node_modules -src/**/*.js \ No newline at end of file +src/**/*.js +**/*.vsix \ No newline at end of file diff --git a/.vscode/settings.json b/.vscode/settings.json index f8edaaa..4d3cc92 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -3,6 +3,7 @@ "files.exclude": { "**/.git": true, "**/.DS_Store": true, + "**/*/vsix": true, "**/*.js": {"when": "$(basename).ts"} } } \ No newline at end of file diff --git a/.vscodeignore b/.vscodeignore index f1c4548..425d15c 100644 --- a/.vscodeignore +++ b/.vscodeignore @@ -4,4 +4,5 @@ CONTRIBUTING.md .vscode resources/wiki-images typings -**/*.ts \ No newline at end of file +**/*.ts +**/*.vsix \ No newline at end of file diff --git a/package.json b/package.json index 24ad42e..fdc1f85 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "xml", "displayName": "XML Tools", "description": "XML Formatting, XQuery, and XPath Tools for Visual Studio Code", - "version": "1.5.2", + "version": "1.6.0", "publisher": "DotJoshJohnson", "author": { "name": "TrueCommerce", @@ -114,6 +114,7 @@ }, "activationEvents": [ "onLanguage:xml", + "onLanguage:xsl", "onLanguage:xquery", "onCommand:xmlTools.minifyXml", "onCommand:xmlTools.evaluateXPath", diff --git a/src/Extension.ts b/src/Extension.ts index 9d4c562..fd23a79 100644 --- a/src/Extension.ts +++ b/src/Extension.ts @@ -11,6 +11,7 @@ export var GlobalState: vsc.Memento; export var WorkspaceState: vsc.Memento; const LANG_XML: string = 'xml'; +const LANG_XSL: string = 'xsl'; const LANG_XQUERY: string = 'xquery;' const MEM_QUERY_HISTORY: string = 'xpathQueryHistory'; @@ -30,8 +31,8 @@ export function activate(ctx: vsc.ExtensionContext) { // register language feature providers ctx.subscriptions.push( - vsc.languages.registerDocumentFormattingEditProvider(LANG_XML, new XmlFormattingEditProvider()), - vsc.languages.registerDocumentRangeFormattingEditProvider(LANG_XML, new XmlFormattingEditProvider()), + vsc.languages.registerDocumentFormattingEditProvider([LANG_XML, LANG_XSL], new XmlFormattingEditProvider()), + vsc.languages.registerDocumentRangeFormattingEditProvider([LANG_XML, LANG_XSL], new XmlFormattingEditProvider()), vsc.languages.registerCompletionItemProvider(LANG_XQUERY, new XQueryCompletionItemProvider(), ':', '$') ); diff --git a/src/services/XmlFormatter.ts b/src/services/XmlFormatter.ts index 37b8eb3..a1aac00 100644 --- a/src/services/XmlFormatter.ts +++ b/src/services/XmlFormatter.ts @@ -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--; } @@ -157,7 +157,11 @@ export class XmlFormatter { inCdata = true; } - else if (char == ']' && (xml.substr(i, 3) == ']]>' || xml.substr(i, 3) == '-->')) { + else if (char == ']' && (xml.substr(i, 3) == ']]>')) { + inCdata = false; + } + + else if (char == '-' && (xml.substr(i, 3) == '-->')) { inCdata = false; }