Remove Update Notifier
This commit is contained in:
		
							parent
							
								
									f11a188092
								
							
						
					
					
						commit
						1b9caa3265
					
				
					 3 changed files with 19 additions and 100 deletions
				
			
		
							
								
								
									
										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…
	
	Add table
		
		Reference in a new issue