From 08b8ea2f3807ca8772294f5d7e871530f2187d57 Mon Sep 17 00:00:00 2001 From: Benjamin Pasero Date: Sun, 26 Oct 2025 05:50:40 +0100 Subject: [PATCH] debt - reduce more `any` types (#273358) * debt - reduce more `any` types * Update src/vs/workbench/api/browser/mainThreadNotebook.ts Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update src/vs/workbench/api/browser/mainThreadDebugService.ts Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- eslint.config.js | 28 ------------------- src/vs/base/common/history.ts | 2 +- src/vs/base/node/id.ts | 8 +++--- .../actionWidget/browser/actionList.ts | 2 +- .../quickinput/browser/tree/quickTree.ts | 2 +- .../platform/quickinput/common/quickAccess.ts | 1 + .../api/browser/mainThreadClipboard.ts | 4 +-- .../api/browser/mainThreadCodeInsets.ts | 2 +- .../api/browser/mainThreadComments.ts | 2 +- .../api/browser/mainThreadConfiguration.ts | 2 +- .../api/browser/mainThreadDebugService.ts | 2 +- .../api/browser/mainThreadDocuments.ts | 2 +- ...ainThreadEditSessionIdentityParticipant.ts | 2 +- .../workbench/api/browser/mainThreadErrors.ts | 6 ++-- .../api/browser/mainThreadExtensionService.ts | 2 +- .../api/browser/mainThreadFileSystem.ts | 2 +- .../api/browser/mainThreadLanguageFeatures.ts | 10 +++---- .../api/browser/mainThreadLanguageModels.ts | 6 ++-- .../api/browser/mainThreadNotebook.ts | 5 ++-- .../api/browser/mainThreadNotebookKernels.ts | 2 +- .../mainThreadNotebookSaveParticipant.ts | 2 +- .../api/browser/mainThreadOutputService.ts | 2 +- .../api/browser/mainThreadQuickOpen.ts | 2 +- src/vs/workbench/api/browser/mainThreadSCM.ts | 6 ++-- .../api/browser/mainThreadSaveParticipant.ts | 2 +- .../workbench/api/browser/mainThreadSearch.ts | 6 ++-- .../workbench/api/browser/mainThreadTask.ts | 6 ++-- .../api/browser/mainThreadTelemetry.ts | 4 +-- 28 files changed, 48 insertions(+), 74 deletions(-) diff --git a/eslint.config.js b/eslint.config.js index b32083866de..ff3e0c735aa 100644 --- a/eslint.config.js +++ b/eslint.config.js @@ -192,7 +192,6 @@ export default tseslint.config( 'src/vs/base/browser/pixelRatio.ts', 'src/vs/base/browser/trustedTypes.ts', 'src/vs/base/browser/webWorkerFactory.ts', - 'src/vs/base/node/id.ts', 'src/vs/base/node/osDisplayProtocolInfo.ts', 'src/vs/base/node/osReleaseInfo.ts', 'src/vs/base/node/processes.ts', @@ -207,7 +206,6 @@ export default tseslint.config( 'src/vs/base/common/errorMessage.ts', 'src/vs/base/common/errors.ts', 'src/vs/base/common/event.ts', - 'src/vs/base/common/history.ts', 'src/vs/base/common/hotReload.ts', 'src/vs/base/common/hotReloadHelpers.ts', 'src/vs/base/common/iterator.ts', @@ -287,7 +285,6 @@ export default tseslint.config( 'src/vs/platform/accessibility/browser/accessibleView.ts', 'src/vs/platform/accessibility/common/accessibility.ts', 'src/vs/platform/action/common/action.ts', - 'src/vs/platform/actionWidget/browser/actionList.ts', 'src/vs/platform/actions/common/actions.ts', 'src/vs/platform/assignment/common/assignment.ts', 'src/vs/platform/browserElements/electron-main/nativeBrowserElementsMainService.ts', @@ -346,9 +343,7 @@ export default tseslint.config( 'src/vs/platform/policy/common/policyIpc.ts', 'src/vs/platform/policy/node/nativePolicyService.ts', 'src/vs/platform/profiling/common/profilingTelemetrySpec.ts', - 'src/vs/platform/quickinput/browser/commandsQuickAccess.ts', 'src/vs/platform/quickinput/browser/quickInputActions.ts', - 'src/vs/platform/quickinput/common/quickAccess.ts', 'src/vs/platform/quickinput/common/quickInput.ts', 'src/vs/platform/registry/common/platform.ts', 'src/vs/platform/remote/browser/browserSocketFactory.ts', @@ -413,7 +408,6 @@ export default tseslint.config( 'src/vs/platform/configuration/test/common/testConfigurationService.ts', 'src/vs/platform/instantiation/test/common/instantiationServiceMock.ts', 'src/vs/platform/keybinding/test/common/mockKeybindingService.ts', - 'src/vs/platform/quickinput/browser/tree/quickTree.ts', 'src/vs/platform/userDataSync/test/common/userDataSyncClient.ts', // Editor 'src/vs/editor/standalone/browser/standaloneEditor.ts', @@ -466,28 +460,6 @@ export default tseslint.config( 'src/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/utils/utils.ts', // Workbench 'src/vs/workbench/api/browser/mainThreadChatSessions.ts', - 'src/vs/workbench/api/browser/mainThreadClipboard.ts', - 'src/vs/workbench/api/browser/mainThreadCodeInsets.ts', - 'src/vs/workbench/api/browser/mainThreadComments.ts', - 'src/vs/workbench/api/browser/mainThreadConfiguration.ts', - 'src/vs/workbench/api/browser/mainThreadDebugService.ts', - 'src/vs/workbench/api/browser/mainThreadDocuments.ts', - 'src/vs/workbench/api/browser/mainThreadEditSessionIdentityParticipant.ts', - 'src/vs/workbench/api/browser/mainThreadErrors.ts', - 'src/vs/workbench/api/browser/mainThreadExtensionService.ts', - 'src/vs/workbench/api/browser/mainThreadFileSystem.ts', - 'src/vs/workbench/api/browser/mainThreadLanguageFeatures.ts', - 'src/vs/workbench/api/browser/mainThreadLanguageModels.ts', - 'src/vs/workbench/api/browser/mainThreadNotebook.ts', - 'src/vs/workbench/api/browser/mainThreadNotebookKernels.ts', - 'src/vs/workbench/api/browser/mainThreadNotebookSaveParticipant.ts', - 'src/vs/workbench/api/browser/mainThreadOutputService.ts', - 'src/vs/workbench/api/browser/mainThreadQuickOpen.ts', - 'src/vs/workbench/api/browser/mainThreadSCM.ts', - 'src/vs/workbench/api/browser/mainThreadSaveParticipant.ts', - 'src/vs/workbench/api/browser/mainThreadSearch.ts', - 'src/vs/workbench/api/browser/mainThreadTask.ts', - 'src/vs/workbench/api/browser/mainThreadTelemetry.ts', 'src/vs/workbench/api/browser/mainThreadTerminalService.ts', 'src/vs/workbench/api/browser/mainThreadTreeViews.ts', 'src/vs/workbench/api/browser/statusBarExtensionPoint.ts', diff --git a/src/vs/base/common/history.ts b/src/vs/base/common/history.ts index 1e34d03e159..d75120336f6 100644 --- a/src/vs/base/common/history.ts +++ b/src/vs/base/common/history.ts @@ -13,7 +13,7 @@ export interface IHistory { add(t: T): this; has(t: T): boolean; clear(): void; - forEach(callbackfn: (value: T, value2: T, set: Set) => void, thisArg?: any): void; + forEach(callbackfn: (value: T, value2: T, set: Set) => void, thisArg?: unknown): void; replace?(t: T[]): void; readonly onDidChange?: Event; } diff --git a/src/vs/base/node/id.ts b/src/vs/base/node/id.ts index c74fcf4ae61..b37534ac0bc 100644 --- a/src/vs/base/node/id.ts +++ b/src/vs/base/node/id.ts @@ -78,7 +78,7 @@ export const virtualMachineHint: { value(): number } = new class { }; let machineId: Promise; -export async function getMachineId(errorLogger: (error: any) => void): Promise { +export async function getMachineId(errorLogger: (error: Error) => void): Promise { if (!machineId) { machineId = (async () => { const id = await getMacMachineId(errorLogger); @@ -90,7 +90,7 @@ export async function getMachineId(errorLogger: (error: any) => void): Promise void): Promise { +async function getMacMachineId(errorLogger: (error: Error) => void): Promise { try { const crypto = await import('crypto'); const macAddress = getMac(); @@ -102,7 +102,7 @@ async function getMacMachineId(errorLogger: (error: any) => void): Promise void): Promise { +export async function getSqmMachineId(errorLogger: (error: Error) => void): Promise { if (isWindows) { const Registry = await import('@vscode/windows-registry'); try { @@ -115,7 +115,7 @@ export async function getSqmMachineId(errorLogger: (error: any) => void): Promis return ''; } -export async function getDevDeviceId(errorLogger: (error: any) => void): Promise { +export async function getDevDeviceId(errorLogger: (error: Error) => void): Promise { try { const deviceIdPackage = await import('@vscode/deviceid'); const id = await deviceIdPackage.getDeviceId(); diff --git a/src/vs/platform/actionWidget/browser/actionList.ts b/src/vs/platform/actionWidget/browser/actionList.ts index 76ddb42ff5b..f89a4e7db1b 100644 --- a/src/vs/platform/actionWidget/browser/actionList.ts +++ b/src/vs/platform/actionWidget/browser/actionList.ts @@ -33,7 +33,7 @@ export interface IActionListDelegate { export interface IActionListItem { readonly item?: T; readonly kind: ActionListItemKind; - readonly group?: { kind?: any; icon?: ThemeIcon; title: string }; + readonly group?: { kind?: unknown; icon?: ThemeIcon; title: string }; readonly disabled?: boolean; readonly label?: string; readonly description?: string; diff --git a/src/vs/platform/quickinput/browser/tree/quickTree.ts b/src/vs/platform/quickinput/browser/tree/quickTree.ts index 829600d12cb..18f8137fabd 100644 --- a/src/vs/platform/quickinput/browser/tree/quickTree.ts +++ b/src/vs/platform/quickinput/browser/tree/quickTree.ts @@ -75,7 +75,7 @@ export class QuickTree extends QuickInput implements I } // TODO: Fix the any casting - // eslint-disable-next-line local/code-no-any-casts + // eslint-disable-next-line local/code-no-any-casts, @typescript-eslint/no-explicit-any get checkedLeafItems(): readonly T[] { return this.ui.tree.getCheckedLeafItems() as any as readonly T[]; } setItemTree(itemTree: T[]): void { diff --git a/src/vs/platform/quickinput/common/quickAccess.ts b/src/vs/platform/quickinput/common/quickAccess.ts index bf108ebd7cc..3645acd7131 100644 --- a/src/vs/platform/quickinput/common/quickAccess.ts +++ b/src/vs/platform/quickinput/common/quickAccess.ts @@ -169,6 +169,7 @@ export interface IQuickAccessProviderDescriptor { /** * The actual provider that will be instantiated as needed. */ + // eslint-disable-next-line @typescript-eslint/no-explicit-any readonly ctor: { new(...services: any /* TS BrandedService but no clue how to type this properly */[]): IQuickAccessProvider }; /** diff --git a/src/vs/workbench/api/browser/mainThreadClipboard.ts b/src/vs/workbench/api/browser/mainThreadClipboard.ts index 636fa69163d..84946f0b845 100644 --- a/src/vs/workbench/api/browser/mainThreadClipboard.ts +++ b/src/vs/workbench/api/browser/mainThreadClipboard.ts @@ -3,7 +3,7 @@ * Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ -import { extHostNamedCustomer } from '../../services/extensions/common/extHostCustomers.js'; +import { extHostNamedCustomer, IExtHostContext } from '../../services/extensions/common/extHostCustomers.js'; import { MainContext, MainThreadClipboardShape } from '../common/extHost.protocol.js'; import { IClipboardService } from '../../../platform/clipboard/common/clipboardService.js'; import { ILogService } from '../../../platform/log/common/log.js'; @@ -12,7 +12,7 @@ import { ILogService } from '../../../platform/log/common/log.js'; export class MainThreadClipboard implements MainThreadClipboardShape { constructor( - _context: any, + _context: IExtHostContext, @IClipboardService private readonly _clipboardService: IClipboardService, @ILogService private readonly _logService: ILogService ) { } diff --git a/src/vs/workbench/api/browser/mainThreadCodeInsets.ts b/src/vs/workbench/api/browser/mainThreadCodeInsets.ts index efc220d3c31..ee7e9d98df6 100644 --- a/src/vs/workbench/api/browser/mainThreadCodeInsets.ts +++ b/src/vs/workbench/api/browser/mainThreadCodeInsets.ts @@ -132,7 +132,7 @@ export class MainThreadEditorInsets implements MainThreadEditorInsetsShape { inset.webview.contentOptions = reviveWebviewContentOptions(options); } - async $postMessage(handle: number, value: any): Promise { + async $postMessage(handle: number, value: unknown): Promise { const inset = this.getInset(handle); inset.webview.postMessage(value); return true; diff --git a/src/vs/workbench/api/browser/mainThreadComments.ts b/src/vs/workbench/api/browser/mainThreadComments.ts index d8bfdd63b6f..5a7b3ad78cd 100644 --- a/src/vs/workbench/api/browser/mainThreadComments.ts +++ b/src/vs/workbench/api/browser/mainThreadComments.ts @@ -521,7 +521,7 @@ export class MainThreadCommentController extends Disposable implements ICommentC await this._proxy.$updateCommentThreadTemplate(this.handle, threadHandle, range); } - toJSON(): any { + toJSON() { return { $mid: MarshalledId.CommentController, handle: this.handle diff --git a/src/vs/workbench/api/browser/mainThreadConfiguration.ts b/src/vs/workbench/api/browser/mainThreadConfiguration.ts index 07c29c26ee9..31a20b7cc09 100644 --- a/src/vs/workbench/api/browser/mainThreadConfiguration.ts +++ b/src/vs/workbench/api/browser/mainThreadConfiguration.ts @@ -72,7 +72,7 @@ export class MainThreadConfiguration implements MainThreadConfigurationShape { } } - private _updateValue(key: string, value: unknown, configurationTarget: ConfigurationTarget, overriddenValue: any | undefined, overrides: IConfigurationOverrides, scopeToLanguage: boolean | undefined): Promise { + private _updateValue(key: string, value: unknown, configurationTarget: ConfigurationTarget, overriddenValue: unknown | undefined, overrides: IConfigurationOverrides, scopeToLanguage: boolean | undefined): Promise { overrides = scopeToLanguage === true ? overrides : scopeToLanguage === false ? { resource: overrides.resource } : overrides.overrideIdentifier && overriddenValue !== undefined ? overrides diff --git a/src/vs/workbench/api/browser/mainThreadDebugService.ts b/src/vs/workbench/api/browser/mainThreadDebugService.ts index 16cd23d554b..e0f345da6f1 100644 --- a/src/vs/workbench/api/browser/mainThreadDebugService.ts +++ b/src/vs/workbench/api/browser/mainThreadDebugService.ts @@ -347,7 +347,7 @@ export class MainThreadDebugService implements MainThreadDebugServiceShape, IDeb session?.setName(name); } - public $customDebugAdapterRequest(sessionId: DebugSessionUUID, request: string, args: any): Promise { + public $customDebugAdapterRequest(sessionId: DebugSessionUUID, request: string, args: unknown): Promise { const session = this.debugService.getModel().getSession(sessionId, true); if (session) { return session.customRequest(request, args).then(response => { diff --git a/src/vs/workbench/api/browser/mainThreadDocuments.ts b/src/vs/workbench/api/browser/mainThreadDocuments.ts index 772493301e6..9827a1a573f 100644 --- a/src/vs/workbench/api/browser/mainThreadDocuments.ts +++ b/src/vs/workbench/api/browser/mainThreadDocuments.ts @@ -51,7 +51,7 @@ export class BoundModelReferenceCollection { } } - add(uri: URI, ref: IReference, length: number = 0): void { + add(uri: URI, ref: IReference, length: number = 0): void { // const length = ref.object.textEditorModel.getValueLength(); const dispose = () => { const idx = this._data.indexOf(entry); diff --git a/src/vs/workbench/api/browser/mainThreadEditSessionIdentityParticipant.ts b/src/vs/workbench/api/browser/mainThreadEditSessionIdentityParticipant.ts index ae1198c5455..f834b6bbaf6 100644 --- a/src/vs/workbench/api/browser/mainThreadEditSessionIdentityParticipant.ts +++ b/src/vs/workbench/api/browser/mainThreadEditSessionIdentityParticipant.ts @@ -23,7 +23,7 @@ class ExtHostEditSessionIdentityCreateParticipant implements IEditSessionIdentit } async participate(workspaceFolder: WorkspaceFolder, token: CancellationToken): Promise { - const p = new Promise((resolve, reject) => { + const p = new Promise((resolve, reject) => { setTimeout( () => reject(new Error(localize('timeout.onWillCreateEditSessionIdentity', "Aborted onWillCreateEditSessionIdentity-event after 10000ms"))), diff --git a/src/vs/workbench/api/browser/mainThreadErrors.ts b/src/vs/workbench/api/browser/mainThreadErrors.ts index becba7680c6..ef3eaf20eb8 100644 --- a/src/vs/workbench/api/browser/mainThreadErrors.ts +++ b/src/vs/workbench/api/browser/mainThreadErrors.ts @@ -14,9 +14,9 @@ export class MainThreadErrors implements MainThreadErrorsShape { // } - $onUnexpectedError(err: any | SerializedError): void { - if (err && err.$isError) { - err = transformErrorFromSerialization(err); + $onUnexpectedError(err: unknown | SerializedError): void { + if ((err as SerializedError | undefined)?.$isError) { + err = transformErrorFromSerialization(err as SerializedError); } onUnexpectedError(err); } diff --git a/src/vs/workbench/api/browser/mainThreadExtensionService.ts b/src/vs/workbench/api/browser/mainThreadExtensionService.ts index 20daca562a4..4cfaf6a58cb 100644 --- a/src/vs/workbench/api/browser/mainThreadExtensionService.ts +++ b/src/vs/workbench/api/browser/mainThreadExtensionService.ts @@ -54,7 +54,7 @@ export class MainThreadExtensionService implements MainThreadExtensionServiceSha internalExtHostContext._setExtensionHostProxy( new ExtensionHostProxy(extHostContext.getProxy(ExtHostContext.ExtHostExtensionService)) ); - // eslint-disable-next-line local/code-no-any-casts + // eslint-disable-next-line local/code-no-any-casts, @typescript-eslint/no-explicit-any internalExtHostContext._setAllMainProxyIdentifiers(Object.keys(MainContext).map((key) => (MainContext)[key])); } diff --git a/src/vs/workbench/api/browser/mainThreadFileSystem.ts b/src/vs/workbench/api/browser/mainThreadFileSystem.ts index dd402147c27..ebdbeb4c398 100644 --- a/src/vs/workbench/api/browser/mainThreadFileSystem.ts +++ b/src/vs/workbench/api/browser/mainThreadFileSystem.ts @@ -150,7 +150,7 @@ export class MainThreadFileSystem implements MainThreadFileSystemShape { } } - private static _handleError(err: any): never { + private static _handleError(err: unknown): never { if (err instanceof FileOperationError) { switch (err.fileOperationResult) { case FileOperationResult.FILE_NOT_FOUND: diff --git a/src/vs/workbench/api/browser/mainThreadLanguageFeatures.ts b/src/vs/workbench/api/browser/mainThreadLanguageFeatures.ts index 799de991883..0af936d1771 100644 --- a/src/vs/workbench/api/browser/mainThreadLanguageFeatures.ts +++ b/src/vs/workbench/api/browser/mainThreadLanguageFeatures.ts @@ -222,7 +222,7 @@ export class MainThreadLanguageFeatures extends Disposable implements MainThread this._registrations.set(handle, this._languageFeaturesService.codeLensProvider.register(selector, provider)); } - $emitCodeLensEvent(eventHandle: number, event?: any): void { + $emitCodeLensEvent(eventHandle: number, event?: unknown): void { const obj = this._registrations.get(eventHandle); if (obj instanceof Emitter) { obj.fire(event); @@ -314,7 +314,7 @@ export class MainThreadLanguageFeatures extends Disposable implements MainThread this._registrations.set(handle, this._languageFeaturesService.inlineValuesProvider.register(selector, provider)); } - $emitInlineValuesEvent(eventHandle: number, event?: any): void { + $emitInlineValuesEvent(eventHandle: number, event?: unknown): void { const obj = this._registrations.get(eventHandle); if (obj instanceof Emitter) { obj.fire(event); @@ -964,7 +964,7 @@ export class MainThreadLanguageFeatures extends Disposable implements MainThread this._registrations.set(handle, this._languageFeaturesService.foldingRangeProvider.register(selector, provider)); } - $emitFoldingRangeEvent(eventHandle: number, event?: any): void { + $emitFoldingRangeEvent(eventHandle: number, event?: unknown): void { const obj = this._registrations.get(eventHandle); if (obj instanceof Emitter) { obj.fire(event); @@ -1009,7 +1009,7 @@ export class MainThreadLanguageFeatures extends Disposable implements MainThread outgoing.forEach(value => { value.to = MainThreadLanguageFeatures._reviveCallHierarchyItemDto(value.to); }); - // eslint-disable-next-line local/code-no-any-casts + // eslint-disable-next-line local/code-no-any-casts, @typescript-eslint/no-explicit-any return outgoing; }, provideIncomingCalls: async (item, token) => { @@ -1020,7 +1020,7 @@ export class MainThreadLanguageFeatures extends Disposable implements MainThread incoming.forEach(value => { value.from = MainThreadLanguageFeatures._reviveCallHierarchyItemDto(value.from); }); - // eslint-disable-next-line local/code-no-any-casts + // eslint-disable-next-line local/code-no-any-casts, @typescript-eslint/no-explicit-any return incoming; } })); diff --git a/src/vs/workbench/api/browser/mainThreadLanguageModels.ts b/src/vs/workbench/api/browser/mainThreadLanguageModels.ts index 2f67a6ad620..e6f4e400938 100644 --- a/src/vs/workbench/api/browser/mainThreadLanguageModels.ts +++ b/src/vs/workbench/api/browser/mainThreadLanguageModels.ts @@ -32,7 +32,7 @@ export class MainThreadLanguageModels implements MainThreadLanguageModelsShape { private readonly _store = new DisposableStore(); private readonly _providerRegistrations = new DisposableMap(); private readonly _lmProviderChange = new Emitter<{ vendor: string }>(); - private readonly _pendingProgress = new Map; stream: AsyncIterableSource }>(); + private readonly _pendingProgress = new Map; stream: AsyncIterableSource }>(); private readonly _ignoredFileProviderRegistrations = new DisposableMap(); constructor( @@ -70,7 +70,7 @@ export class MainThreadLanguageModels implements MainThreadLanguageModelsShape { }, sendChatRequest: async (modelId, messages, from, options, token) => { const requestId = (Math.random() * 1e6) | 0; - const defer = new DeferredPromise(); + const defer = new DeferredPromise(); const stream = new AsyncIterableSource(); try { @@ -140,7 +140,7 @@ export class MainThreadLanguageModels implements MainThreadLanguageModelsShape { return this._chatProviderService.selectLanguageModels(selector); } - async $tryStartChatRequest(extension: ExtensionIdentifier, modelIdentifier: string, requestId: number, messages: SerializableObjectWithBuffers, options: {}, token: CancellationToken): Promise { + async $tryStartChatRequest(extension: ExtensionIdentifier, modelIdentifier: string, requestId: number, messages: SerializableObjectWithBuffers, options: {}, token: CancellationToken): Promise { this._logService.trace('[CHAT] request STARTED', extension.value, requestId); let response: ILanguageModelChatResponse; diff --git a/src/vs/workbench/api/browser/mainThreadNotebook.ts b/src/vs/workbench/api/browser/mainThreadNotebook.ts index 4aec2291c33..799f50babd9 100644 --- a/src/vs/workbench/api/browser/mainThreadNotebook.ts +++ b/src/vs/workbench/api/browser/mainThreadNotebook.ts @@ -224,6 +224,7 @@ CommandsRegistry.registerCommand('_executeNotebookToData', async (accessor, note return bytes; }); -function isFileOperationError(error: any): error is FileOperationError { - return typeof error.fileOperationResult === 'number' && typeof error.message === 'string'; +function isFileOperationError(error: unknown): error is FileOperationError { + const candidate = error as FileOperationError | undefined; + return typeof candidate?.fileOperationResult === 'number' && typeof candidate?.message === 'string'; } diff --git a/src/vs/workbench/api/browser/mainThreadNotebookKernels.ts b/src/vs/workbench/api/browser/mainThreadNotebookKernels.ts index e69273a0ca6..e35fcf9a1b8 100644 --- a/src/vs/workbench/api/browser/mainThreadNotebookKernels.ts +++ b/src/vs/workbench/api/browser/mainThreadNotebookKernels.ts @@ -197,7 +197,7 @@ export class MainThreadNotebookKernels implements MainThreadNotebookKernelsShape this._editors.deleteAndDispose(editor); } - async $postMessage(handle: number, editorId: string | undefined, message: any): Promise { + async $postMessage(handle: number, editorId: string | undefined, message: unknown): Promise { const tuple = this._kernels.get(handle); if (!tuple) { throw new Error('kernel already disposed'); diff --git a/src/vs/workbench/api/browser/mainThreadNotebookSaveParticipant.ts b/src/vs/workbench/api/browser/mainThreadNotebookSaveParticipant.ts index 60bc697adb9..375f88ea580 100644 --- a/src/vs/workbench/api/browser/mainThreadNotebookSaveParticipant.ts +++ b/src/vs/workbench/api/browser/mainThreadNotebookSaveParticipant.ts @@ -31,7 +31,7 @@ class ExtHostNotebookDocumentSaveParticipant implements IStoredFileWorkingCopySa let _warningTimeout: Timeout; - const p = new Promise((resolve, reject) => { + const p = new Promise((resolve, reject) => { _warningTimeout = setTimeout( () => reject(new Error(localize('timeout.onWillSave', "Aborted onWillSaveNotebookDocument-event after 1750ms"))), diff --git a/src/vs/workbench/api/browser/mainThreadOutputService.ts b/src/vs/workbench/api/browser/mainThreadOutputService.ts index 434fc88d497..e95214aa087 100644 --- a/src/vs/workbench/api/browser/mainThreadOutputService.ts +++ b/src/vs/workbench/api/browser/mainThreadOutputService.ts @@ -49,7 +49,7 @@ export class MainThreadOutputService extends Disposable implements MainThreadOut this._proxy.$setVisibleChannel(visibleChannel ? visibleChannel.id : null); this._outputStatusItem.value = undefined; }; - this._register(Event.any(this._outputService.onActiveOutputChannel, Event.filter(this._viewsService.onDidChangeViewVisibility, ({ id }) => id === OUTPUT_VIEW_ID))(() => setVisibleChannel())); + this._register(Event.any(this._outputService.onActiveOutputChannel, Event.filter(this._viewsService.onDidChangeViewVisibility, ({ id }) => id === OUTPUT_VIEW_ID))(() => setVisibleChannel())); setVisibleChannel(); } diff --git a/src/vs/workbench/api/browser/mainThreadQuickOpen.ts b/src/vs/workbench/api/browser/mainThreadQuickOpen.ts index ba715692e9d..2d276f83f7f 100644 --- a/src/vs/workbench/api/browser/mainThreadQuickOpen.ts +++ b/src/vs/workbench/api/browser/mainThreadQuickOpen.ts @@ -238,7 +238,7 @@ export class MainThreadQuickOpen implements MainThreadQuickOpenShape { } default: - // eslint-disable-next-line local/code-no-any-casts + // eslint-disable-next-line local/code-no-any-casts, @typescript-eslint/no-explicit-any (input as any)[param] = params[param]; break; } diff --git a/src/vs/workbench/api/browser/mainThreadSCM.ts b/src/vs/workbench/api/browser/mainThreadSCM.ts index de23ab0e428..9c421b05165 100644 --- a/src/vs/workbench/api/browser/mainThreadSCM.ts +++ b/src/vs/workbench/api/browser/mainThreadSCM.ts @@ -115,7 +115,7 @@ class MainThreadSCMResourceGroup implements ISCMResourceGroup { private readonly _uriIdentService: IUriIdentityService ) { } - toJSON(): any { + toJSON() { return { $mid: MarshalledId.ScmResourceGroup, sourceControlHandle: this.sourceControlHandle, @@ -161,7 +161,7 @@ class MainThreadSCMResource implements ISCMResource { return this.proxy.$executeResourceCommand(this.sourceControlHandle, this.groupHandle, this.handle, preserveFocus); } - toJSON(): any { + toJSON() { return { $mid: MarshalledId.ScmResource, sourceControlHandle: this.sourceControlHandle, @@ -534,7 +534,7 @@ class MainThreadSCMProvider implements ISCMProvider { this._historyProvider.get()?.$onDidChangeHistoryItemRefs(historyItemRefs); } - toJSON(): any { + toJSON() { return { $mid: MarshalledId.ScmProvider, handle: this.handle diff --git a/src/vs/workbench/api/browser/mainThreadSaveParticipant.ts b/src/vs/workbench/api/browser/mainThreadSaveParticipant.ts index 9070caa10dd..f42487dffbb 100644 --- a/src/vs/workbench/api/browser/mainThreadSaveParticipant.ts +++ b/src/vs/workbench/api/browser/mainThreadSaveParticipant.ts @@ -30,7 +30,7 @@ class ExtHostSaveParticipant implements ITextFileSaveParticipant { return undefined; } - const p = new Promise((resolve, reject) => { + const p = new Promise((resolve, reject) => { setTimeout( () => reject(new Error(localize('timeout.onWillSave', "Aborted onWillSaveTextDocument-event after 1750ms"))), diff --git a/src/vs/workbench/api/browser/mainThreadSearch.ts b/src/vs/workbench/api/browser/mainThreadSearch.ts index d511fe69bb9..19fe9b8fc63 100644 --- a/src/vs/workbench/api/browser/mainThreadSearch.ts +++ b/src/vs/workbench/api/browser/mainThreadSearch.ts @@ -7,7 +7,7 @@ import { CancellationToken } from '../../../base/common/cancellation.js'; import { DisposableStore, dispose, IDisposable } from '../../../base/common/lifecycle.js'; import { URI, UriComponents } from '../../../base/common/uri.js'; import { IConfigurationService } from '../../../platform/configuration/common/configuration.js'; -import { ITelemetryService } from '../../../platform/telemetry/common/telemetry.js'; +import { ITelemetryData, ITelemetryService } from '../../../platform/telemetry/common/telemetry.js'; import { extHostNamedCustomer, IExtHostContext } from '../../services/extensions/common/extHostCustomers.js'; import { IFileMatch, IFileQuery, IRawFileMatch2, ISearchComplete, ISearchCompleteStats, ISearchProgressItem, ISearchQuery, ISearchResultProvider, ISearchService, ITextQuery, QueryType, SearchProviderType } from '../../services/search/common/search.js'; import { ExtHostContext, ExtHostSearchShape, MainContext, MainThreadSearchShape } from '../common/extHost.protocol.js'; @@ -83,7 +83,7 @@ export class MainThreadSearch implements MainThreadSearchShape { provider.handleKeywordResult(session, data); } - $handleTelemetry(eventName: string, data: any): void { + $handleTelemetry(eventName: string, data: ITelemetryData | undefined): void { this._telemetryService.publicLog(eventName, data); } } @@ -93,7 +93,7 @@ class SearchOperation { private static _idPool = 0; constructor( - readonly progress?: (match: IFileMatch | AISearchKeyword) => any, + readonly progress?: (match: IFileMatch | AISearchKeyword) => unknown, readonly id: number = ++SearchOperation._idPool, readonly matches = new Map(), readonly keywords: AISearchKeyword[] = [] diff --git a/src/vs/workbench/api/browser/mainThreadTask.ts b/src/vs/workbench/api/browser/mainThreadTask.ts index 5a11aa6e92f..e151f5e4c2b 100644 --- a/src/vs/workbench/api/browser/mainThreadTask.ts +++ b/src/vs/workbench/api/browser/mainThreadTask.ts @@ -337,9 +337,9 @@ namespace TaskSourceDTO { } namespace TaskHandleDTO { - export function is(value: any): value is ITaskHandleDTO { - const candidate: ITaskHandleDTO = value; - return candidate && Types.isString(candidate.id) && !!candidate.workspaceFolder; + export function is(value: unknown): value is ITaskHandleDTO { + const candidate = value as ITaskHandleDTO | undefined; + return !!candidate && Types.isString(candidate.id) && !!candidate.workspaceFolder; } } diff --git a/src/vs/workbench/api/browser/mainThreadTelemetry.ts b/src/vs/workbench/api/browser/mainThreadTelemetry.ts index 7f49a22c20f..e4d5e7e5b6c 100644 --- a/src/vs/workbench/api/browser/mainThreadTelemetry.ts +++ b/src/vs/workbench/api/browser/mainThreadTelemetry.ts @@ -8,7 +8,7 @@ import { IConfigurationService } from '../../../platform/configuration/common/co import { IEnvironmentService } from '../../../platform/environment/common/environment.js'; import { IProductService } from '../../../platform/product/common/productService.js'; import { ClassifiedEvent, IGDPRProperty, OmitMetadata, StrictPropertyCheck } from '../../../platform/telemetry/common/gdprTypings.js'; -import { ITelemetryService, TelemetryLevel, TELEMETRY_OLD_SETTING_ID, TELEMETRY_SETTING_ID } from '../../../platform/telemetry/common/telemetry.js'; +import { ITelemetryService, TelemetryLevel, TELEMETRY_OLD_SETTING_ID, TELEMETRY_SETTING_ID, ITelemetryData } from '../../../platform/telemetry/common/telemetry.js'; import { supportsTelemetry } from '../../../platform/telemetry/common/telemetryUtils.js'; import { extHostNamedCustomer, IExtHostContext } from '../../services/extensions/common/extHostCustomers.js'; import { ExtHostContext, ExtHostTelemetryShape, MainContext, MainThreadTelemetryShape } from '../common/extHost.protocol.js'; @@ -48,7 +48,7 @@ export class MainThreadTelemetry extends Disposable implements MainThreadTelemet return this._telemetryService.telemetryLevel; } - $publicLog(eventName: string, data: any = Object.create(null)): void { + $publicLog(eventName: string, data: ITelemetryData = Object.create(null)): void { // __GDPR__COMMON__ "pluginHostTelemetry" : { "classification": "SystemMetaData", "purpose": "FeatureInsight", "isMeasurement": true } data[MainThreadTelemetry._name] = true; this._telemetryService.publicLog(eventName, data);