From a4347befdea0abbf2c04d0c42cce6562dca4ae0a Mon Sep 17 00:00:00 2001 From: Matt Bierner Date: Wed, 25 Jan 2017 00:33:00 -0800 Subject: [PATCH] References code lens fire event when config is changed. Fixes #19195 (#19343) --- .../src/features/referencesCodeLensProvider.ts | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/extensions/typescript/src/features/referencesCodeLensProvider.ts b/extensions/typescript/src/features/referencesCodeLensProvider.ts index 82759472b0c..561e2a03d5f 100644 --- a/extensions/typescript/src/features/referencesCodeLensProvider.ts +++ b/extensions/typescript/src/features/referencesCodeLensProvider.ts @@ -5,7 +5,7 @@ 'use strict'; -import { CodeLensProvider, CodeLens, CancellationToken, TextDocument, Range, Uri, Location, Position, workspace, WorkspaceConfiguration } from 'vscode'; +import { CodeLensProvider, CodeLens, CancellationToken, TextDocument, Range, Uri, Location, Position, workspace, WorkspaceConfiguration, EventEmitter, Event } from 'vscode'; import * as Proto from '../protocol'; import * as PConst from '../protocol.const'; @@ -27,16 +27,23 @@ class ReferencesCodeLens extends CodeLens { } export default class TypeScriptReferencesCodeLensProvider implements CodeLensProvider { - private client: ITypescriptServiceClient; private enabled = false; - constructor(client: ITypescriptServiceClient) { - this.client = client; + private onDidChangeCodeLensesEmitter = new EventEmitter(); + + public get onDidChangeCodeLenses(): Event { + return this.onDidChangeCodeLensesEmitter.event; } + constructor(private client: ITypescriptServiceClient) { } + public updateConfiguration(config: WorkspaceConfiguration): void { let typeScriptConfig = workspace.getConfiguration('typescript'); + const wasEnabled = this.enabled; this.enabled = typeScriptConfig.get('referencesCodeLens.enabled', false); + if (wasEnabled !== this.enabled) { + this.onDidChangeCodeLensesEmitter.fire(this); + } } provideCodeLenses(document: TextDocument, token: CancellationToken): Promise {