log api uage only once, fixes #30486

This commit is contained in:
Johannes Rieken
2017-07-12 17:38:56 +02:00
parent 0c0de810cc
commit 0373d29de6

View File

@@ -131,6 +131,20 @@ export function createApiFactory(
}
}
const apiUsage = new class {
private _seen = new Set<string>();
publicLog(apiName: string) {
if (this._seen.has(apiName)) {
return undefined;
}
this._seen.add(apiName);
return telemetryService.publicLog('apiUsage', {
name: apiName,
extension: extension.id
});
}
};
// namespace: commands
const commands: typeof vscode.commands = {
registerCommand<T>(id: string, command: <T>(...args: any[]) => T | Thenable<T>, thisArgs?: any): vscode.Disposable {
@@ -347,28 +361,21 @@ export function createApiFactory(
// namespace: workspace
const workspace: typeof vscode.workspace = {
get rootPath() {
telemetryService.publicLog('api-getter', {
name: 'workspace#rootPath',
extension: extension.id
});
apiUsage.publicLog('workspace#rootPath');
return extHostWorkspace.getPath();
},
set rootPath(value) {
throw errors.readonly();
},
get workspaceFolders() {
// proposed api
assertProposedApi(extension);
telemetryService.publicLog('api-getter', {
name: 'workspace#workspaceFolders',
extension: extension.id
});
apiUsage.publicLog('workspace#workspaceFolders');
return extHostWorkspace.getRoots();
},
onDidChangeWorkspaceFolders: proposedApiFunction(extension, (listener, thisArgs?, disposables?) => {
telemetryService.publicLog('api-getter', {
name: 'workspace#onDidChangeWorkspaceFolders',
extension: extension.id
});
// proposed api
apiUsage.publicLog('workspace#onDidChangeWorkspaceFolders');
return extHostWorkspace.onDidChangeWorkspace(listener, thisArgs, disposables);
}),
asRelativePath: (pathOrUri) => {