diff --git a/src/formatting/xml-formatter.ts b/src/formatting/xml-formatter.ts index ddfa361..01fb9ae 100644 --- a/src/formatting/xml-formatter.ts +++ b/src/formatting/xml-formatter.ts @@ -1,6 +1,6 @@ -import { workspace } from "vscode"; +import { window, workspace } from "vscode"; -import { Configuration } from "../common"; +import { Configuration, ExtensionState } from "../common"; import * as constants from "../constants"; import { ClassicXmlFormatter } from "./formatters/classic-xml-formatter"; import { V2XmlFormatter } from "./formatters/v2-xml-formatter"; @@ -29,6 +29,17 @@ export class XmlFormatterFactory { default: xmlFormatterImplementation = new V2XmlFormatter(); break; } + // warn users about the new formatter + const formatterWarningKey = "xmlTools.v2FormatterWarning.shown"; + + if (!ExtensionState.global.get(formatterWarningKey) && xmlFormatterImplementation instanceof V2XmlFormatter) { + // tslint:disable-next-line:max-line-length + window.showInformationMessage("Heads up! We've rewritten the XML formatter. If you liked the old one better, it's still there. Just set the 'xmlTools.xmlFormatterImplementation' setting to 'classic'.") + .then(() => { + ExtensionState.global.update(formatterWarningKey, true); + }); + } + return (XmlFormatterFactory._xmlFormatter = xmlFormatterImplementation); } }