提交 96c542c6 编写于 作者: J Johannes Rieken

telemetry for extension tips

上级 e2e8c2a3
......@@ -18,6 +18,7 @@ import { QuickOpenHandler } from 'vs/workbench/browser/quickopen';
import { IHighlight } from 'vs/base/parts/quickopen/browser/quickOpenModel';
import { IExtensionsService, IGalleryService, IExtensionTipsService, IExtension } from 'vs/workbench/parts/extensions/common/extensions';
import { InstallAction, UninstallAction } from 'vs/workbench/parts/extensions/electron-browser/extensionsActions';
import { ILifecycleService } from 'vs/platform/lifecycle/common/lifecycle';
import { IMessageService } from 'vs/platform/message/common/message';
import { ITelemetryService } from 'vs/platform/telemetry/common/telemetry';
import { IInstantiationService } from 'vs/platform/instantiation/common/instantiation';
......@@ -569,16 +570,29 @@ export class SuggestedExtensionHandler extends QuickOpenHandler {
constructor(
@IExtensionTipsService private extensionTipsService: IExtensionTipsService,
@IInstantiationService private instantiationService: IInstantiationService
@IInstantiationService private instantiationService: IInstantiationService,
@ITelemetryService private telemetryService: ITelemetryService,
@IExtensionsService extensionService: IExtensionsService,
@ILifecycleService lifecycleService:ILifecycleService
) {
super();
const subscription = extensionService.onInstallExtension(manifest => {
if (this.model) { // indicates that tips currently show
this.telemetryService.publicLog('extensionGallery:tips', { installed: true });
}
});
lifecycleService.onShutdown(() => subscription.dispose());
}
getResults(input: string): TPromise<IModel<IExtensionEntry>> {
if (!this.model) {
const {tips} = this.extensionTipsService;
this.telemetryService.publicLog('extensionGallery:tips', { count: tips.length });
this.model = this.instantiationService.createInstance(
SuggestedExtensionsModel,
this.extensionTipsService.tips);
tips);
}
this.model.input = input;
return TPromise.as(this.model);
......
......@@ -13,6 +13,7 @@ import { Action } from 'vs/base/common/actions';
import statusbar = require('vs/workbench/browser/parts/statusbar/statusbar');
import { IPluginService, IPluginStatus } from 'vs/platform/plugins/common/plugins';
import { IInstantiationService } from 'vs/platform/instantiation/common/instantiation';
import { ITelemetryService } from 'vs/platform/telemetry/common/telemetry';
import { IMessageService, CloseAction } from 'vs/platform/message/common/message';
import { IStorageService, StorageScope } from 'vs/platform/storage/common/storage';
import { UninstallAction } from 'vs/workbench/parts/extensions/electron-browser/extensionsActions';
......@@ -97,7 +98,8 @@ export class ExtensionTipsStatusbarItem implements statusbar.IStatusbarItem {
constructor(
@IQuickOpenService private _quickOpenService: IQuickOpenService,
@IExtensionTipsService private _extensionTipsService: IExtensionTipsService,
@IStorageService private _storageService: IStorageService
@IStorageService private _storageService: IStorageService,
@ITelemetryService private _telemetryService: ITelemetryService
) {
const previousTips = <{ [id: string]: number }>JSON.parse(this._storageService.get('extensionsAssistant/tips', StorageScope.GLOBAL, '{}'));
......@@ -133,6 +135,7 @@ export class ExtensionTipsStatusbarItem implements statusbar.IStatusbarItem {
if (hasNewTips) {
dom.addClass(this._domNode, 'active');
this._storageService.store('extensionsAssistant/tips', JSON.stringify(previousTips), StorageScope.GLOBAL);
this._telemetryService.publicLog('extensionGallery:tips', { hintingTips: true });
}
});
}
......@@ -149,6 +152,7 @@ export class ExtensionTipsStatusbarItem implements statusbar.IStatusbarItem {
}
private _onClick(event: MouseEvent): void {
this._telemetryService.publicLog('extensionGallery:tips', { revealingTips: true });
this._quickOpenService.show('ext tips ').then(() => dom.removeClass(this._domNode, 'active'));
}
}
\ No newline at end of file
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册