Remove Update Notifier
This commit is contained in:
parent
f11a188092
commit
1b9caa3265
42
src/main.ts
42
src/main.ts
@ -1,24 +1,20 @@
|
||||
'use strict';
|
||||
|
||||
import { commands, languages, ExtensionContext } from 'vscode';
|
||||
import { linearizeXml, XmlDocumentFormattingProvider, XmlRangeFormattingProvider } from './features/xmlFormatting';
|
||||
import { evaluateXPath } from './features/xmlXPathEngine';
|
||||
import { checkForUpdates } from './utils/UpdateNotifier';
|
||||
|
||||
export function activate(ctx: ExtensionContext) {
|
||||
// check for update
|
||||
checkForUpdates();
|
||||
|
||||
// register palette commands
|
||||
ctx.subscriptions.push(commands.registerTextEditorCommand('xmltools.linearizeXml', linearizeXml));
|
||||
ctx.subscriptions.push(commands.registerTextEditorCommand('xmltools.evaluateXPath', evaluateXPath));
|
||||
|
||||
// alias for editor.action.format
|
||||
ctx.subscriptions.push(commands.registerTextEditorCommand('xmlTools.formatXml', () => {
|
||||
commands.executeCommand('editor.action.format');
|
||||
}));
|
||||
|
||||
// register formatting providers
|
||||
ctx.subscriptions.push(languages.registerDocumentFormattingEditProvider('xml', new XmlDocumentFormattingProvider()));
|
||||
ctx.subscriptions.push(languages.registerDocumentRangeFormattingEditProvider('xml', new XmlRangeFormattingProvider()));
|
||||
'use strict';
|
||||
|
||||
import { commands, languages, ExtensionContext } from 'vscode';
|
||||
import { linearizeXml, XmlDocumentFormattingProvider, XmlRangeFormattingProvider } from './features/xmlFormatting';
|
||||
import { evaluateXPath } from './features/xmlXPathEngine';
|
||||
|
||||
export function activate(ctx: ExtensionContext) {
|
||||
// register palette commands
|
||||
ctx.subscriptions.push(commands.registerTextEditorCommand('xmltools.linearizeXml', linearizeXml));
|
||||
ctx.subscriptions.push(commands.registerTextEditorCommand('xmltools.evaluateXPath', evaluateXPath));
|
||||
|
||||
// alias for editor.action.format
|
||||
ctx.subscriptions.push(commands.registerTextEditorCommand('xmlTools.formatXml', () => {
|
||||
commands.executeCommand('editor.action.format');
|
||||
}));
|
||||
|
||||
// register formatting providers
|
||||
ctx.subscriptions.push(languages.registerDocumentFormattingEditProvider('xml', new XmlDocumentFormattingProvider()));
|
||||
ctx.subscriptions.push(languages.registerDocumentRangeFormattingEditProvider('xml', new XmlRangeFormattingProvider()));
|
||||
}
|
@ -1,34 +0,0 @@
|
||||
'use strict';
|
||||
|
||||
import { extensions, Extension } from 'vscode';
|
||||
|
||||
export class ExtensionManifestReader {
|
||||
constructor(extensionId: string) {
|
||||
this._extension = extensions.getExtension(extensionId);
|
||||
this.refresh();
|
||||
}
|
||||
|
||||
private _extension: Extension<any>
|
||||
|
||||
name: string;
|
||||
version: string;
|
||||
publisher: string;
|
||||
displayName: string;
|
||||
description: string;
|
||||
categories: string[];
|
||||
keywords: string[];
|
||||
icon: string;
|
||||
|
||||
refresh(): void {
|
||||
let manifest = this._extension.packageJSON;
|
||||
|
||||
this.name = manifest.name;
|
||||
this.version = manifest.version;
|
||||
this.publisher = manifest.publisher;
|
||||
this.displayName = manifest.displayName;
|
||||
this.description = manifest.description;
|
||||
this.categories = manifest.categories;
|
||||
this.keywords = manifest.keywords;
|
||||
this.icon = manifest.icon;
|
||||
}
|
||||
}
|
@ -1,43 +0,0 @@
|
||||
'use strict';
|
||||
|
||||
import { window, commands } from 'vscode';
|
||||
import { ExtensionManifestReader } from './ManifestUtils';
|
||||
|
||||
let req = require('request');
|
||||
let semver = require('semver');
|
||||
|
||||
export function checkForUpdates() {
|
||||
let manifestReader: ExtensionManifestReader = new ExtensionManifestReader('DotJoshJohnson.xml');
|
||||
let currentVersion = manifestReader.version;
|
||||
|
||||
// use the GitHub api to determine the latest released version
|
||||
let url = 'https://api.github.com/repos/DotJoshJohnson/vscode-xml/releases/latest';
|
||||
let options = {
|
||||
url: url,
|
||||
headers: {
|
||||
// the GitHub API requires a user agent header
|
||||
// we are spoofing a Chrome user agent string here
|
||||
'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.86 Safari/537.36'
|
||||
}
|
||||
}
|
||||
|
||||
req(options, (error, response, body) => {
|
||||
if (!error && response.statusCode == 200) {
|
||||
let release = JSON.parse(body);
|
||||
let latestVersion = release.name.substring(1); // the release/tag is prefixed with a "v"
|
||||
|
||||
if (!release.draft && semver.gt(latestVersion, currentVersion)) {
|
||||
let updateNowLabel = 'Open Extension Manager';
|
||||
window.showInformationMessage(`Version ${latestVersion} of the ${manifestReader.displayName} extension is available.`, updateNowLabel).then((clicked) => {
|
||||
if (clicked == updateNowLabel) {
|
||||
commands.executeCommand('workbench.extensions.action.listExtensions', manifestReader.displayName);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
else {
|
||||
console.log('XML Tools: Failed to get latest release information from GitHub.');
|
||||
}
|
||||
});
|
||||
}
|
Loading…
Reference in New Issue
Block a user