mirror of
https://github.com/microsoft/vscode.git
synced 2026-04-20 00:28:52 +01:00
hook up unhandled extension errors with extension telemetry (#163424)
* hook up unhandled extension errors with extension telemetry * fix layering * forward unhandled language provider errors to extension telemetry loggers
This commit is contained in:
@@ -34,6 +34,7 @@ import { StopWatch } from 'vs/base/common/stopwatch';
|
||||
import { isCancellationError, NotImplementedError } from 'vs/base/common/errors';
|
||||
import { raceCancellationError } from 'vs/base/common/async';
|
||||
import { isProposedApiEnabled } from 'vs/workbench/services/extensions/common/extensions';
|
||||
import { IExtHostTelemetry } from 'vs/workbench/api/common/extHostTelemetry';
|
||||
|
||||
// --- adapter
|
||||
|
||||
@@ -1831,31 +1832,20 @@ export class ExtHostLanguageFeatures implements extHostProtocol.ExtHostLanguageF
|
||||
|
||||
private static _handlePool: number = 0;
|
||||
|
||||
private readonly _uriTransformer: IURITransformer;
|
||||
private readonly _proxy: extHostProtocol.MainThreadLanguageFeaturesShape;
|
||||
private readonly _documents: ExtHostDocuments;
|
||||
private readonly _commands: ExtHostCommands;
|
||||
private readonly _diagnostics: ExtHostDiagnostics;
|
||||
private readonly _adapter = new Map<number, AdapterData>();
|
||||
private readonly _logService: ILogService;
|
||||
private readonly _apiDeprecation: IExtHostApiDeprecationService;
|
||||
|
||||
constructor(
|
||||
mainContext: extHostProtocol.IMainContext,
|
||||
uriTransformer: IURITransformer,
|
||||
documents: ExtHostDocuments,
|
||||
commands: ExtHostCommands,
|
||||
diagnostics: ExtHostDiagnostics,
|
||||
logService: ILogService,
|
||||
apiDeprecationService: IExtHostApiDeprecationService,
|
||||
private readonly _uriTransformer: IURITransformer,
|
||||
private readonly _documents: ExtHostDocuments,
|
||||
private readonly _commands: ExtHostCommands,
|
||||
private readonly _diagnostics: ExtHostDiagnostics,
|
||||
private readonly _logService: ILogService,
|
||||
private readonly _apiDeprecation: IExtHostApiDeprecationService,
|
||||
private readonly _extensionTelemetry: IExtHostTelemetry
|
||||
) {
|
||||
this._uriTransformer = uriTransformer;
|
||||
this._proxy = mainContext.getProxy(extHostProtocol.MainContext.MainThreadLanguageFeatures);
|
||||
this._documents = documents;
|
||||
this._commands = commands;
|
||||
this._diagnostics = diagnostics;
|
||||
this._logService = logService;
|
||||
this._apiDeprecation = apiDeprecationService;
|
||||
}
|
||||
|
||||
private _transformDocumentSelector(selector: vscode.DocumentSelector): Array<extHostProtocol.IDocumentFilterDto> {
|
||||
@@ -1898,6 +1888,8 @@ export class ExtHostLanguageFeatures implements extHostProtocol.ExtHostLanguageF
|
||||
if (!isCancellationError(err)) {
|
||||
this._logService.error(`[${data.extension.identifier.value}] provider FAILED`);
|
||||
this._logService.error(err);
|
||||
|
||||
this._extensionTelemetry.onExtensionError(data.extension.identifier, err);
|
||||
}
|
||||
}).finally(() => {
|
||||
if (!doNotLog) {
|
||||
|
||||
Reference in New Issue
Block a user