From 8d5f9b605560460367a7fec8cf131d98a9e49f1d Mon Sep 17 00:00:00 2001 From: Josh Johnson Date: Fri, 25 May 2018 00:16:07 -0400 Subject: [PATCH] Add New Formatter Notice --- src/formatting/xml-formatter.ts | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) 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); } }