From 65f28d6e17f029ca2d7632e93db179b923e8d82e Mon Sep 17 00:00:00 2001 From: Martin Aeschlimann Date: Tue, 19 Apr 2016 16:47:10 +0200 Subject: [PATCH] Make addJSONProviders a Disposable --- extensions/javascript/src/features/jsonContributions.ts | 6 ++++-- extensions/javascript/src/javascriptMain.ts | 2 +- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/extensions/javascript/src/features/jsonContributions.ts b/extensions/javascript/src/features/jsonContributions.ts index 093a3c85e08..d193b289c7b 100644 --- a/extensions/javascript/src/features/jsonContributions.ts +++ b/extensions/javascript/src/features/jsonContributions.ts @@ -11,7 +11,7 @@ import {PackageJSONContribution} from './packageJSONContribution'; import {XHRRequest} from 'request-light'; import {CompletionItem, CompletionItemProvider, CompletionList, TextDocument, Position, Hover, HoverProvider, - CancellationToken, Range, TextEdit, MarkedString, DocumentSelector, languages} from 'vscode'; + CancellationToken, Range, TextEdit, MarkedString, DocumentSelector, languages, Disposable} from 'vscode'; export interface ISuggestionsCollector { add(suggestion: CompletionItem): void; @@ -29,13 +29,15 @@ export interface IJSONContribution { resolveSuggestion?(item: CompletionItem): Thenable; } -export function addJSONProviders(xhr: XHRRequest, subscriptions: { dispose(): any }[]) { +export function addJSONProviders(xhr: XHRRequest) : Disposable { let contributions = [new PackageJSONContribution(xhr), new BowerJSONContribution(xhr)]; + let subscriptions : Disposable[] = []; contributions.forEach(contribution => { let selector = contribution.getDocumentSelector(); subscriptions.push(languages.registerCompletionItemProvider(selector, new JSONCompletionItemProvider(contribution), '.', '$')); subscriptions.push(languages.registerHoverProvider(selector, new JSONHoverProvider(contribution))); }); + return Disposable.from(...subscriptions); } export class JSONHoverProvider implements HoverProvider { diff --git a/extensions/javascript/src/javascriptMain.ts b/extensions/javascript/src/javascriptMain.ts index 8268e680585..e386e14e4ed 100644 --- a/extensions/javascript/src/javascriptMain.ts +++ b/extensions/javascript/src/javascriptMain.ts @@ -18,7 +18,7 @@ export function activate(context: ExtensionContext): any { configureHttpRequest(); workspace.onDidChangeConfiguration(e => configureHttpRequest()); - addJSONProviders(httpRequest.xhr, context.subscriptions); + context.subscriptions.push(addJSONProviders(httpRequest.xhr)); } function configureHttpRequest() { -- GitLab