diff --git a/src/vs/base/browser/ui/selectBox/selectBoxCustom.ts b/src/vs/base/browser/ui/selectBox/selectBoxCustom.ts index ed3635b682e..079989e3dde 100644 --- a/src/vs/base/browser/ui/selectBox/selectBoxCustom.ts +++ b/src/vs/base/browser/ui/selectBox/selectBoxCustom.ts @@ -353,7 +353,7 @@ export class SelectBoxList implements ISelectBoxDelegate, IDelegate this.selectElement, - render: (container: HTMLElement) => { return this.renderSelectDropDown(container); }, + render: (container: HTMLElement) => this.renderSelectDropDown(container), layout: () => this.layoutSelectDropDown(), onHide: () => { dom.toggleClass(this.selectDropDownContainer, 'visible', false); @@ -375,7 +375,7 @@ export class SelectBoxList implements ISelectBoxDelegate, IDelegate 0 ? scores[leftIndex] : 0; - const diagScore = queryIndex > 0 && targetIndex > 0 ? scores[diagIndex] : 0; + const leftScore: number = targetIndex > 0 ? scores[leftIndex] : 0; + const diagScore: number = queryIndex > 0 && targetIndex > 0 ? scores[diagIndex] : 0; - const matchesSequenceLength = queryIndex > 0 && targetIndex > 0 ? matches[diagIndex] : 0; + const matchesSequenceLength: number = queryIndex > 0 && targetIndex > 0 ? matches[diagIndex] : 0; // If we are not matching on the first query character any more, we only produce a // score if we had a score previously for the last query index (by looking at the diagScore). diff --git a/src/vs/workbench/api/electron-browser/mainThreadWorkspace.ts b/src/vs/workbench/api/electron-browser/mainThreadWorkspace.ts index 721a2df3e40..275298bcad4 100644 --- a/src/vs/workbench/api/electron-browser/mainThreadWorkspace.ts +++ b/src/vs/workbench/api/electron-browser/mainThreadWorkspace.ts @@ -59,7 +59,7 @@ export class MainThreadWorkspace implements MainThreadWorkspaceShape { return this._workspaceEditingService.updateFolders(index, deleteCount, workspaceFoldersToAdd, true); } - private getStatusMessage(extensionName, addCount: number, removeCount: number): string { + private getStatusMessage(extensionName: string, addCount: number, removeCount: number): string { let message: string; const wantsToAdd = addCount > 0; diff --git a/src/vs/workbench/browser/parts/editor/editorCommands.ts b/src/vs/workbench/browser/parts/editor/editorCommands.ts index 552c6950814..a561a657600 100644 --- a/src/vs/workbench/browser/parts/editor/editorCommands.ts +++ b/src/vs/workbench/browser/parts/editor/editorCommands.ts @@ -524,7 +524,7 @@ export function getMultiSelectedEditorContexts(editorContext: IEditorCommandsCon if (list instanceof List && list.isDOMFocused()) { const elementToContext = (element: IEditorIdentifier | EditorGroup) => element instanceof EditorGroup ? { groupId: element.id, editorIndex: undefined } : { groupId: element.group.id, editorIndex: element.group.indexOf(element.editor) }; - const onlyEditorGroupAndEditor = (e) => e instanceof EditorGroup || ('editor' in e && 'group' in e); + const onlyEditorGroupAndEditor = (e: IEditorIdentifier | EditorGroup) => e instanceof EditorGroup || ('editor' in e && 'group' in e); const focusedElements: (IEditorIdentifier | EditorGroup)[] = list.getFocusedElements().filter(onlyEditorGroupAndEditor); // need to take into account when editor context is { group: group } diff --git a/src/vs/workbench/browser/parts/editor/resourceViewer.ts b/src/vs/workbench/browser/parts/editor/resourceViewer.ts index 6ccfa4c8786..db288ed5e07 100644 --- a/src/vs/workbench/browser/parts/editor/resourceViewer.ts +++ b/src/vs/workbench/browser/parts/editor/resourceViewer.ts @@ -123,7 +123,7 @@ class BinarySize { } export interface ResourceViewerContext { - layout(dimension: Dimension); + layout(dimension: Dimension): void; } /** diff --git a/src/vs/workbench/browser/parts/editor/tabsTitleControl.ts b/src/vs/workbench/browser/parts/editor/tabsTitleControl.ts index 41dadd0e7fd..7ffb88ee019 100644 --- a/src/vs/workbench/browser/parts/editor/tabsTitleControl.ts +++ b/src/vs/workbench/browser/parts/editor/tabsTitleControl.ts @@ -618,7 +618,7 @@ export class TabsTitleControl extends TitleControl { private hookTabListeners(tab: HTMLElement, index: number): IDisposable { const disposables: IDisposable[] = []; - const handleClickOrTouch = (e: MouseEvent | GestureEvent) => { + const handleClickOrTouch = (e: MouseEvent | GestureEvent): void => { tab.blur(); if (e instanceof MouseEvent && e.button !== 0) { diff --git a/src/vs/workbench/parts/extensions/electron-browser/extensionTipsService.ts b/src/vs/workbench/parts/extensions/electron-browser/extensionTipsService.ts index 546ad7b3db1..5be419ee069 100644 --- a/src/vs/workbench/parts/extensions/electron-browser/extensionTipsService.ts +++ b/src/vs/workbench/parts/extensions/electron-browser/extensionTipsService.ts @@ -277,7 +277,7 @@ export class ExtensionTipsService extends Disposable implements IExtensionTipsSe } }); - const allRecommendations = []; + const allRecommendations: string[] = []; forEach(this._availableRecommendations, ({ value: ids }) => { allRecommendations.push(...ids); }); @@ -613,7 +613,7 @@ export class ExtensionTipsService extends Disposable implements IExtensionTipsSe const homeDir = os.homedir(); let foundExecutables: Set = new Set(); - let findExecutable = (exeName, path) => { + let findExecutable = (exeName: string, path: string) => { return pfs.fileExists(path).then(exists => { if (exists && !foundExecutables.has(exeName)) { foundExecutables.add(exeName); diff --git a/src/vs/workbench/parts/files/electron-browser/views/explorerViewer.ts b/src/vs/workbench/parts/files/electron-browser/views/explorerViewer.ts index 6687d3f02a5..bc2032ac9de 100644 --- a/src/vs/workbench/parts/files/electron-browser/views/explorerViewer.ts +++ b/src/vs/workbench/parts/files/electron-browser/views/explorerViewer.ts @@ -459,7 +459,7 @@ export class FileController extends WorkbenchTreeController implements IDisposab this.contextMenuService.showContextMenu({ getAnchor: () => anchor, getActions: () => { - const actions = []; + const actions: IAction[] = []; fillInActions(this.contributedContextMenu, { arg: stat instanceof FileStat ? stat.resource : {}, shouldForwardArgs: true }, actions, this.contextMenuService); return TPromise.as(actions); }, diff --git a/src/vs/workbench/parts/files/electron-browser/views/openEditorsView.ts b/src/vs/workbench/parts/files/electron-browser/views/openEditorsView.ts index cbe5ed138f3..93fd707fffc 100644 --- a/src/vs/workbench/parts/files/electron-browser/views/openEditorsView.ts +++ b/src/vs/workbench/parts/files/electron-browser/views/openEditorsView.ts @@ -149,7 +149,7 @@ export class OpenEditorsView extends ViewsViewletPanel { new EditorGroupRenderer(this.keybindingService, this.instantiationService, this.editorGroupService), new OpenEditorRenderer(getSelectedElements, this.instantiationService, this.keybindingService, this.configurationService, this.editorGroupService) ], { - identityProvider: element => element instanceof OpenEditor ? element.getId() : element.id.toString(), + identityProvider: (element: OpenEditor | EditorGroup) => element instanceof OpenEditor ? element.getId() : element.id.toString(), selectOnMouseDown: false /* disabled to better support DND */ }) as WorkbenchList; @@ -309,7 +309,7 @@ export class OpenEditorsView extends ViewsViewletPanel { this.contextMenuService.showContextMenu({ getAnchor: () => e.anchor, getActions: () => { - const actions = []; + const actions: IAction[] = []; fillInActions(this.contributedContextMenu, { shouldForwardArgs: true, arg: element instanceof OpenEditor ? element.editor.getResource() : {} }, actions, this.contextMenuService); return TPromise.as(actions); }, diff --git a/src/vs/workbench/parts/markers/common/messages.ts b/src/vs/workbench/parts/markers/common/messages.ts index bd2ce9fc63b..1440aa6eed0 100644 --- a/src/vs/workbench/parts/markers/common/messages.ts +++ b/src/vs/workbench/parts/markers/common/messages.ts @@ -40,7 +40,7 @@ export default class Messages { public static readonly MARKERS_PANEL_AT_LINE_COL_NUMBER = (ln: number, col: number): string => { return nls.localize('markers.panel.at.ln.col.number', "({0}, {1})", '' + ln, '' + col); }; - public static readonly MARKERS_TREE_ARIA_LABEL_RESOURCE = (fileName, noOfProblems): string => { return nls.localize('problems.tree.aria.label.resource', "{0} with {1} problems", fileName, noOfProblems); }; + public static readonly MARKERS_TREE_ARIA_LABEL_RESOURCE = (fileName: string, noOfProblems: number): string => { return nls.localize('problems.tree.aria.label.resource', "{0} with {1} problems", fileName, noOfProblems); }; public static readonly MARKERS_TREE_ARIA_LABEL_MARKER = (marker: IMarker): string => { switch (marker.severity) { case Severity.Error: diff --git a/src/vs/workbench/parts/output/electron-browser/outputServices.ts b/src/vs/workbench/parts/output/electron-browser/outputServices.ts index ed19a1dd716..7bf6bdd8fcb 100644 --- a/src/vs/workbench/parts/output/electron-browser/outputServices.ts +++ b/src/vs/workbench/parts/output/electron-browser/outputServices.ts @@ -44,7 +44,7 @@ import { ILifecycleService } from 'vs/platform/lifecycle/common/lifecycle'; const OUTPUT_ACTIVE_CHANNEL_KEY = 'output.activechannel'; let watchingOutputDir = false; -let callbacks = []; +let callbacks: ((eventType: string, fileName: string) => void)[] = []; function watchOutputDirectory(outputDir: string, logService: ILogService, onChange: (eventType: string, fileName: string) => void): IDisposable { callbacks.push(onChange); if (!watchingOutputDir) { @@ -530,7 +530,7 @@ export class OutputService extends Disposable implements IOutputService, ITextMo } private createChannel(id: string): OutputChannel { - const channelDisposables = []; + const channelDisposables: IDisposable[] = []; const channel = this.instantiateChannel(id); channel.onDidAppendedContent(() => { if (!channel.scrollLock) { @@ -631,7 +631,7 @@ export class LogContentProvider { const id = resource.path; let channel = this.channels.get(id); if (!channel) { - const channelDisposables = []; + const channelDisposables: IDisposable[] = []; channel = this.instantiationService.createInstance(FileOutputChannel, { id, label: '', file: resource.with({ scheme: Schemas.file }) }, resource); channel.onDispose(() => dispose(channelDisposables), channelDisposables); this.channels.set(id, channel); diff --git a/src/vs/workbench/parts/scm/electron-browser/scmViewlet.ts b/src/vs/workbench/parts/scm/electron-browser/scmViewlet.ts index 60655938961..fa5c13e4aba 100644 --- a/src/vs/workbench/parts/scm/electron-browser/scmViewlet.ts +++ b/src/vs/workbench/parts/scm/electron-browser/scmViewlet.ts @@ -167,7 +167,7 @@ class ProviderRenderer implements IRenderer dispose(actions); disposables.push({ dispose: disposeActions }); diff --git a/src/vs/workbench/parts/search/browser/searchViewlet.ts b/src/vs/workbench/parts/search/browser/searchViewlet.ts index 06f2c55d784..2bdf4b6c125 100644 --- a/src/vs/workbench/parts/search/browser/searchViewlet.ts +++ b/src/vs/workbench/parts/search/browser/searchViewlet.ts @@ -494,7 +494,7 @@ export class SearchViewlet extends Viewlet { let renderer = this.instantiationService.createInstance(SearchRenderer, this.getActionRunner(), this); this.toUnbind.push(renderer); - let dnd = this.instantiationService.createInstance(SimpleFileResourceDragAndDrop, obj => obj instanceof FileMatch ? obj.resource() : void 0); + let dnd = this.instantiationService.createInstance(SimpleFileResourceDragAndDrop, (obj: any) => obj instanceof FileMatch ? obj.resource() : void 0); this.tree = this.instantiationService.createInstance(WorkbenchTree, div.getHTMLElement(), { dataSource: dataSource, @@ -919,7 +919,7 @@ export class SearchViewlet extends Viewlet { } public searchInFolders(resources: URI[], pathToRelative: (from: string, to: string) => string): void { - const folderPaths = []; + const folderPaths: string[] = []; const workspace = this.contextService.getWorkspace(); if (resources) { diff --git a/src/vs/workbench/parts/terminal/electron-browser/terminalLinkHandler.ts b/src/vs/workbench/parts/terminal/electron-browser/terminalLinkHandler.ts index 75905551cd3..bb1bbe0019f 100644 --- a/src/vs/workbench/parts/terminal/electron-browser/terminalLinkHandler.ts +++ b/src/vs/workbench/parts/terminal/electron-browser/terminalLinkHandler.ts @@ -91,7 +91,7 @@ export class TerminalLinkHandler { return this._xterm.registerLinkMatcher(regex, this._wrapLinkHandler(handler), { matchIndex, validationCallback: (uri: string, callback: (isValid: boolean) => void) => validationCallback(uri, callback), - tooltipCallback: (e: MouseEvent, u) => this._widgetManager.showMessage(e.offsetX, e.offsetY, this._getLinkHoverString()), + tooltipCallback: (e: MouseEvent) => this._widgetManager.showMessage(e.offsetX, e.offsetY, this._getLinkHoverString()), leaveCallback: () => this._widgetManager.closeMessage(), willLinkActivate: (e: MouseEvent) => this._isLinkActivationModifierDown(e), priority: CUSTOM_LINK_PRIORITY @@ -105,7 +105,7 @@ export class TerminalLinkHandler { return this._xterm.registerLinkMatcher(this._localLinkRegex, wrappedHandler, { validationCallback: (uri: string, callback: (isValid: boolean) => void) => this._validateLocalLink(uri, callback), - tooltipCallback: (e: MouseEvent, u) => this._widgetManager.showMessage(e.offsetX, e.offsetY, this._getLinkHoverString()), + tooltipCallback: (e: MouseEvent) => this._widgetManager.showMessage(e.offsetX, e.offsetY, this._getLinkHoverString()), leaveCallback: () => this._widgetManager.closeMessage(), willLinkActivate: (e: MouseEvent) => this._isLinkActivationModifierDown(e), priority: LOCAL_LINK_PRIORITY diff --git a/src/vs/workbench/parts/terminal/node/terminalProcess.ts b/src/vs/workbench/parts/terminal/node/terminalProcess.ts index b46132c8d78..bf9d8890bb8 100644 --- a/src/vs/workbench/parts/terminal/node/terminalProcess.ts +++ b/src/vs/workbench/parts/terminal/node/terminalProcess.ts @@ -45,8 +45,8 @@ if (cols && rows) { var ptyProcess = pty.fork(shell, args, options); -var closeTimeout; -var exitCode; +var closeTimeout: number; +var exitCode: number; // Allow any trailing data events to be sent before the exit event is sent. // See https://github.com/Tyriar/node-pty/issues/72 @@ -129,7 +129,7 @@ function cleanEnv() { } } -function setupPlanB(parentPid) { +function setupPlanB(parentPid: number) { setInterval(function () { try { process.kill(parentPid, 0); // throws an exception if the main process doesn't exist anymore. diff --git a/src/vs/workbench/services/configuration/node/configurationService.ts b/src/vs/workbench/services/configuration/node/configurationService.ts index f7156076414..920a1980fd2 100644 --- a/src/vs/workbench/services/configuration/node/configurationService.ts +++ b/src/vs/workbench/services/configuration/node/configurationService.ts @@ -15,7 +15,7 @@ import { Disposable } from 'vs/base/common/lifecycle'; import { Queue } from 'vs/base/common/async'; import { stat, writeFile } from 'vs/base/node/pfs'; import { IJSONContributionRegistry, Extensions as JSONExtensions } from 'vs/platform/jsonschemas/common/jsonContributionRegistry'; -import { IWorkspaceContextService, Workspace, WorkbenchState, IWorkspaceFolder, toWorkspaceFolders, IWorkspaceFoldersChangeEvent } from 'vs/platform/workspace/common/workspace'; +import { IWorkspaceContextService, Workspace, WorkbenchState, IWorkspaceFolder, toWorkspaceFolders, IWorkspaceFoldersChangeEvent, WorkspaceFolder } from 'vs/platform/workspace/common/workspace'; import { FileChangesEvent } from 'vs/platform/files/common/files'; import { isLinux } from 'vs/base/common/platform'; import { IEnvironmentService } from 'vs/platform/environment/common/environment'; @@ -360,9 +360,9 @@ export class WorkspaceService extends Disposable implements IWorkspaceConfigurat private updateWorkspaceAndInitializeConfiguration(workspace: Workspace): TPromise { const hasWorkspaceBefore = !!this.workspace; - let previousState; - let previousWorkspacePath; - let previousFolders; + let previousState: WorkbenchState; + let previousWorkspacePath: string; + let previousFolders: WorkspaceFolder[]; if (hasWorkspaceBefore) { previousState = this.getWorkbenchState(); @@ -395,7 +395,7 @@ export class WorkspaceService extends Disposable implements IWorkspaceConfigurat } private compareFolders(currentFolders: IWorkspaceFolder[], newFolders: IWorkspaceFolder[]): IWorkspaceFoldersChangeEvent { - const result = { added: [], removed: [], changed: [] }; + const result = { added: [], removed: [], changed: [] } as IWorkspaceFoldersChangeEvent; result.added = newFolders.filter(newFolder => !currentFolders.some(currentFolder => newFolder.uri.toString() === currentFolder.uri.toString())); for (let currentIndex = 0; currentIndex < currentFolders.length; currentIndex++) { let currentFolder = currentFolders[currentIndex]; diff --git a/src/vs/workbench/services/files/node/fileService.ts b/src/vs/workbench/services/files/node/fileService.ts index b27a7f781b3..072adc65781 100644 --- a/src/vs/workbench/services/files/node/fileService.ts +++ b/src/vs/workbench/services/files/node/fileService.ts @@ -279,7 +279,7 @@ export class FileService implements IFileService { const contentResolverToken = new CancellationTokenSource(); - const onStatError = error => { + const onStatError = (error: Error) => { // error: stop reading the file the stat and content resolve call // usually race, mostly likely the stat call will win and cancel @@ -426,7 +426,7 @@ export class FileService implements IFileService { } }; - const handleChunk = (bytesRead) => { + const handleChunk = (bytesRead: number) => { if (token.isCancellationRequested) { // cancellation -> finish finish(new Error('cancelled')); @@ -1141,9 +1141,9 @@ export class StatResolver { private name: string; private etag: string; private size: number; - private errorLogger: (msg) => void; + private errorLogger: (error: Error | string) => void; - constructor(resource: uri, isDirectory: boolean, mtime: number, size: number, errorLogger?: (msg) => void) { + constructor(resource: uri, isDirectory: boolean, mtime: number, size: number, errorLogger?: (error: Error | string) => void) { assert.ok(resource && resource.scheme === 'file', 'Invalid resource: ' + resource); this.resource = resource; diff --git a/src/vs/workbench/services/history/electron-browser/history.ts b/src/vs/workbench/services/history/electron-browser/history.ts index e3c3119f6b2..b5a85bdadef 100644 --- a/src/vs/workbench/services/history/electron-browser/history.ts +++ b/src/vs/workbench/services/history/electron-browser/history.ts @@ -722,7 +722,7 @@ export class HistoryService implements IHistoryService { const entriesRaw = this.storageService.get(HistoryService.STORAGE_KEY, StorageScope.WORKSPACE); if (entriesRaw) { - entries = JSON.parse(entriesRaw).filter(entry => !!entry); + entries = JSON.parse(entriesRaw).filter((entry: object) => !!entry); } const registry = Registry.as(EditorExtensions.EditorInputFactories); diff --git a/src/vs/workbench/services/themes/electron-browser/workbenchThemeService.ts b/src/vs/workbench/services/themes/electron-browser/workbenchThemeService.ts index 44674eadfef..6aff720a1c3 100644 --- a/src/vs/workbench/services/themes/electron-browser/workbenchThemeService.ts +++ b/src/vs/workbench/services/themes/electron-browser/workbenchThemeService.ts @@ -119,7 +119,7 @@ export class WorkbenchThemeService implements IWorkbenchThemeService { // In order to avoid paint flashing for tokens, because // themes are loaded asynchronously, we need to initialize // a color theme document with good defaults until the theme is loaded - let themeData = null; + let themeData: ColorThemeData = null; let persistedThemeData = this.storageService.get(PERSISTED_THEME_STORAGE_KEY); if (persistedThemeData) { themeData = ColorThemeData.fromStorageData(persistedThemeData);