diff --git a/eslint.config.js b/eslint.config.js index af60b5b9124..92f5f25e2ed 100644 --- a/eslint.config.js +++ b/eslint.config.js @@ -462,9 +462,6 @@ export default tseslint.config( // Workbench 'src/vs/workbench/api/browser/mainThreadChatSessions.ts', 'src/vs/workbench/api/browser/mainThreadTerminalService.ts', - 'src/vs/workbench/api/browser/mainThreadTreeViews.ts', - 'src/vs/workbench/api/browser/statusBarExtensionPoint.ts', - 'src/vs/workbench/api/browser/viewsExtensionPoint.ts', 'src/vs/workbench/api/common/configurationExtensionPoint.ts', 'src/vs/workbench/api/common/extHost.api.impl.ts', 'src/vs/workbench/api/common/extHost.protocol.ts', @@ -488,7 +485,6 @@ export default tseslint.config( 'src/vs/workbench/api/common/extHostMessageService.ts', 'src/vs/workbench/api/common/extHostNotebookDocument.ts', 'src/vs/workbench/api/common/extHostNotebookDocumentSaveParticipant.ts', - 'src/vs/workbench/api/common/extHostNotebookKernels.ts', 'src/vs/workbench/api/common/extHostQuickOpen.ts', 'src/vs/workbench/api/common/extHostRequireInterceptor.ts', 'src/vs/workbench/api/common/extHostRpcService.ts', @@ -580,7 +576,6 @@ export default tseslint.config( 'src/vs/workbench/contrib/codeEditor/electron-browser/selectionClipboard.ts', 'src/vs/workbench/contrib/commands/common/commands.contribution.ts', 'src/vs/workbench/contrib/comments/browser/commentNode.ts', - 'src/vs/workbench/contrib/comments/browser/commentThreadBody.ts', 'src/vs/workbench/contrib/comments/browser/commentsAccessibleView.ts', 'src/vs/workbench/contrib/comments/browser/commentsTreeViewer.ts', 'src/vs/workbench/contrib/comments/browser/commentsView.ts', @@ -677,10 +672,6 @@ export default tseslint.config( 'src/vs/workbench/contrib/notebook/common/notebookEditorModelResolverServiceImpl.ts', 'src/vs/workbench/contrib/notebook/common/notebookRange.ts', 'src/vs/workbench/contrib/notebook/test/browser/testNotebookEditor.ts', - 'src/vs/workbench/contrib/outline/browser/outlinePane.ts', - 'src/vs/workbench/contrib/outline/browser/outlineViewState.ts', - 'src/vs/workbench/contrib/output/browser/outputView.ts', - 'src/vs/workbench/contrib/output/common/outputChannelModel.ts', 'src/vs/workbench/contrib/performance/electron-browser/startupProfiler.ts', 'src/vs/workbench/contrib/preferences/browser/keybindingsEditor.ts', 'src/vs/workbench/contrib/preferences/browser/preferences.contribution.ts', @@ -749,7 +740,6 @@ export default tseslint.config( 'src/vs/workbench/contrib/testing/common/storedValue.ts', 'src/vs/workbench/contrib/testing/common/testItemCollection.ts', 'src/vs/workbench/contrib/testing/test/browser/testObjectTree.ts', - 'src/vs/workbench/contrib/themes/browser/themes.contribution.ts', 'src/vs/workbench/contrib/timeline/browser/timelinePane.ts', 'src/vs/workbench/contrib/typeHierarchy/browser/typeHierarchy.contribution.ts', 'src/vs/workbench/contrib/typeHierarchy/common/typeHierarchy.ts', @@ -768,7 +758,6 @@ export default tseslint.config( 'src/vs/workbench/contrib/welcomeViews/common/newFile.contribution.ts', 'src/vs/workbench/contrib/welcomeWalkthrough/browser/walkThroughPart.ts', 'src/vs/workbench/services/accounts/common/defaultAccount.ts', - 'src/vs/workbench/services/actions/common/menusExtensionPoint.ts', 'src/vs/workbench/services/assignment/common/assignmentFilters.ts', 'src/vs/workbench/services/authentication/common/authentication.ts', 'src/vs/workbench/services/authentication/test/browser/authenticationQueryServiceMocks.ts', @@ -782,7 +771,6 @@ export default tseslint.config( 'src/vs/workbench/services/configurationResolver/common/configurationResolver.ts', 'src/vs/workbench/services/configurationResolver/common/configurationResolverExpression.ts', 'src/vs/workbench/services/configurationResolver/common/variableResolver.ts', - 'src/vs/workbench/services/driver/browser/driver.ts', 'src/vs/workbench/services/extensionManagement/browser/builtinExtensionsScannerService.ts', 'src/vs/workbench/services/extensionManagement/browser/webExtensionsScannerService.ts', 'src/vs/workbench/services/extensions/common/extHostCustomers.ts', @@ -804,13 +792,11 @@ export default tseslint.config( 'src/vs/workbench/services/keybinding/common/keymapInfo.ts', 'src/vs/workbench/services/language/common/languageService.ts', 'src/vs/workbench/services/languageDetection/browser/languageDetectionWorker.protocol.ts', - 'src/vs/workbench/services/languageStatus/common/languageStatusService.ts', 'src/vs/workbench/services/outline/browser/outline.ts', 'src/vs/workbench/services/outline/browser/outlineService.ts', 'src/vs/workbench/services/preferences/common/preferences.ts', 'src/vs/workbench/services/preferences/common/preferencesModels.ts', 'src/vs/workbench/services/preferences/common/preferencesValidation.ts', - 'src/vs/workbench/services/remote/browser/remoteAgentService.ts', 'src/vs/workbench/services/remote/common/tunnelModel.ts', 'src/vs/workbench/services/search/common/localFileSearchWorkerTypes.ts', 'src/vs/workbench/services/search/common/replace.ts', @@ -822,7 +808,6 @@ export default tseslint.config( 'src/vs/workbench/services/search/node/rawSearchService.ts', 'src/vs/workbench/services/search/node/ripgrepTextSearchEngine.ts', 'src/vs/workbench/services/search/worker/localFileSearch.ts', - 'src/vs/workbench/services/telemetry/browser/workbenchCommonProperties.ts', 'src/vs/workbench/services/terminal/common/embedderTerminalService.ts', 'src/vs/workbench/services/textMate/browser/backgroundTokenization/worker/textMateTokenizationWorker.worker.ts', 'src/vs/workbench/services/textMate/browser/backgroundTokenization/worker/textMateWorkerHost.ts', @@ -847,13 +832,10 @@ export default tseslint.config( 'src/vs/workbench/workbench.web.main.internal.ts', 'src/vs/workbench/workbench.web.main.ts', // Server - 'src/vs/server/node/extensionHostConnection.ts', 'src/vs/server/node/remoteAgentEnvironmentImpl.ts', 'src/vs/server/node/remoteExtensionHostAgentServer.ts', 'src/vs/server/node/remoteExtensionsScanner.ts', 'src/vs/server/node/remoteTerminalChannel.ts', - 'src/vs/server/node/server.cli.ts', - 'src/vs/server/node/serverConnectionToken.ts', // Tests '**/*.test.ts', '**/*.integrationTest.ts' diff --git a/src/vs/server/node/extensionHostConnection.ts b/src/vs/server/node/extensionHostConnection.ts index 5c2c38b010b..05b7d038d26 100644 --- a/src/vs/server/node/extensionHostConnection.ts +++ b/src/vs/server/node/extensionHostConnection.ts @@ -237,7 +237,7 @@ export class ExtensionHostConnection extends Disposable { public async start(startParams: IRemoteExtensionHostStartParams): Promise { try { let execArgv: string[] = process.execArgv ? process.execArgv.filter(a => !/^--inspect(-brk)?=/.test(a)) : []; - // eslint-disable-next-line local/code-no-any-casts + // eslint-disable-next-line local/code-no-any-casts, @typescript-eslint/no-explicit-any if (startParams.port && !(process).pkg) { execArgv = [ `--inspect${startParams.break ? '-brk' : ''}=${startParams.port}`, diff --git a/src/vs/server/node/server.cli.ts b/src/vs/server/node/server.cli.ts index 0535ddd998f..69b17e13a86 100644 --- a/src/vs/server/node/server.cli.ts +++ b/src/vs/server/node/server.cli.ts @@ -466,7 +466,7 @@ function asExtensionIdOrVSIX(inputs: string[] | undefined) { return inputs?.map(input => /\.vsix$/i.test(input) ? pathToURI(input).href : input); } -function fatal(message: string, err: any): void { +function fatal(message: string, err: unknown): void { console.error('Unable to connect to VS Code server: ' + message); console.error(err); process.exit(1); diff --git a/src/vs/server/node/serverConnectionToken.ts b/src/vs/server/node/serverConnectionToken.ts index b2036788008..11089eea3c3 100644 --- a/src/vs/server/node/serverConnectionToken.ts +++ b/src/vs/server/node/serverConnectionToken.ts @@ -24,7 +24,7 @@ export const enum ServerConnectionTokenType { export class NoneServerConnectionToken { public readonly type = ServerConnectionTokenType.None; - public validate(connectionToken: any): boolean { + public validate(connectionToken: unknown): boolean { return true; } } @@ -35,7 +35,7 @@ export class MandatoryServerConnectionToken { constructor(public readonly value: string) { } - public validate(connectionToken: any): boolean { + public validate(connectionToken: unknown): boolean { return (connectionToken === this.value); } } diff --git a/src/vs/workbench/api/browser/mainThreadTreeViews.ts b/src/vs/workbench/api/browser/mainThreadTreeViews.ts index 1b6172fa9a7..4a4a6526b90 100644 --- a/src/vs/workbench/api/browser/mainThreadTreeViews.ts +++ b/src/vs/workbench/api/browser/mainThreadTreeViews.ts @@ -375,7 +375,7 @@ class TreeViewDataProvider implements ITreeViewDataProvider { const properties = distinct([...Object.keys(current instanceof ResolvableTreeItem ? current.asTreeItem() : current), ...Object.keys(treeItem)]); for (const property of properties) { - (current as { [key: string]: any })[property] = (treeItem as { [key: string]: any })[property]; + (current as unknown as { [key: string]: unknown })[property] = (treeItem as unknown as { [key: string]: unknown })[property]; } if (current instanceof ResolvableTreeItem) { current.resetResolve(); diff --git a/src/vs/workbench/api/browser/statusBarExtensionPoint.ts b/src/vs/workbench/api/browser/statusBarExtensionPoint.ts index 2e23155cc73..4da1f68eeb1 100644 --- a/src/vs/workbench/api/browser/statusBarExtensionPoint.ts +++ b/src/vs/workbench/api/browser/statusBarExtensionPoint.ts @@ -172,7 +172,7 @@ registerSingleton(IExtensionStatusBarItemService, ExtensionStatusBarItemService, type IUserFriendlyStatusItemEntry = TypeFromJsonSchema; -function isUserFriendlyStatusItemEntry(candidate: any): candidate is IUserFriendlyStatusItemEntry { +function isUserFriendlyStatusItemEntry(candidate: unknown): candidate is IUserFriendlyStatusItemEntry { const obj = candidate as IUserFriendlyStatusItemEntry; return (typeof obj.id === 'string' && obj.id.length > 0) && typeof obj.name === 'string' diff --git a/src/vs/workbench/api/browser/viewsExtensionPoint.ts b/src/vs/workbench/api/browser/viewsExtensionPoint.ts index 8c6534f4865..c0ff40a3313 100644 --- a/src/vs/workbench/api/browser/viewsExtensionPoint.ts +++ b/src/vs/workbench/api/browser/viewsExtensionPoint.ts @@ -542,7 +542,7 @@ class ViewsExtensionHandler implements IWorkbenchContribution { extensionId: extension.description.identifier, originalContainerId: key, group: item.group, - // eslint-disable-next-line local/code-no-any-casts + // eslint-disable-next-line local/code-no-any-casts, @typescript-eslint/no-explicit-any remoteAuthority: item.remoteName || (item).remoteAuthority, // TODO@roblou - delete after remote extensions are updated virtualWorkspace: item.virtualWorkspace, hideByDefault: initialVisibility === InitialVisibility.Hidden, @@ -594,9 +594,9 @@ class ViewsExtensionHandler implements IWorkbenchContribution { } } - private convertInitialVisibility(value: any): InitialVisibility | undefined { - if (Object.values(InitialVisibility).includes(value)) { - return value; + private convertInitialVisibility(value: string | undefined): InitialVisibility | undefined { + if (Object.values(InitialVisibility).includes(value as InitialVisibility)) { + return value as InitialVisibility; } return undefined; } diff --git a/src/vs/workbench/api/common/extHostNotebookKernels.ts b/src/vs/workbench/api/common/extHostNotebookKernels.ts index 6e11a2c8d6b..52eaf027866 100644 --- a/src/vs/workbench/api/common/extHostNotebookKernels.ts +++ b/src/vs/workbench/api/common/extHostNotebookKernels.ts @@ -497,7 +497,7 @@ export class ExtHostNotebookKernels implements ExtHostNotebookKernelsShape { } } - $acceptKernelMessageFromRenderer(handle: number, editorId: string, message: any): void { + $acceptKernelMessageFromRenderer(handle: number, editorId: string, message: unknown): void { const obj = this._kernelData.get(handle); if (!obj) { // extension can dispose kernels in the meantime diff --git a/src/vs/workbench/contrib/comments/browser/commentThreadBody.ts b/src/vs/workbench/contrib/comments/browser/commentThreadBody.ts index 9fd66298b75..c6ff74b5541 100644 --- a/src/vs/workbench/contrib/comments/browser/commentThreadBody.ts +++ b/src/vs/workbench/contrib/comments/browser/commentThreadBody.ts @@ -23,7 +23,7 @@ import { LayoutableEditor } from './simpleCommentEditor.js'; export class CommentThreadBody extends Disposable { private _commentsElement!: HTMLElement; private _commentElements: CommentNode[] = []; - private _resizeObserver: any; + private _resizeObserver: MutationObserver | null = null; private _focusedComment: number | undefined = undefined; private _onDidResize = new Emitter(); onDidResize = this._onDidResize.event; diff --git a/src/vs/workbench/contrib/outline/browser/outlinePane.ts b/src/vs/workbench/contrib/outline/browser/outlinePane.ts index 84bed3cda75..f2d6664fd4a 100644 --- a/src/vs/workbench/contrib/outline/browser/outlinePane.ts +++ b/src/vs/workbench/contrib/outline/browser/outlinePane.ts @@ -71,7 +71,7 @@ export class OutlinePane extends ViewPane implements IOutlinePane { private _message!: HTMLDivElement; private _progressBar!: ProgressBar; private _treeContainer!: HTMLElement; - private _tree?: WorkbenchDataTree | undefined, any, FuzzyScore>; + private _tree?: WorkbenchDataTree | undefined, unknown, FuzzyScore>; private _treeDimensions?: dom.Dimension; private _treeStates = new LRUCache(10); @@ -253,7 +253,7 @@ export class OutlinePane extends ViewPane implements IOutlinePane { const sorter = new OutlineTreeSorter(newOutline.config.comparator, this._outlineViewState.sortBy); const tree = this._instantiationService.createInstance( - WorkbenchDataTree | undefined, any, FuzzyScore>, + WorkbenchDataTree | undefined, unknown, FuzzyScore>, 'OutlinePane', this._treeContainer, newOutline.config.delegate, diff --git a/src/vs/workbench/contrib/outline/browser/outlineViewState.ts b/src/vs/workbench/contrib/outline/browser/outlineViewState.ts index 2adc50df7c6..7d779db1522 100644 --- a/src/vs/workbench/contrib/outline/browser/outlineViewState.ts +++ b/src/vs/workbench/contrib/outline/browser/outlineViewState.ts @@ -66,7 +66,7 @@ export class OutlineViewState implements IOutlineViewState { if (!raw) { return; } - let data: any; + let data; try { data = JSON.parse(raw); } catch (e) { diff --git a/src/vs/workbench/contrib/output/browser/outputView.ts b/src/vs/workbench/contrib/output/browser/outputView.ts index e0d64c4acd2..9cb7c8962ee 100644 --- a/src/vs/workbench/contrib/output/browser/outputView.ts +++ b/src/vs/workbench/contrib/output/browser/outputView.ts @@ -274,12 +274,12 @@ export class OutputEditor extends AbstractTextResourceEditor { ambiguousCharacters: false, }; - const outputConfig = this.configurationService.getValue('[Log]'); + const outputConfig = this.configurationService.getValue<{ 'editor.minimap.enabled'?: boolean; 'editor.wordWrap'?: 'off' | 'on' | 'wordWrapColumn' | 'bounded' }>('[Log]'); if (outputConfig) { if (outputConfig['editor.minimap.enabled']) { options.minimap = { enabled: true }; } - if ('editor.wordWrap' in outputConfig) { + if (outputConfig['editor.wordWrap']) { options.wordWrap = outputConfig['editor.wordWrap']; } } diff --git a/src/vs/workbench/contrib/output/common/outputChannelModel.ts b/src/vs/workbench/contrib/output/common/outputChannelModel.ts index d55e42ba771..34940ddcb5a 100644 --- a/src/vs/workbench/contrib/output/common/outputChannelModel.ts +++ b/src/vs/workbench/contrib/output/common/outputChannelModel.ts @@ -683,7 +683,7 @@ export class FileOutputChannelModel extends AbstractFileOutputChannelModel imple } override update(mode: OutputChannelUpdateMode, till: number | undefined, immediate: boolean): void { - const loadModelPromise: Promise = this.loadModelPromise ? this.loadModelPromise : Promise.resolve(); + const loadModelPromise = this.loadModelPromise ? this.loadModelPromise : Promise.resolve(); loadModelPromise.then(() => { if (mode === OutputChannelUpdateMode.Clear || mode === OutputChannelUpdateMode.Replace) { if (isNumber(till)) { @@ -729,7 +729,7 @@ export class MultiFileOutputChannelModel extends AbstractFileOutputChannelModel } override clear(): void { - const loadModelPromise: Promise = this.loadModelPromise ? this.loadModelPromise : Promise.resolve(); + const loadModelPromise = this.loadModelPromise ? this.loadModelPromise : Promise.resolve(); loadModelPromise.then(() => { this.multifileOutput.resetToEnd(); this.doUpdate(OutputChannelUpdateMode.Clear, true); diff --git a/src/vs/workbench/contrib/themes/browser/themes.contribution.ts b/src/vs/workbench/contrib/themes/browser/themes.contribution.ts index 8d1758abdba..562f4d1504c 100644 --- a/src/vs/workbench/contrib/themes/browser/themes.contribution.ts +++ b/src/vs/workbench/contrib/themes/browser/themes.contribution.ts @@ -293,7 +293,7 @@ interface InstalledThemesPickerOptions { class InstalledThemesPicker { constructor( private readonly options: InstalledThemesPickerOptions, - private readonly setTheme: (theme: IWorkbenchTheme | undefined, settingsTarget: ThemeSettingTarget) => Promise, + private readonly setTheme: (theme: IWorkbenchTheme | undefined, settingsTarget: ThemeSettingTarget) => Promise, private readonly getMarketplaceColorThemes: (publisher: string, name: string, version: string) => Promise, @IQuickInputService private readonly quickInputService: IQuickInputService, @IExtensionGalleryService private readonly extensionGalleryService: IExtensionGalleryService, @@ -611,7 +611,7 @@ interface ThemeItem extends IQuickPickItem { } function isItem(i: QuickPickInput): i is ThemeItem { - // eslint-disable-next-line local/code-no-any-casts + // eslint-disable-next-line local/code-no-any-casts, @typescript-eslint/no-explicit-any return (i)['type'] !== 'separator'; } diff --git a/src/vs/workbench/services/actions/common/menusExtensionPoint.ts b/src/vs/workbench/services/actions/common/menusExtensionPoint.ts index 812f5ef7abe..06f909eac18 100644 --- a/src/vs/workbench/services/actions/common/menusExtensionPoint.ts +++ b/src/vs/workbench/services/actions/common/menusExtensionPoint.ts @@ -824,7 +824,7 @@ export const commandsExtensionPoint = ExtensionsRegistry.registerExtensionPoint< commandsExtensionPoint.setHandler(extensions => { - function handleCommand(userFriendlyCommand: schema.IUserFriendlyCommand, extension: IExtensionPointUser) { + function handleCommand(userFriendlyCommand: schema.IUserFriendlyCommand, extension: IExtensionPointUser) { if (!schema.isValidCommand(userFriendlyCommand, extension.collector)) { return; diff --git a/src/vs/workbench/services/driver/browser/driver.ts b/src/vs/workbench/services/driver/browser/driver.ts index 779dd9b0997..e1c8c1b0ace 100644 --- a/src/vs/workbench/services/driver/browser/driver.ts +++ b/src/vs/workbench/services/driver/browser/driver.ts @@ -190,7 +190,7 @@ export class BrowserWindowDriver implements IWindowDriver { throw new Error(`Terminal not found: ${selector}`); } - // eslint-disable-next-line local/code-no-any-casts + // eslint-disable-next-line local/code-no-any-casts, @typescript-eslint/no-explicit-any const xterm = (element as any).xterm; if (!xterm) { @@ -212,7 +212,7 @@ export class BrowserWindowDriver implements IWindowDriver { throw new Error(`Element not found: ${selector}`); } - // eslint-disable-next-line local/code-no-any-casts + // eslint-disable-next-line local/code-no-any-casts, @typescript-eslint/no-explicit-any const xterm = (element as any).xterm as (XtermTerminal | undefined); if (!xterm) { diff --git a/src/vs/workbench/services/languageStatus/common/languageStatusService.ts b/src/vs/workbench/services/languageStatus/common/languageStatusService.ts index 94edbbdfe39..458e0221dd7 100644 --- a/src/vs/workbench/services/languageStatus/common/languageStatusService.ts +++ b/src/vs/workbench/services/languageStatus/common/languageStatusService.ts @@ -53,7 +53,7 @@ class LanguageStatusServiceImpl implements ILanguageStatusService { private readonly _provider = new LanguageFeatureRegistry(); - readonly onDidChange: Event = this._provider.onDidChange; + readonly onDidChange = Event.map(this._provider.onDidChange, () => undefined); addStatus(status: ILanguageStatus): IDisposable { return this._provider.register(status.selector, status); diff --git a/src/vs/workbench/services/remote/browser/remoteAgentService.ts b/src/vs/workbench/services/remote/browser/remoteAgentService.ts index 8bf44ae3d3e..b29f437eaaf 100644 --- a/src/vs/workbench/services/remote/browser/remoteAgentService.ts +++ b/src/vs/workbench/services/remote/browser/remoteAgentService.ts @@ -51,7 +51,7 @@ class RemoteConnectionFailureNotificationContribution implements IWorkbenchContr }); } - private async _presentConnectionError(err: any): Promise { + private async _presentConnectionError(err: Error): Promise { await this._dialogService.prompt({ type: Severity.Error, message: nls.localize('connectionError', "An unexpected error occurred that requires a reload of this page."), diff --git a/src/vs/workbench/services/telemetry/browser/workbenchCommonProperties.ts b/src/vs/workbench/services/telemetry/browser/workbenchCommonProperties.ts index 5199be0dc2f..1ab972c1ea5 100644 --- a/src/vs/workbench/services/telemetry/browser/workbenchCommonProperties.ts +++ b/src/vs/workbench/services/telemetry/browser/workbenchCommonProperties.ts @@ -28,7 +28,7 @@ export function resolveWorkbenchCommonProperties( remoteAuthority?: string, productIdentifier?: string, removeMachineId?: boolean, - resolveAdditionalProperties?: () => { [key: string]: any } + resolveAdditionalProperties?: () => { [key: string]: unknown } ): ICommonProperties { const result: ICommonProperties = Object.create(null); const firstSessionDate = storageService.get(firstSessionDateStorageKey, StorageScope.APPLICATION)!;