diff options
author | Johannes <johannes.rieken@gmail.com> | 2022-06-08 18:49:21 +0300 |
---|---|---|
committer | Johannes <johannes.rieken@gmail.com> | 2022-06-08 18:49:21 +0300 |
commit | 0656d21d11910e1b241d7d6c52761d89c0ba23a4 (patch) | |
tree | 1b83157b21fe9f2702fa8a2019d500de57154dcf /extensions | |
parent | aa23a0dbb749fd3a51a8ed217538c563b8ff012a (diff) |
auto-fixed prefer-const violation
Diffstat (limited to 'extensions')
107 files changed, 790 insertions, 790 deletions
diff --git a/extensions/css-language-features/client/src/cssClient.ts b/extensions/css-language-features/client/src/cssClient.ts index 6f6238465d8..ba234ecb2d3 100644 --- a/extensions/css-language-features/client/src/cssClient.ts +++ b/extensions/css-language-features/client/src/cssClient.ts @@ -43,14 +43,14 @@ export async function startClient(context: ExtensionContext, newLanguageClient: const customDataSource = getCustomDataSource(context.subscriptions); - let documentSelector = ['css', 'scss', 'less']; + const documentSelector = ['css', 'scss', 'less']; const formatterRegistrations: FormatterRegistration[] = documentSelector.map(languageId => ({ languageId, settingId: `${languageId}.format.enable`, provider: undefined })); // Options to control the language client - let clientOptions: LanguageClientOptions = { + const clientOptions: LanguageClientOptions = { documentSelector, synchronize: { configurationSection: ['css', 'scss', 'less'] @@ -98,7 +98,7 @@ export async function startClient(context: ExtensionContext, newLanguageClient: }; // Create the language client and start the client. - let client = newLanguageClient('css', localize('cssserver.name', 'CSS Language Server'), clientOptions); + const client = newLanguageClient('css', localize('cssserver.name', 'CSS Language Server'), clientOptions); client.registerProposedFeatures(); await client.start(); @@ -125,17 +125,17 @@ export async function startClient(context: ExtensionContext, newLanguageClient: return languages.registerCompletionItemProvider(documentSelector, { provideCompletionItems(doc: TextDocument, pos: Position) { - let lineUntilPos = doc.getText(new Range(new Position(pos.line, 0), pos)); - let match = lineUntilPos.match(regionCompletionRegExpr); + const lineUntilPos = doc.getText(new Range(new Position(pos.line, 0), pos)); + const match = lineUntilPos.match(regionCompletionRegExpr); if (match) { - let range = new Range(new Position(pos.line, match[1].length), pos); - let beginProposal = new CompletionItem('#region', CompletionItemKind.Snippet); + const range = new Range(new Position(pos.line, match[1].length), pos); + const beginProposal = new CompletionItem('#region', CompletionItemKind.Snippet); beginProposal.range = range; TextEdit.replace(range, '/* #region */'); beginProposal.insertText = new SnippetString('/* #region $1*/'); beginProposal.documentation = localize('folding.start', 'Folding Region Start'); beginProposal.filterText = match[2]; beginProposal.sortText = 'za'; - let endProposal = new CompletionItem('#endregion', CompletionItemKind.Snippet); + const endProposal = new CompletionItem('#endregion', CompletionItemKind.Snippet); endProposal.range = range; endProposal.insertText = '/* #endregion */'; endProposal.documentation = localize('folding.end', 'Folding Region End'); @@ -151,13 +151,13 @@ export async function startClient(context: ExtensionContext, newLanguageClient: commands.registerCommand('_css.applyCodeAction', applyCodeAction); function applyCodeAction(uri: string, documentVersion: number, edits: TextEdit[]) { - let textEditor = window.activeTextEditor; + const textEditor = window.activeTextEditor; if (textEditor && textEditor.document.uri.toString() === uri) { if (textEditor.document.version !== documentVersion) { window.showInformationMessage(`CSS fix is outdated and can't be applied to the document.`); } textEditor.edit(mutator => { - for (let edit of edits) { + for (const edit of edits) { mutator.replace(client.protocol2CodeConverter.asRange(edit.range), edit.newText); } }).then(success => { diff --git a/extensions/css-language-features/server/src/languageModelCache.ts b/extensions/css-language-features/server/src/languageModelCache.ts index 343d57a9ad6..f39eada6f44 100644 --- a/extensions/css-language-features/server/src/languageModelCache.ts +++ b/extensions/css-language-features/server/src/languageModelCache.ts @@ -18,10 +18,10 @@ export function getLanguageModelCache<T>(maxEntries: number, cleanupIntervalTime let cleanupInterval: NodeJS.Timer | undefined = undefined; if (cleanupIntervalTimeInSec > 0) { cleanupInterval = setInterval(() => { - let cutoffTime = Date.now() - cleanupIntervalTimeInSec * 1000; - let uris = Object.keys(languageModels); - for (let uri of uris) { - let languageModelInfo = languageModels[uri]; + const cutoffTime = Date.now() - cleanupIntervalTimeInSec * 1000; + const uris = Object.keys(languageModels); + for (const uri of uris) { + const languageModelInfo = languageModels[uri]; if (languageModelInfo.cTime < cutoffTime) { delete languageModels[uri]; nModels--; @@ -32,14 +32,14 @@ export function getLanguageModelCache<T>(maxEntries: number, cleanupIntervalTime return { get(document: TextDocument): T { - let version = document.version; - let languageId = document.languageId; - let languageModelInfo = languageModels[document.uri]; + const version = document.version; + const languageId = document.languageId; + const languageModelInfo = languageModels[document.uri]; if (languageModelInfo && languageModelInfo.version === version && languageModelInfo.languageId === languageId) { languageModelInfo.cTime = Date.now(); return languageModelInfo.languageModel; } - let languageModel = parse(document); + const languageModel = parse(document); languageModels[document.uri] = { languageModel, version, languageId, cTime: Date.now() }; if (!languageModelInfo) { nModels++; @@ -48,8 +48,8 @@ export function getLanguageModelCache<T>(maxEntries: number, cleanupIntervalTime if (nModels === maxEntries) { let oldestTime = Number.MAX_VALUE; let oldestUri = null; - for (let uri in languageModels) { - let languageModelInfo = languageModels[uri]; + for (const uri in languageModels) { + const languageModelInfo = languageModels[uri]; if (languageModelInfo.cTime < oldestTime) { oldestUri = uri; oldestTime = languageModelInfo.cTime; @@ -64,7 +64,7 @@ export function getLanguageModelCache<T>(maxEntries: number, cleanupIntervalTime }, onDocumentRemoved(document: TextDocument) { - let uri = document.uri; + const uri = document.uri; if (languageModels[uri]) { delete languageModels[uri]; nModels--; diff --git a/extensions/css-language-features/server/src/requests.ts b/extensions/css-language-features/server/src/requests.ts index 0726af35c56..3d21e542362 100644 --- a/extensions/css-language-features/server/src/requests.ts +++ b/extensions/css-language-features/server/src/requests.ts @@ -65,7 +65,7 @@ export interface RequestService { export function getRequestService(handledSchemas: string[], connection: Connection, runtime: RuntimeEnvironment): RequestService { const builtInHandlers: { [protocol: string]: RequestService | undefined } = {}; - for (let protocol of handledSchemas) { + for (const protocol of handledSchemas) { if (protocol === 'file') { builtInHandlers[protocol] = runtime.file; } else if (protocol === 'http' || protocol === 'https') { diff --git a/extensions/css-language-features/server/src/test/completion.test.ts b/extensions/css-language-features/server/src/test/completion.test.ts index 6881dd0e3e3..23570c7e1e5 100644 --- a/extensions/css-language-features/server/src/test/completion.test.ts +++ b/extensions/css-language-features/server/src/test/completion.test.ts @@ -19,13 +19,13 @@ export interface ItemDescription { suite('Completions', () => { - let assertCompletion = function (completions: CompletionList, expected: ItemDescription, document: TextDocument, _offset: number) { - let matches = completions.items.filter(completion => { + const assertCompletion = function (completions: CompletionList, expected: ItemDescription, document: TextDocument, _offset: number) { + const matches = completions.items.filter(completion => { return completion.label === expected.label; }); assert.strictEqual(matches.length, 1, `${expected.label} should only existing once: Actual: ${completions.items.map(c => c.label).join(', ')}`); - let match = matches[0]; + const match = matches[0]; if (expected.resultText && TextEdit.is(match.textEdit)) { assert.strictEqual(TextDocument.applyEdits(document, [match.textEdit]), expected.resultText); } @@ -47,21 +47,21 @@ suite('Completions', () => { const context = getDocumentContext(testUri, workspaceFolders); const stylesheet = cssLanguageService.parseStylesheet(document); - let list = await cssLanguageService.doComplete2(document, position, stylesheet, context); + const list = await cssLanguageService.doComplete2(document, position, stylesheet, context); if (expected.count) { assert.strictEqual(list.items.length, expected.count); } if (expected.items) { - for (let item of expected.items) { + for (const item of expected.items) { assertCompletion(list, item, document, offset); } } } test('CSS url() Path completion', async function () { - let testUri = URI.file(path.resolve(__dirname, '../../test/pathCompletionFixtures/about/about.css')).toString(); - let folders = [{ name: 'x', uri: URI.file(path.resolve(__dirname, '../../test')).toString() }]; + const testUri = URI.file(path.resolve(__dirname, '../../test/pathCompletionFixtures/about/about.css')).toString(); + const folders = [{ name: 'x', uri: URI.file(path.resolve(__dirname, '../../test')).toString() }]; await assertCompletions('html { background-image: url("./|")', { items: [ @@ -119,8 +119,8 @@ suite('Completions', () => { }); test('CSS url() Path Completion - Unquoted url', async function () { - let testUri = URI.file(path.resolve(__dirname, '../../test/pathCompletionFixtures/about/about.css')).toString(); - let folders = [{ name: 'x', uri: URI.file(path.resolve(__dirname, '../../test')).toString() }]; + const testUri = URI.file(path.resolve(__dirname, '../../test/pathCompletionFixtures/about/about.css')).toString(); + const folders = [{ name: 'x', uri: URI.file(path.resolve(__dirname, '../../test')).toString() }]; await assertCompletions('html { background-image: url(./|)', { items: [ @@ -148,8 +148,8 @@ suite('Completions', () => { }); test('CSS @import Path completion', async function () { - let testUri = URI.file(path.resolve(__dirname, '../../test/pathCompletionFixtures/about/about.css')).toString(); - let folders = [{ name: 'x', uri: URI.file(path.resolve(__dirname, '../../test')).toString() }]; + const testUri = URI.file(path.resolve(__dirname, '../../test/pathCompletionFixtures/about/about.css')).toString(); + const folders = [{ name: 'x', uri: URI.file(path.resolve(__dirname, '../../test')).toString() }]; await assertCompletions(`@import './|'`, { items: [ @@ -171,8 +171,8 @@ suite('Completions', () => { * For SCSS, `@import 'foo';` can be used for importing partial file `_foo.scss` */ test('SCSS @import Path completion', async function () { - let testCSSUri = URI.file(path.resolve(__dirname, '../../test/pathCompletionFixtures/about/about.css')).toString(); - let folders = [{ name: 'x', uri: URI.file(path.resolve(__dirname, '../../test')).toString() }]; + const testCSSUri = URI.file(path.resolve(__dirname, '../../test/pathCompletionFixtures/about/about.css')).toString(); + const folders = [{ name: 'x', uri: URI.file(path.resolve(__dirname, '../../test')).toString() }]; /** * We are in a CSS file, so no special treatment for SCSS partial files @@ -184,7 +184,7 @@ suite('Completions', () => { ] }, testCSSUri, folders); - let testSCSSUri = URI.file(path.resolve(__dirname, '../../test/pathCompletionFixtures/scss/main.scss')).toString(); + const testSCSSUri = URI.file(path.resolve(__dirname, '../../test/pathCompletionFixtures/scss/main.scss')).toString(); await assertCompletions(`@import './|'`, { items: [ { label: '_foo.scss', resultText: `@import './foo'` } @@ -193,8 +193,8 @@ suite('Completions', () => { }); test('Completion should ignore files/folders starting with dot', async function () { - let testUri = URI.file(path.resolve(__dirname, '../../test/pathCompletionFixtures/about/about.css')).toString(); - let folders = [{ name: 'x', uri: URI.file(path.resolve(__dirname, '../../test')).toString() }]; + const testUri = URI.file(path.resolve(__dirname, '../../test/pathCompletionFixtures/about/about.css')).toString(); + const folders = [{ name: 'x', uri: URI.file(path.resolve(__dirname, '../../test')).toString() }]; await assertCompletions('html { background-image: url("../|")', { count: 4 diff --git a/extensions/css-language-features/server/src/test/links.test.ts b/extensions/css-language-features/server/src/test/links.test.ts index bc4c6db6477..c19f67e5e4b 100644 --- a/extensions/css-language-features/server/src/test/links.test.ts +++ b/extensions/css-language-features/server/src/test/links.test.ts @@ -21,13 +21,13 @@ export interface ItemDescription { suite('Links', () => { const cssLanguageService = getCSSLanguageService({ fileSystemProvider: getNodeFSRequestService() }); - let assertLink = function (links: DocumentLink[], expected: ItemDescription, document: TextDocument) { - let matches = links.filter(link => { + const assertLink = function (links: DocumentLink[], expected: ItemDescription, document: TextDocument) { + const matches = links.filter(link => { return document.offsetAt(link.range.start) === expected.offset; }); assert.strictEqual(matches.length, 1, `${expected.offset} should only existing once: Actual: ${links.map(l => document.offsetAt(l.range.start)).join(', ')}`); - let match = matches[0]; + const match = matches[0]; assert.strictEqual(document.getText(match.range), expected.value); assert.strictEqual(match.target, expected.target); }; @@ -45,11 +45,11 @@ suite('Links', () => { const context = getDocumentContext(testUri, workspaceFolders); const stylesheet = cssLanguageService.parseStylesheet(document); - let links = await cssLanguageService.findDocumentLinks2(document, stylesheet, context)!; + const links = await cssLanguageService.findDocumentLinks2(document, stylesheet, context)!; assert.strictEqual(links.length, expected.length); - for (let item of expected) { + for (const item of expected) { assertLink(links, item, document); } } @@ -60,8 +60,8 @@ suite('Links', () => { test('url links', async function () { - let testUri = getTestResource('about.css'); - let folders = [{ name: 'x', uri: getTestResource('') }]; + const testUri = getTestResource('about.css'); + const folders = [{ name: 'x', uri: getTestResource('') }]; await assertLinks('html { background-image: url("hello.html|")', [{ offset: 29, value: '"hello.html"', target: getTestResource('hello.html') }], testUri, folders @@ -70,8 +70,8 @@ suite('Links', () => { test('node module resolving', async function () { - let testUri = getTestResource('about.css'); - let folders = [{ name: 'x', uri: getTestResource('') }]; + const testUri = getTestResource('about.css'); + const folders = [{ name: 'x', uri: getTestResource('') }]; await assertLinks('html { background-image: url("~foo/hello.html|")', [{ offset: 29, value: '"~foo/hello.html"', target: getTestResource('node_modules/foo/hello.html') }], testUri, folders @@ -80,8 +80,8 @@ suite('Links', () => { test('node module subfolder resolving', async function () { - let testUri = getTestResource('subdir/about.css'); - let folders = [{ name: 'x', uri: getTestResource('') }]; + const testUri = getTestResource('subdir/about.css'); + const folders = [{ name: 'x', uri: getTestResource('') }]; await assertLinks('html { background-image: url("~foo/hello.html|")', [{ offset: 29, value: '"~foo/hello.html"', target: getTestResource('node_modules/foo/hello.html') }], testUri, folders diff --git a/extensions/css-language-features/server/src/utils/documentContext.ts b/extensions/css-language-features/server/src/utils/documentContext.ts index a7beffd0310..0570ac92375 100644 --- a/extensions/css-language-features/server/src/utils/documentContext.ts +++ b/extensions/css-language-features/server/src/utils/documentContext.ts @@ -10,7 +10,7 @@ import { Utils, URI } from 'vscode-uri'; export function getDocumentContext(documentUri: string, workspaceFolders: WorkspaceFolder[]): DocumentContext { function getRootFolder(): string | undefined { - for (let folder of workspaceFolders) { + for (const folder of workspaceFolders) { let folderURI = folder.uri; if (!endsWith(folderURI, '/')) { folderURI = folderURI + '/'; @@ -25,7 +25,7 @@ export function getDocumentContext(documentUri: string, workspaceFolders: Worksp return { resolveReference: (ref: string, base = documentUri) => { if (ref[0] === '/') { // resolve absolute path against the current workspace folder - let folderUri = getRootFolder(); + const folderUri = getRootFolder(); if (folderUri) { return folderUri + ref.substr(1); } diff --git a/extensions/css-language-features/server/src/utils/runner.ts b/extensions/css-language-features/server/src/utils/runner.ts index 47c587537aa..383b88e4487 100644 --- a/extensions/css-language-features/server/src/utils/runner.ts +++ b/extensions/css-language-features/server/src/utils/runner.ts @@ -8,7 +8,7 @@ import { RuntimeEnvironment } from '../cssServer'; export function formatError(message: string, err: any): string { if (err instanceof Error) { - let error = <Error>err; + const error = <Error>err; return `${message}: ${error.message}\n${error.stack}`; } else if (typeof err === 'string') { return `${message}: ${err}`; diff --git a/extensions/css-language-features/server/src/utils/strings.ts b/extensions/css-language-features/server/src/utils/strings.ts index 0e9ed34f83d..1e53c4204fd 100644 --- a/extensions/css-language-features/server/src/utils/strings.ts +++ b/extensions/css-language-features/server/src/utils/strings.ts @@ -21,7 +21,7 @@ export function startsWith(haystack: string, needle: string): boolean { * Determines if haystack ends with needle. */ export function endsWith(haystack: string, needle: string): boolean { - let diff = haystack.length - needle.length; + const diff = haystack.length - needle.length; if (diff > 0) { return haystack.lastIndexOf(needle) === diff; } else if (diff === 0) { diff --git a/extensions/debug-auto-launch/src/extension.ts b/extensions/debug-auto-launch/src/extension.ts index a4a48f5c380..572c468d843 100644 --- a/extensions/debug-auto-launch/src/extension.ts +++ b/extensions/debug-auto-launch/src/extension.ts @@ -243,7 +243,7 @@ const createServerInner = async (ipcAddress: string) => { const createServerInstance = (ipcAddress: string) => new Promise<Server>((resolve, reject) => { const s = createServer(socket => { - let data: Buffer[] = []; + const data: Buffer[] = []; socket.on('data', async chunk => { if (chunk[chunk.length - 1] !== 0) { // terminated with NUL byte @@ -392,7 +392,7 @@ async function getIpcAddress(context: vscode.ExtensionContext) { } function getJsDebugSettingKey() { - let o: { [key: string]: unknown } = {}; + const o: { [key: string]: unknown } = {}; const config = vscode.workspace.getConfiguration(SETTING_SECTION); for (const setting of SETTINGS_CAUSE_REFRESH) { o[setting] = config.get(setting); diff --git a/extensions/debug-server-ready/src/extension.ts b/extensions/debug-server-ready/src/extension.ts index d112651fd09..a3214e1207b 100644 --- a/extensions/debug-server-ready/src/extension.ts +++ b/extensions/debug-server-ready/src/extension.ts @@ -57,7 +57,7 @@ class ServerReadyDetector extends vscode.Disposable { } static stop(session: vscode.DebugSession): void { - let detector = ServerReadyDetector.detectors.get(session); + const detector = ServerReadyDetector.detectors.get(session); if (detector) { ServerReadyDetector.detectors.delete(session); detector.dispose(); @@ -65,7 +65,7 @@ class ServerReadyDetector extends vscode.Disposable { } static rememberShellPid(session: vscode.DebugSession, pid: number) { - let detector = ServerReadyDetector.detectors.get(session); + const detector = ServerReadyDetector.detectors.get(session); if (detector) { detector.shellPid = pid; } @@ -77,7 +77,7 @@ class ServerReadyDetector extends vscode.Disposable { // first find the detector with a matching pid const pid = await e.terminal.processId; - for (let [, detector] of this.detectors) { + for (const [, detector] of this.detectors) { if (detector.shellPid === pid) { detector.detectPattern(e.data); return; @@ -85,7 +85,7 @@ class ServerReadyDetector extends vscode.Disposable { } // if none found, try all detectors until one matches - for (let [, detector] of this.detectors) { + for (const [, detector] of this.detectors) { if (detector.detectPattern(e.data)) { return; } diff --git a/extensions/emmet/src/defaultCompletionProvider.ts b/extensions/emmet/src/defaultCompletionProvider.ts index 1462a2ec4d7..c8a6f657d75 100644 --- a/extensions/emmet/src/defaultCompletionProvider.ts +++ b/extensions/emmet/src/defaultCompletionProvider.ts @@ -49,7 +49,7 @@ export class DefaultCompletionItemProvider implements vscode.CompletionItemProvi const mappedLanguages = getMappingForIncludedLanguages(); const isSyntaxMapped = mappedLanguages[document.languageId] ? true : false; - let emmetMode = getEmmetMode((isSyntaxMapped ? mappedLanguages[document.languageId] : document.languageId), mappedLanguages, excludedLanguages); + const emmetMode = getEmmetMode((isSyntaxMapped ? mappedLanguages[document.languageId] : document.languageId), mappedLanguages, excludedLanguages); if (!emmetMode || emmetConfig['showExpandedAbbreviation'] === 'never' @@ -135,7 +135,7 @@ export class DefaultCompletionItemProvider implements vscode.CompletionItemProvi const offset = document.offsetAt(position); if (isStyleSheet(document.languageId) && context.triggerKind !== vscode.CompletionTriggerKind.TriggerForIncompleteCompletions) { validateLocation = true; - let usePartialParsing = vscode.workspace.getConfiguration('emmet')['optimizeStylesheetParsing'] === true; + const usePartialParsing = vscode.workspace.getConfiguration('emmet')['optimizeStylesheetParsing'] === true; rootNode = usePartialParsing && document.lineCount > 1000 ? parsePartialStylesheet(document, position) : <Stylesheet>getRootNode(document, true); if (!rootNode) { return; @@ -152,8 +152,8 @@ export class DefaultCompletionItemProvider implements vscode.CompletionItemProvi if (!rootNode) { return; } - let flatNode = getFlatNode(rootNode, offset, true); - let embeddedCssNode = getEmbeddedCssNodeIfAny(document, flatNode, position); + const flatNode = getFlatNode(rootNode, offset, true); + const embeddedCssNode = getEmbeddedCssNodeIfAny(document, flatNode, position); currentNode = getFlatNode(embeddedCssNode, offset, true); } @@ -167,7 +167,7 @@ export class DefaultCompletionItemProvider implements vscode.CompletionItemProvi // Check for document symbols in js/ts/jsx/tsx and avoid triggering emmet for abbreviations of the form symbolName.sometext // Presence of > or * or + in the abbreviation denotes valid abbreviation that should trigger emmet if (!isStyleSheet(syntax) && (document.languageId === 'javascript' || document.languageId === 'javascriptreact' || document.languageId === 'typescript' || document.languageId === 'typescriptreact')) { - let abbreviation: string = extractAbbreviationResults.abbreviation; + const abbreviation: string = extractAbbreviationResults.abbreviation; // For the second condition, we don't want abbreviations that have [] characters but not ='s in them to expand // In turn, users must explicitly expand abbreviations of the form Component[attr1 attr2], but it means we don't try to expand a[i]. if (abbreviation.startsWith('this.') || /\[[^\]=]*\]/.test(abbreviation)) { @@ -194,14 +194,14 @@ export class DefaultCompletionItemProvider implements vscode.CompletionItemProvi } } - let newItems: vscode.CompletionItem[] = []; + const newItems: vscode.CompletionItem[] = []; if (result && result.items) { result.items.forEach((item: any) => { - let newItem = new vscode.CompletionItem(item.label); + const newItem = new vscode.CompletionItem(item.label); newItem.documentation = item.documentation; newItem.detail = item.detail; newItem.insertText = new vscode.SnippetString(item.textEdit.newText); - let oldrange = item.textEdit.range; + const oldrange = item.textEdit.range; newItem.range = new vscode.Range(oldrange.start.line, oldrange.start.character, oldrange.end.line, oldrange.end.character); newItem.filterText = item.filterText; diff --git a/extensions/emmet/src/editPoint.ts b/extensions/emmet/src/editPoint.ts index 239df1f4cc2..b5137795dc9 100644 --- a/extensions/emmet/src/editPoint.ts +++ b/extensions/emmet/src/editPoint.ts @@ -12,9 +12,9 @@ export function fetchEditPoint(direction: string): void { } const editor = vscode.window.activeTextEditor; - let newSelections: vscode.Selection[] = []; + const newSelections: vscode.Selection[] = []; editor.selections.forEach(selection => { - let updatedSelection = direction === 'next' ? nextEditPoint(selection, editor) : prevEditPoint(selection, editor); + const updatedSelection = direction === 'next' ? nextEditPoint(selection, editor) : prevEditPoint(selection, editor); newSelections.push(updatedSelection); }); editor.selections = newSelections; @@ -23,7 +23,7 @@ export function fetchEditPoint(direction: string): void { function nextEditPoint(selection: vscode.Selection, editor: vscode.TextEditor): vscode.Selection { for (let lineNum = selection.anchor.line; lineNum < editor.document.lineCount; lineNum++) { - let updatedSelection = findEditPoint(lineNum, editor, selection.anchor, 'next'); + const updatedSelection = findEditPoint(lineNum, editor, selection.anchor, 'next'); if (updatedSelection) { return updatedSelection; } @@ -33,7 +33,7 @@ function nextEditPoint(selection: vscode.Selection, editor: vscode.TextEditor): function prevEditPoint(selection: vscode.Selection, editor: vscode.TextEditor): vscode.Selection { for (let lineNum = selection.anchor.line; lineNum >= 0; lineNum--) { - let updatedSelection = findEditPoint(lineNum, editor, selection.anchor, 'prev'); + const updatedSelection = findEditPoint(lineNum, editor, selection.anchor, 'prev'); if (updatedSelection) { return updatedSelection; } @@ -43,7 +43,7 @@ function prevEditPoint(selection: vscode.Selection, editor: vscode.TextEditor): function findEditPoint(lineNum: number, editor: vscode.TextEditor, position: vscode.Position, direction: string): vscode.Selection | undefined { - let line = editor.document.lineAt(lineNum); + const line = editor.document.lineAt(lineNum); let lineContent = line.text; if (lineNum !== position.line && line.isEmptyOrWhitespace && lineContent.length) { @@ -53,8 +53,8 @@ function findEditPoint(lineNum: number, editor: vscode.TextEditor, position: vsc if (lineNum === position.line && direction === 'prev') { lineContent = lineContent.substr(0, position.character); } - let emptyAttrIndex = direction === 'next' ? lineContent.indexOf('""', lineNum === position.line ? position.character : 0) : lineContent.lastIndexOf('""'); - let emptyTagIndex = direction === 'next' ? lineContent.indexOf('><', lineNum === position.line ? position.character : 0) : lineContent.lastIndexOf('><'); + const emptyAttrIndex = direction === 'next' ? lineContent.indexOf('""', lineNum === position.line ? position.character : 0) : lineContent.lastIndexOf('""'); + const emptyTagIndex = direction === 'next' ? lineContent.indexOf('><', lineNum === position.line ? position.character : 0) : lineContent.lastIndexOf('><'); let winner = -1; diff --git a/extensions/emmet/src/emmetCommon.ts b/extensions/emmet/src/emmetCommon.ts index 5a5e0d872c3..53824c4de29 100644 --- a/extensions/emmet/src/emmetCommon.ts +++ b/extensions/emmet/src/emmetCommon.ts @@ -161,8 +161,8 @@ const languageMappingForCompletionProviders: Map<string, string> = new Map<strin const completionProvidersMapping: Map<string, vscode.Disposable> = new Map<string, vscode.Disposable>(); function registerCompletionProviders(context: vscode.ExtensionContext) { - let completionProvider = new DefaultCompletionItemProvider(); - let includedLanguages = getMappingForIncludedLanguages(); + const completionProvider = new DefaultCompletionItemProvider(); + const includedLanguages = getMappingForIncludedLanguages(); Object.keys(includedLanguages).forEach(language => { if (languageMappingForCompletionProviders.has(language) && languageMappingForCompletionProviders.get(language) === includedLanguages[language]) { diff --git a/extensions/emmet/src/incrementDecrement.ts b/extensions/emmet/src/incrementDecrement.ts index 9e0afa4acf1..f7adf444978 100644 --- a/extensions/emmet/src/incrementDecrement.ts +++ b/extensions/emmet/src/incrementDecrement.ts @@ -21,7 +21,7 @@ export function incrementDecrement(delta: number): Thenable<boolean> | undefined return editor.edit(editBuilder => { editor.selections.forEach(selection => { - let rangeToReplace = locate(editor.document, selection.isReversed ? selection.anchor : selection.active); + const rangeToReplace = locate(editor.document, selection.isReversed ? selection.anchor : selection.active); if (!rangeToReplace) { return; } @@ -40,7 +40,7 @@ export function incrementDecrement(delta: number): Thenable<boolean> | undefined */ export function update(numString: string, delta: number): string { let m: RegExpMatchArray | null; - let decimals = (m = numString.match(/\.(\d+)$/)) ? m[1].length : 1; + const decimals = (m = numString.match(/\.(\d+)$/)) ? m[1].length : 1; let output = String((parseFloat(numString) + delta).toFixed(decimals)).replace(/\.0+$/, ''); if (m = numString.match(/^\-?(0\d+)/)) { diff --git a/extensions/emmet/src/matchTag.ts b/extensions/emmet/src/matchTag.ts index d7331a465b2..1c928fb7371 100644 --- a/extensions/emmet/src/matchTag.ts +++ b/extensions/emmet/src/matchTag.ts @@ -20,7 +20,7 @@ export function matchTag() { return; } - let updatedSelections: vscode.Selection[] = []; + const updatedSelections: vscode.Selection[] = []; editor.selections.forEach(selection => { const updatedSelection = getUpdatedSelections(document, rootNode, selection.start); if (updatedSelection) { diff --git a/extensions/emmet/src/removeTag.ts b/extensions/emmet/src/removeTag.ts index c43a9a03e72..b8b5b9eebdf 100644 --- a/extensions/emmet/src/removeTag.ts +++ b/extensions/emmet/src/removeTag.ts @@ -19,7 +19,7 @@ export function removeTag() { return; } - let finalRangesToRemove = Array.from(editor.selections).reverse() + const finalRangesToRemove = Array.from(editor.selections).reverse() .reduce<vscode.Range[]>((prev, selection) => prev.concat(getRangesToRemove(editor.document, rootNode, selection)), []); @@ -68,7 +68,7 @@ function getRangesToRemove(document: vscode.TextDocument, rootNode: HtmlFlatNode } } - let rangesToRemove = []; + const rangesToRemove = []; if (openTagRange) { rangesToRemove.push(openTagRange); if (closeTagRange) { diff --git a/extensions/emmet/src/selectItem.ts b/extensions/emmet/src/selectItem.ts index 52e672eddf3..437dbed7ec9 100644 --- a/extensions/emmet/src/selectItem.ts +++ b/extensions/emmet/src/selectItem.ts @@ -21,7 +21,7 @@ export function fetchSelectItem(direction: string): void { return; } - let newSelections: vscode.Selection[] = []; + const newSelections: vscode.Selection[] = []; editor.selections.forEach(selection => { const selectionStart = selection.isReversed ? selection.active : selection.anchor; const selectionEnd = selection.isReversed ? selection.anchor : selection.active; diff --git a/extensions/emmet/src/selectItemStylesheet.ts b/extensions/emmet/src/selectItemStylesheet.ts index 557d971361b..09f45ee8879 100644 --- a/extensions/emmet/src/selectItemStylesheet.ts +++ b/extensions/emmet/src/selectItemStylesheet.ts @@ -28,7 +28,7 @@ export function nextItemStylesheet(document: vscode.TextDocument, startPosition: if (currentNode.type === 'property' && startOffset >= (<Property>currentNode).valueToken.start && endOffset <= (<Property>currentNode).valueToken.end) { - let singlePropertyValue = getSelectionFromProperty(document, currentNode, startOffset, endOffset, false, 'next'); + const singlePropertyValue = getSelectionFromProperty(document, currentNode, startOffset, endOffset, false, 'next'); if (singlePropertyValue) { return singlePropertyValue; } @@ -77,7 +77,7 @@ export function prevItemStylesheet(document: vscode.TextDocument, startPosition: if (currentNode.type === 'property' && startOffset >= (<Property>currentNode).valueToken.start && endOffset <= (<Property>currentNode).valueToken.end) { - let singlePropertyValue = getSelectionFromProperty(document, currentNode, startOffset, endOffset, false, 'prev'); + const singlePropertyValue = getSelectionFromProperty(document, currentNode, startOffset, endOffset, false, 'prev'); if (singlePropertyValue) { return singlePropertyValue; } @@ -115,7 +115,7 @@ function getSelectionFromProperty(document: vscode.TextDocument, node: Node | un } const propertyNode = <Property>node; - let propertyValue = propertyNode.valueToken.stream.substring(propertyNode.valueToken.start, propertyNode.valueToken.end); + const propertyValue = propertyNode.valueToken.stream.substring(propertyNode.valueToken.start, propertyNode.valueToken.end); selectFullValue = selectFullValue || (direction === 'prev' && selectionStart === propertyNode.valueToken.start && selectionEnd < propertyNode.valueToken.end); @@ -144,7 +144,7 @@ function getSelectionFromProperty(document: vscode.TextDocument, node: Node | un } - let [newSelectionStartOffset, newSelectionEndOffset] = direction === 'prev' ? findPrevWord(propertyValue, pos) : findNextWord(propertyValue, pos); + const [newSelectionStartOffset, newSelectionEndOffset] = direction === 'prev' ? findPrevWord(propertyValue, pos) : findNextWord(propertyValue, pos); if (!newSelectionStartOffset && !newSelectionEndOffset) { return; } diff --git a/extensions/emmet/src/test/editPointSelectItemBalance.test.ts b/extensions/emmet/src/test/editPointSelectItemBalance.test.ts index b631b156d24..c698e85c683 100644 --- a/extensions/emmet/src/test/editPointSelectItemBalance.test.ts +++ b/extensions/emmet/src/test/editPointSelectItemBalance.test.ts @@ -62,13 +62,13 @@ suite('Tests for Next/Previous Select/Edit point and Balance actions', () => { return withRandomFileEditor(htmlContents, '.html', (editor, _) => { editor.selections = [new Selection(1, 5, 1, 5)]; - let expectedNextEditPoints: [number, number][] = [[4, 16], [6, 8], [10, 2], [10, 2]]; + const expectedNextEditPoints: [number, number][] = [[4, 16], [6, 8], [10, 2], [10, 2]]; expectedNextEditPoints.forEach(([line, col]) => { fetchEditPoint('next'); testSelection(editor.selection, col, line); }); - let expectedPrevEditPoints = [[6, 8], [4, 16], [4, 16]]; + const expectedPrevEditPoints = [[6, 8], [4, 16], [4, 16]]; expectedPrevEditPoints.forEach(([line, col]) => { fetchEditPoint('prev'); testSelection(editor.selection, col, line); @@ -82,7 +82,7 @@ suite('Tests for Next/Previous Select/Edit point and Balance actions', () => { return withRandomFileEditor(htmlContents, '.html', (editor, _) => { editor.selections = [new Selection(2, 2, 2, 2)]; - let expectedNextItemPoints: [number, number, number][] = [ + const expectedNextItemPoints: [number, number, number][] = [ [2, 1, 5], // html [2, 6, 15], // lang="en" [2, 12, 14], // en @@ -141,7 +141,7 @@ suite('Tests for Next/Previous Select/Edit point and Balance actions', () => { return withRandomFileEditor(templateContents, '.html', (editor, _) => { editor.selections = [new Selection(2, 2, 2, 2)]; - let expectedNextItemPoints: [number, number, number][] = [ + const expectedNextItemPoints: [number, number, number][] = [ [2, 2, 5], // div [2, 6, 20], // class="header" [2, 13, 19], // header @@ -170,7 +170,7 @@ suite('Tests for Next/Previous Select/Edit point and Balance actions', () => { return withRandomFileEditor(cssContents, '.css', (editor, _) => { editor.selections = [new Selection(0, 0, 0, 0)]; - let expectedNextItemPoints: [number, number, number][] = [ + const expectedNextItemPoints: [number, number, number][] = [ [1, 0, 4], // .boo [2, 1, 19], // margin: 20px 10px; [2, 9, 18], // 20px 10px @@ -201,7 +201,7 @@ suite('Tests for Next/Previous Select/Edit point and Balance actions', () => { return withRandomFileEditor(scssContents, '.scss', (editor, _) => { editor.selections = [new Selection(0, 0, 0, 0)]; - let expectedNextItemPoints: [number, number, number][] = [ + const expectedNextItemPoints: [number, number, number][] = [ [1, 0, 4], // .boo [2, 1, 19], // margin: 20px 10px; [2, 9, 18], // 20px 10px @@ -232,7 +232,7 @@ suite('Tests for Next/Previous Select/Edit point and Balance actions', () => { return withRandomFileEditor(htmlContents, 'html', (editor, _) => { editor.selections = [new Selection(14, 6, 14, 10)]; - let expectedBalanceOutRanges: [number, number, number, number][] = [ + const expectedBalanceOutRanges: [number, number, number, number][] = [ [14, 3, 14, 32], // <li class="item1">Item 1</li> [13, 23, 16, 2], // inner contents of <ul class="nav main"> [13, 2, 16, 7], // outer contents of <ul class="nav main"> @@ -249,7 +249,7 @@ suite('Tests for Next/Previous Select/Edit point and Balance actions', () => { }); editor.selections = [new Selection(12, 7, 12, 7)]; - let expectedBalanceInRanges: [number, number, number, number][] = [ + const expectedBalanceInRanges: [number, number, number, number][] = [ [12, 21, 17, 1], // inner contents of <div class="header"> [13, 2, 16, 7], // outer contents of <ul class="nav main"> [13, 23, 16, 2], // inner contents of <ul class="nav main"> @@ -269,7 +269,7 @@ suite('Tests for Next/Previous Select/Edit point and Balance actions', () => { return withRandomFileEditor(htmlContents, 'html', (editor, _) => { editor.selections = [new Selection(15, 6, 15, 10)]; - let expectedBalanceOutRanges: [number, number, number, number][] = [ + const expectedBalanceOutRanges: [number, number, number, number][] = [ [15, 3, 15, 32], // <li class="item1">Item 2</li> [13, 23, 16, 2], // inner contents of <ul class="nav main"> [13, 2, 16, 7], // outer contents of <ul class="nav main"> @@ -327,7 +327,7 @@ suite('Tests for Next/Previous Select/Edit point and Balance actions', () => { return withRandomFileEditor(htmlTemplate, 'html', (editor, _) => { editor.selections = [new Selection(5, 24, 5, 24)]; - let expectedBalanceOutRanges: [number, number, number, number][] = [ + const expectedBalanceOutRanges: [number, number, number, number][] = [ [5, 20, 5, 26], // <li class="item1">``Item 2''</li> [5, 2, 5, 31], // ``<li class="item1">Item 2</li>'' [3, 22, 6, 1], // inner contents of ul diff --git a/extensions/emmet/src/test/partialParsingStylesheet.test.ts b/extensions/emmet/src/test/partialParsingStylesheet.test.ts index d29348af3af..03b6a1a5dbd 100644 --- a/extensions/emmet/src/test/partialParsingStylesheet.test.ts +++ b/extensions/emmet/src/test/partialParsingStylesheet.test.ts @@ -30,12 +30,12 @@ p { } p `; return withRandomFileEditor(cssContents, '.css', (_, doc) => { - let rangesForEmmet = [ + const rangesForEmmet = [ new vscode.Range(3, 18, 3, 19), // Same line after block comment new vscode.Range(4, 1, 4, 2), // p after block comment new vscode.Range(5, 1, 5, 3) // p. after block comment ]; - let rangesNotEmmet = [ + const rangesNotEmmet = [ new vscode.Range(1, 0, 1, 1), // Selector new vscode.Range(2, 9, 2, 10), // Property value new vscode.Range(3, 3, 3, 5), // dn inside block comment @@ -65,7 +65,7 @@ dn { } bg `; return withRandomFileEditor(sassContents, '.scss', (_, doc) => { - let rangesNotEmmet = [ + const rangesNotEmmet = [ new vscode.Range(1, 0, 1, 4), // Selector new vscode.Range(2, 3, 2, 7), // Line commented selector new vscode.Range(3, 3, 3, 7), // Block commented selector @@ -94,12 +94,12 @@ comment */ } p `; return withRandomFileEditor(cssContents, '.css', (_, doc) => { - let rangesForEmmet = [ + const rangesForEmmet = [ new vscode.Range(7, 18, 7, 19), // Same line after block comment new vscode.Range(8, 1, 8, 2), // p after block comment new vscode.Range(9, 1, 9, 3) // p. after block comment ]; - let rangesNotEmmet = [ + const rangesNotEmmet = [ new vscode.Range(1, 2, 1, 3), // Selector new vscode.Range(3, 3, 3, 4), // Inside multiline comment new vscode.Range(5, 0, 5, 1), // Opening Brace @@ -133,13 +133,13 @@ comment */ }}} `; return withRandomFileEditor(sassContents, '.scss', (_, doc) => { - let rangesForEmmet = [ + const rangesForEmmet = [ new vscode.Range(2, 1, 2, 2), // Inside a ruleset before errors new vscode.Range(3, 1, 3, 2), // Inside a ruleset after no serious error new vscode.Range(7, 1, 7, 2), // @ inside a so far well structured ruleset new vscode.Range(9, 2, 9, 3), // @ inside a so far well structured nested ruleset ]; - let rangesNotEmmet = [ + const rangesNotEmmet = [ new vscode.Range(4, 4, 4, 5), // p inside ruleset without proper selector new vscode.Range(6, 3, 6, 4) // In selector ]; @@ -158,14 +158,14 @@ comment */ .foo{dn}.bar{.boo{dn}dn}.comd{/*{dn*/p{div{dn}} }.foo{.other{dn}} dn `; return withRandomFileEditor(sassContents, '.scss', (_, doc) => { - let rangesForEmmet = [ + const rangesForEmmet = [ new vscode.Range(1, 5, 1, 7), // Inside a ruleset new vscode.Range(1, 18, 1, 20), // Inside a nested ruleset new vscode.Range(1, 21, 1, 23), // Inside ruleset after nested one. new vscode.Range(1, 43, 1, 45), // Inside nested ruleset after comment new vscode.Range(1, 61, 1, 63) // Inside nested ruleset ]; - let rangesNotEmmet = [ + const rangesNotEmmet = [ new vscode.Range(1, 3, 1, 4), // In foo selector new vscode.Range(1, 10, 1, 11), // In bar selector new vscode.Range(1, 15, 1, 16), // In boo selector @@ -197,11 +197,11 @@ p.#{dn} { } `; return withRandomFileEditor(sassContents, '.scss', (_, doc) => { - let rangesForEmmet = [ + const rangesForEmmet = [ new vscode.Range(2, 1, 2, 4), // p.3 inside a ruleset whose selector uses interpolation new vscode.Range(4, 1, 4, 3) // dn inside ruleset after property with variable ]; - let rangesNotEmmet = [ + const rangesNotEmmet = [ new vscode.Range(1, 0, 1, 1), // In p in selector new vscode.Range(1, 2, 1, 3), // In # in selector new vscode.Range(1, 4, 1, 6), // In dn inside variable in selector @@ -237,13 +237,13 @@ ment */{ } `; return withRandomFileEditor(sassContents, '.scss', (_, doc) => { - let rangesForEmmet = [ + const rangesForEmmet = [ new vscode.Range(2, 14, 2, 21), // brs6-2p with a block commented line comment ('/* */' overrides '//') new vscode.Range(3, 1, 3, 3), // dn after a line with combined comments inside a ruleset new vscode.Range(9, 1, 9, 4), // m10 inside ruleset whose selector is before a comment new vscode.Range(12, 1, 12, 5) // op3 inside a ruleset with commented extra braces ]; - let rangesNotEmmet = [ + const rangesNotEmmet = [ new vscode.Range(2, 4, 2, 5), // In p inside block comment new vscode.Range(2, 9, 2, 10), // In p inside block comment and after line comment new vscode.Range(6, 3, 6, 4) // In c inside block comment diff --git a/extensions/emmet/src/test/tagActions.test.ts b/extensions/emmet/src/test/tagActions.test.ts index c9f8a7fe4fe..c8680dd66f0 100644 --- a/extensions/emmet/src/test/tagActions.test.ts +++ b/extensions/emmet/src/test/tagActions.test.ts @@ -43,7 +43,7 @@ suite('Tests for Emmet actions on html tags', () => { </div> `; - let contentsWithTemplate = ` + const contentsWithTemplate = ` <script type="text/template"> <ul> <li><span>Hello</span></li> @@ -353,7 +353,7 @@ suite('Tests for Emmet actions on html tags', () => { }); test('match tag with template scripts', () => { - let templateScript = ` + const templateScript = ` <script type="text/template"> <div> Hello diff --git a/extensions/emmet/src/toggleComment.ts b/extensions/emmet/src/toggleComment.ts index e40f675c3eb..6c9dc0251c4 100644 --- a/extensions/emmet/src/toggleComment.ts +++ b/extensions/emmet/src/toggleComment.ts @@ -27,7 +27,7 @@ export function toggleComment(): Thenable<boolean> | undefined { } return editor.edit(editBuilder => { - let allEdits: vscode.TextEdit[][] = []; + const allEdits: vscode.TextEdit[][] = []; Array.from(editor.selections).reverse().forEach(selection => { const edits = isStyleSheet(editor.document.languageId) ? toggleCommentStylesheet(editor.document, selection, <Stylesheet>rootNode) : toggleCommentHTML(editor.document, selection, rootNode!); if (edits.length > 0) { @@ -37,7 +37,7 @@ export function toggleComment(): Thenable<boolean> | undefined { // Apply edits in order so we can skip nested ones. allEdits.sort((arr1, arr2) => { - let result = arr1[0].range.start.line - arr2[0].range.start.line; + const result = arr1[0].range.start.line - arr2[0].range.start.line; return result === 0 ? arr1[0].range.start.character - arr2[0].range.start.character : result; }); let lastEditPosition = new vscode.Position(0, 0); @@ -76,7 +76,7 @@ function toggleCommentHTML(document: vscode.TextDocument, selection: vscode.Sele return toggleCommentStylesheet(document, selection, cssRootNode); } - let allNodes: Node[] = getNodesInBetween(startNode, endNode); + const allNodes: Node[] = getNodesInBetween(startNode, endNode); let edits: vscode.TextEdit[] = []; allNodes.forEach(node => { @@ -132,8 +132,8 @@ function toggleCommentStylesheet(document: vscode.TextDocument, selection: vscod } // Uncomment the comments that intersect with the selection. - let rangesToUnComment: vscode.Range[] = []; - let edits: vscode.TextEdit[] = []; + const rangesToUnComment: vscode.Range[] = []; + const edits: vscode.TextEdit[] = []; rootNode.comments.forEach(comment => { const commentRange = offsetRangeToVsRange(document, comment.start, comment.end); if (selection.intersection(commentRange)) { diff --git a/extensions/emmet/src/updateImageSize.ts b/extensions/emmet/src/updateImageSize.ts index 3a9204c0580..23838576c50 100644 --- a/extensions/emmet/src/updateImageSize.ts +++ b/extensions/emmet/src/updateImageSize.ts @@ -193,7 +193,7 @@ function updateHTMLTag(editor: TextEditor, node: HtmlNode, width: number, height const quote = getAttributeQuote(editor, srcAttr); const endOfAttributes = node.attributes[node.attributes.length - 1].end; - let edits: TextEdit[] = []; + const edits: TextEdit[] = []; let textToAdd = ''; if (!widthAttr) { @@ -226,7 +226,7 @@ function updateCSSNode(editor: TextEditor, srcProp: Property, width: number, hei const separator = srcProp.separator || ': '; const before = getPropertyDelimitor(editor, srcProp); - let edits: TextEdit[] = []; + const edits: TextEdit[] = []; if (!srcProp.terminatorToken) { edits.push(new TextEdit(offsetRangeToVsRange(document, srcProp.end, srcProp.end), ';')); } diff --git a/extensions/emmet/src/updateTag.ts b/extensions/emmet/src/updateTag.ts index d58cd31505c..1d0a2971c06 100644 --- a/extensions/emmet/src/updateTag.ts +++ b/extensions/emmet/src/updateTag.ts @@ -54,7 +54,7 @@ export async function updateTag(tagName: string | undefined): Promise<boolean | } function getRangesFromNode(node: HtmlFlatNode, document: vscode.TextDocument): TagRange[] { - let ranges: TagRange[] = []; + const ranges: TagRange[] = []; if (node.open) { const start = document.positionAt(node.open.start); ranges.push({ diff --git a/extensions/emmet/src/util.ts b/extensions/emmet/src/util.ts index ee45de467e6..adbfe963a5b 100644 --- a/extensions/emmet/src/util.ts +++ b/extensions/emmet/src/util.ts @@ -58,7 +58,7 @@ export function updateEmmetExtensionsPath(forceRefresh: boolean = false) { */ export function migrateEmmetExtensionsPath() { // Get the detail info of emmet.extensionsPath setting - let config = vscode.workspace.getConfiguration().inspect('emmet.extensionsPath'); + const config = vscode.workspace.getConfiguration().inspect('emmet.extensionsPath'); // Update Global setting if the value type is string or the value is null if (typeof config?.globalValue === 'string') { @@ -100,12 +100,12 @@ export const LANGUAGE_MODES: { [id: string]: string[] } = { }; export function isStyleSheet(syntax: string): boolean { - let stylesheetSyntaxes = ['css', 'scss', 'sass', 'less', 'stylus']; + const stylesheetSyntaxes = ['css', 'scss', 'sass', 'less', 'stylus']; return stylesheetSyntaxes.includes(syntax); } export function validate(allowStylesheet: boolean = true): boolean { - let editor = vscode.window.activeTextEditor; + const editor = vscode.window.activeTextEditor; if (!editor) { vscode.window.showInformationMessage('No editor is active'); return false; @@ -197,7 +197,7 @@ export function parsePartialStylesheet(document: vscode.TextDocument, position: function findOpeningCommentBeforePosition(pos: number): number | undefined { const text = document.getText().substring(0, pos); - let offset = text.lastIndexOf('/*'); + const offset = text.lastIndexOf('/*'); if (offset === -1) { return; } diff --git a/extensions/extension-editing/src/extensionLinter.ts b/extensions/extension-editing/src/extensionLinter.ts index d4067e5265a..e1bda75fc04 100644 --- a/extensions/extension-editing/src/extensionLinter.ts +++ b/extensions/extension-editing/src/extensionLinter.ts @@ -338,7 +338,7 @@ export class ExtensionLinter { if (!hasScheme && !info.hasHttpsRepository) { const range = new Range(document.positionAt(begin), document.positionAt(end)); - let message = (() => { + const message = (() => { switch (context) { case Context.ICON: return relativeIconUrlRequiresHttpsRepository; case Context.BADGE: return relativeBadgeUrlRequiresHttpsRepository; @@ -367,7 +367,7 @@ export class ExtensionLinter { function parseUri(src: string, base?: string, retry: boolean = true): Uri | null { try { - let url = new URL(src, base); + const url = new URL(src, base); return Uri.parse(url.toString()); } catch (err) { if (retry) { diff --git a/extensions/git/src/askpass.ts b/extensions/git/src/askpass.ts index 81895a0e0d6..2f9678c6e04 100644 --- a/extensions/git/src/askpass.ts +++ b/extensions/git/src/askpass.ts @@ -80,7 +80,7 @@ export class Askpass implements IIPCHandler { }; } - let env: { [key: string]: string } = { + const env: { [key: string]: string } = { ...this.ipc.getEnv(), VSCODE_GIT_ASKPASS_NODE: process.execPath, VSCODE_GIT_ASKPASS_EXTRA_ARGS: (process.versions['electron'] && process.versions['microsoft-build']) ? '--ms-enable-electron-run-as-node' : '', diff --git a/extensions/git/src/commands.ts b/extensions/git/src/commands.ts index 32812e42159..cd43dc2ea6e 100644 --- a/extensions/git/src/commands.ts +++ b/extensions/git/src/commands.ts @@ -418,8 +418,8 @@ export class CommandCenter { type InputData = { uri: Uri; detail?: string; description?: string }; const mergeUris = toMergeUris(uri); - let input1: InputData = { uri: mergeUris.ours }; - let input2: InputData = { uri: mergeUris.theirs }; + const input1: InputData = { uri: mergeUris.ours }; + const input2: InputData = { uri: mergeUris.theirs }; try { const [head, mergeHead] = await Promise.all([repo.getCommit('HEAD'), repo.getCommit('MERGE_HEAD')]); @@ -1561,7 +1561,7 @@ export class CommandCenter { } } - let message = await getCommitMessage(); + const message = await getCommitMessage(); if (!message && !opts.amend) { return false; @@ -1627,7 +1627,7 @@ export class CommandCenter { let _message: string | undefined = message; if (!_message) { - let value: string | undefined = undefined; + const value: string | undefined = undefined; if (opts && opts.amend && repository.HEAD && repository.HEAD.commit) { return undefined; diff --git a/extensions/git/src/decorationProvider.ts b/extensions/git/src/decorationProvider.ts index 637b30d198a..ec4a5524068 100644 --- a/extensions/git/src/decorationProvider.ts +++ b/extensions/git/src/decorationProvider.ts @@ -106,7 +106,7 @@ class GitDecorationProvider implements FileDecorationProvider { } private onDidRunGitStatus(): void { - let newDecorations = new Map<string, FileDecoration>(); + const newDecorations = new Map<string, FileDecoration>(); this.collectSubmoduleDecorationData(newDecorations); this.collectDecorationData(this.repository.indexGroup, newDecorations); diff --git a/extensions/git/src/encoding.ts b/extensions/git/src/encoding.ts index ff3eddd8413..a283f628594 100644 --- a/extensions/git/src/encoding.ts +++ b/extensions/git/src/encoding.ts @@ -50,7 +50,7 @@ const JSCHARDET_TO_ICONV_ENCODINGS: { [name: string]: string } = { }; export function detectEncoding(buffer: Buffer): string | null { - let result = detectEncodingByBOM(buffer); + const result = detectEncodingByBOM(buffer); if (result) { return result; diff --git a/extensions/git/src/git.ts b/extensions/git/src/git.ts index a511db761a6..203d6949897 100644 --- a/extensions/git/src/git.ts +++ b/extensions/git/src/git.ts @@ -406,7 +406,7 @@ export class Git { } async clone(url: string, options: ICloneOptions, cancellationToken?: CancellationToken): Promise<string> { - let baseFolderName = decodeURI(url).replace(/[\/]+$/, '').replace(/^.*[\/\\]/, '').replace(/\.git$/, '') || 'repository'; + const baseFolderName = decodeURI(url).replace(/[\/]+$/, '').replace(/^.*[\/\\]/, '').replace(/\.git$/, '') || 'repository'; let folderName = baseFolderName; let folderPath = path.join(options.parentPath, folderName); let count = 1; @@ -447,7 +447,7 @@ export class Git { }; try { - let command = ['clone', url.includes(' ') ? encodeURI(url) : url, folderPath, '--progress']; + const command = ['clone', url.includes(' ') ? encodeURI(url) : url, folderPath, '--progress']; if (options.recursive) { command.push('--recursive'); } @@ -481,7 +481,7 @@ export class Git { const pathUri = Uri.file(repositoryPath); if (repoUri.authority.length !== 0 && pathUri.authority.length === 0) { // eslint-disable-next-line code-no-look-behind-regex - let match = /(?<=^\/?)([a-zA-Z])(?=:\/)/.exec(pathUri.path); + const match = /(?<=^\/?)([a-zA-Z])(?=:\/)/.exec(pathUri.path); if (match !== null) { const [, letter] = match; @@ -794,7 +794,7 @@ export function parseGitmodules(raw: string): Submodule[] { const commitRegex = /([0-9a-f]{40})\n(.*)\n(.*)\n(.*)\n(.*)\n(.*)\n(.*)(?:\n([^]*?))?(?:\x00)/gm; export function parseGitCommits(data: string): Commit[] { - let commits: Commit[] = []; + const commits: Commit[] = []; let ref; let authorName; @@ -1543,7 +1543,7 @@ export class Repository { } async deleteTag(name: string): Promise<void> { - let args = ['tag', '-d', name]; + const args = ['tag', '-d', name]; await this.exec(args); } diff --git a/extensions/git/src/staging.ts b/extensions/git/src/staging.ts index 36e9c6f26e1..2813bfb1ee9 100644 --- a/extensions/git/src/staging.ts +++ b/extensions/git/src/staging.ts @@ -9,7 +9,7 @@ export function applyLineChanges(original: TextDocument, modified: TextDocument, const result: string[] = []; let currentLine = 0; - for (let diff of diffs) { + for (const diff of diffs) { const isInsertion = diff.originalEndLineNumber === 0; const isDeletion = diff.modifiedEndLineNumber === 0; diff --git a/extensions/git/src/util.ts b/extensions/git/src/util.ts index b568080bf48..53ab6c9e310 100644 --- a/extensions/git/src/util.ts +++ b/extensions/git/src/util.ts @@ -89,7 +89,7 @@ export function eventToPromise<T>(event: Event<T>): Promise<T> { } export function once(fn: (...args: any[]) => any): (...args: any[]) => any { - let didRun = false; + const didRun = false; return (...args) => { if (didRun) { @@ -219,11 +219,11 @@ export async function grep(filename: string, pattern: RegExp): Promise<boolean> export function readBytes(stream: Readable, bytes: number): Promise<Buffer> { return new Promise<Buffer>((complete, error) => { let done = false; - let buffer = Buffer.allocUnsafe(bytes); + const buffer = Buffer.allocUnsafe(bytes); let bytesRead = 0; stream.on('data', (data: Buffer) => { - let bytesToRead = Math.min(bytes - bytesRead, data.length); + const bytesToRead = Math.min(bytes - bytesRead, data.length); data.copy(buffer, bytesRead, 0, bytesToRead); bytesRead += bytesToRead; diff --git a/extensions/github-authentication/src/common/utils.ts b/extensions/github-authentication/src/common/utils.ts index c9511ff9b79..b3da59cd08d 100644 --- a/extensions/github-authentication/src/common/utils.ts +++ b/extensions/github-authentication/src/common/utils.ts @@ -51,7 +51,7 @@ export function promiseFromEvent<T, U>( event: Event<T>, adapter: PromiseAdapter<T, U> = passthrough): { promise: Promise<U>; cancel: EventEmitter<void> } { let subscription: Disposable; - let cancel = new EventEmitter<void>(); + const cancel = new EventEmitter<void>(); return { promise: new Promise<U>((resolve, reject) => { cancel.event(_ => reject('Cancelled')); diff --git a/extensions/github/src/remoteSourceProvider.ts b/extensions/github/src/remoteSourceProvider.ts index d349a419942..e365a7172b7 100644 --- a/extensions/github/src/remoteSourceProvider.ts +++ b/extensions/github/src/remoteSourceProvider.ts @@ -107,7 +107,7 @@ export class GithubRemoteSourceProvider implements RemoteSourceProvider { let page = 1; while (true) { - let res = await octokit.repos.listBranches({ ...repository, per_page: 100, page }); + const res = await octokit.repos.listBranches({ ...repository, per_page: 100, page }); if (res.data.length === 0) { break; diff --git a/extensions/grunt/src/main.ts b/extensions/grunt/src/main.ts index 597aa909701..c213f1c69c9 100644 --- a/extensions/grunt/src/main.ts +++ b/extensions/grunt/src/main.ts @@ -33,7 +33,7 @@ function exec(command: string, options: cp.ExecOptions): Promise<{ stdout: strin const buildNames: string[] = ['build', 'compile', 'watch']; function isBuildTask(name: string): boolean { - for (let buildName of buildNames) { + for (const buildName of buildNames) { if (name.indexOf(buildName) !== -1) { return true; } @@ -43,7 +43,7 @@ function isBuildTask(name: string): boolean { const testNames: string[] = ['test']; function isTestTask(name: string): boolean { - for (let testName of testNames) { + for (const testName of testNames) { if (name.indexOf(testName) !== -1) { return true; } @@ -73,7 +73,7 @@ interface GruntTaskDefinition extends vscode.TaskDefinition { async function findGruntCommand(rootPath: string): Promise<string> { let command: string; - let platform = process.platform; + const platform = process.platform; if (platform === 'win32' && await exists(path.join(rootPath!, 'node_modules', '.bin', 'grunt.cmd'))) { command = path.join('.', 'node_modules', '.bin', 'grunt.cmd'); } else if ((platform === 'linux' || platform === 'darwin') && await exists(path.join(rootPath!, 'node_modules', '.bin', 'grunt'))) { @@ -103,7 +103,7 @@ class FolderDetector { } public start(): void { - let pattern = path.join(this._workspaceFolder.uri.fsPath, '{node_modules,[Gg]runtfile.js}'); + const pattern = path.join(this._workspaceFolder.uri.fsPath, '{node_modules,[Gg]runtfile.js}'); this.fileWatcher = vscode.workspace.createFileSystemWatcher(pattern); this.fileWatcher.onDidChange(() => this.promise = undefined); this.fileWatcher.onDidCreate(() => this.promise = undefined); @@ -125,9 +125,9 @@ class FolderDetector { const taskDefinition = <any>_task.definition; const gruntTask = taskDefinition.task; if (gruntTask) { - let options: vscode.ShellExecutionOptions = { cwd: this.workspaceFolder.uri.fsPath }; - let source = 'grunt'; - let task = gruntTask.indexOf(' ') === -1 + const options: vscode.ShellExecutionOptions = { cwd: this.workspaceFolder.uri.fsPath }; + const source = 'grunt'; + const task = gruntTask.indexOf(' ') === -1 ? new vscode.Task(taskDefinition, this.workspaceFolder, gruntTask, source, new vscode.ShellExecution(`${await this._gruntCommand}`, [gruntTask, ...taskDefinition.args], options)) : new vscode.Task(taskDefinition, this.workspaceFolder, gruntTask, source, new vscode.ShellExecution(`${await this._gruntCommand}`, [`"${gruntTask}"`, ...taskDefinition.args], options)); return task; @@ -136,8 +136,8 @@ class FolderDetector { } private async computeTasks(): Promise<vscode.Task[]> { - let rootPath = this._workspaceFolder.uri.scheme === 'file' ? this._workspaceFolder.uri.fsPath : undefined; - let emptyTasks: vscode.Task[] = []; + const rootPath = this._workspaceFolder.uri.scheme === 'file' ? this._workspaceFolder.uri.fsPath : undefined; + const emptyTasks: vscode.Task[] = []; if (!rootPath) { return emptyTasks; } @@ -145,14 +145,14 @@ class FolderDetector { return emptyTasks; } - let commandLine = `${await this._gruntCommand} --help --no-color`; + const commandLine = `${await this._gruntCommand} --help --no-color`; try { - let { stdout, stderr } = await exec(commandLine, { cwd: rootPath }); + const { stdout, stderr } = await exec(commandLine, { cwd: rootPath }); if (stderr) { getOutputChannel().appendLine(stderr); showError(); } - let result: vscode.Task[] = []; + const result: vscode.Task[] = []; if (stdout) { // grunt lists tasks as follows (description is wrapped into a new line if too long): // ... @@ -166,10 +166,10 @@ class FolderDetector { // // Tasks run in the order specified - let lines = stdout.split(/\r{0,1}\n/); + const lines = stdout.split(/\r{0,1}\n/); let tasksStart = false; let tasksEnd = false; - for (let line of lines) { + for (const line of lines) { if (line.length === 0) { continue; } @@ -181,21 +181,21 @@ class FolderDetector { if (line.indexOf('Tasks run in the order specified') === 0) { tasksEnd = true; } else { - let regExp = /^\s*(\S.*\S) \S/g; - let matches = regExp.exec(line); + const regExp = /^\s*(\S.*\S) \S/g; + const matches = regExp.exec(line); if (matches && matches.length === 2) { - let name = matches[1]; - let kind: GruntTaskDefinition = { + const name = matches[1]; + const kind: GruntTaskDefinition = { type: 'grunt', task: name }; - let source = 'grunt'; - let options: vscode.ShellExecutionOptions = { cwd: this.workspaceFolder.uri.fsPath }; - let task = name.indexOf(' ') === -1 + const source = 'grunt'; + const options: vscode.ShellExecutionOptions = { cwd: this.workspaceFolder.uri.fsPath }; + const task = name.indexOf(' ') === -1 ? new vscode.Task(kind, this.workspaceFolder, name, source, new vscode.ShellExecution(`${await this._gruntCommand} ${name}`, options)) : new vscode.Task(kind, this.workspaceFolder, name, source, new vscode.ShellExecution(`${await this._gruntCommand} "${name}"`, options)); result.push(task); - let lowerCaseTaskName = name.toLowerCase(); + const lowerCaseTaskName = name.toLowerCase(); if (isBuildTask(lowerCaseTaskName)) { task.group = vscode.TaskGroup.Build; } else if (isTestTask(lowerCaseTaskName)) { @@ -208,7 +208,7 @@ class FolderDetector { } return result; } catch (err) { - let channel = getOutputChannel(); + const channel = getOutputChannel(); if (err.stderr) { channel.appendLine(err.stderr); } @@ -238,7 +238,7 @@ class TaskDetector { } public start(): void { - let folders = vscode.workspace.workspaceFolders; + const folders = vscode.workspace.workspaceFolders; if (folders) { this.updateWorkspaceFolders(folders, []); } @@ -255,15 +255,15 @@ class TaskDetector { } private updateWorkspaceFolders(added: readonly vscode.WorkspaceFolder[], removed: readonly vscode.WorkspaceFolder[]): void { - for (let remove of removed) { - let detector = this.detectors.get(remove.uri.toString()); + for (const remove of removed) { + const detector = this.detectors.get(remove.uri.toString()); if (detector) { detector.dispose(); this.detectors.delete(remove.uri.toString()); } } - for (let add of added) { - let detector = new FolderDetector(add, findGruntCommand(add.uri.fsPath)); + for (const add of added) { + const detector = new FolderDetector(add, findGruntCommand(add.uri.fsPath)); this.detectors.set(add.uri.toString(), detector); if (detector.isEnabled()) { detector.start(); @@ -273,15 +273,15 @@ class TaskDetector { } private updateConfiguration(): void { - for (let detector of this.detectors.values()) { + for (const detector of this.detectors.values()) { detector.dispose(); this.detectors.delete(detector.workspaceFolder.uri.toString()); } - let folders = vscode.workspace.workspaceFolders; + const folders = vscode.workspace.workspaceFolders; if (folders) { - for (let folder of folders) { + for (const folder of folders) { if (!this.detectors.has(folder.uri.toString())) { - let detector = new FolderDetector(folder, findGruntCommand(folder.uri.fsPath)); + const detector = new FolderDetector(folder, findGruntCommand(folder.uri.fsPath)); this.detectors.set(folder.uri.toString(), detector); if (detector.isEnabled()) { detector.start(); @@ -320,13 +320,13 @@ class TaskDetector { } else if (this.detectors.size === 1) { return this.detectors.values().next().value.getTasks(); } else { - let promises: Promise<vscode.Task[]>[] = []; - for (let detector of this.detectors.values()) { + const promises: Promise<vscode.Task[]>[] = []; + for (const detector of this.detectors.values()) { promises.push(detector.getTasks().then((value) => value, () => [])); } return Promise.all(promises).then((values) => { - let result: vscode.Task[] = []; - for (let tasks of values) { + const result: vscode.Task[] = []; + for (const tasks of values) { if (tasks && tasks.length > 0) { result.push(...tasks); } diff --git a/extensions/gulp/src/main.ts b/extensions/gulp/src/main.ts index 36a3dc5115d..ae7ea83c4a9 100644 --- a/extensions/gulp/src/main.ts +++ b/extensions/gulp/src/main.ts @@ -53,7 +53,7 @@ function exec(command: string, options: cp.ExecOptions): Promise<{ stdout: strin const buildNames: string[] = ['build', 'compile', 'watch']; function isBuildTask(name: string): boolean { - for (let buildName of buildNames) { + for (const buildName of buildNames) { if (name.indexOf(buildName) !== -1) { return true; } @@ -63,7 +63,7 @@ function isBuildTask(name: string): boolean { const testNames: string[] = ['test']; function isTestTask(name: string): boolean { - for (let testName of testNames) { + for (const testName of testNames) { if (name.indexOf(testName) !== -1) { return true; } @@ -89,7 +89,7 @@ function showError() { } async function findGulpCommand(rootPath: string): Promise<string> { - let platform = process.platform; + const platform = process.platform; if (platform === 'win32' && await exists(path.join(rootPath, 'node_modules', '.bin', 'gulp.cmd'))) { const globalGulp = path.join(process.env.APPDATA ? process.env.APPDATA : '', 'npm', 'gulp.cmd'); @@ -132,7 +132,7 @@ class FolderDetector { } public start(): void { - let pattern = path.join(this._workspaceFolder.uri.fsPath, '{node_modules,gulpfile{.babel.js,.esm.js,.js,.mjs,.cjs,.ts}}'); + const pattern = path.join(this._workspaceFolder.uri.fsPath, '{node_modules,gulpfile{.babel.js,.esm.js,.js,.mjs,.cjs,.ts}}'); this.fileWatcher = vscode.workspace.createFileSystemWatcher(pattern); this.fileWatcher.onDidChange(() => this.promise = undefined); this.fileWatcher.onDidCreate(() => this.promise = undefined); @@ -154,9 +154,9 @@ class FolderDetector { public async getTask(_task: vscode.Task): Promise<vscode.Task | undefined> { const gulpTask = (<any>_task.definition).task; if (gulpTask) { - let kind: GulpTaskDefinition = (<any>_task.definition); - let options: vscode.ShellExecutionOptions = { cwd: this.workspaceFolder.uri.fsPath }; - let task = new vscode.Task(kind, this.workspaceFolder, gulpTask, 'gulp', new vscode.ShellExecution(await this._gulpCommand, [gulpTask], options)); + const kind: GulpTaskDefinition = (<any>_task.definition); + const options: vscode.ShellExecutionOptions = { cwd: this.workspaceFolder.uri.fsPath }; + const task = new vscode.Task(kind, this.workspaceFolder, gulpTask, 'gulp', new vscode.ShellExecution(await this._gulpCommand, [gulpTask], options)); return task; } return undefined; @@ -187,7 +187,7 @@ class FolderDetector { continue; } - let basename = path.basename(filename, ext).toLowerCase(); + const basename = path.basename(filename, ext).toLowerCase(); if (basename === 'gulpfile') { return true; } @@ -203,8 +203,8 @@ class FolderDetector { } private async computeTasks(): Promise<vscode.Task[]> { - let rootPath = this._workspaceFolder.uri.scheme === 'file' ? this._workspaceFolder.uri.fsPath : undefined; - let emptyTasks: vscode.Task[] = []; + const rootPath = this._workspaceFolder.uri.scheme === 'file' ? this._workspaceFolder.uri.fsPath : undefined; + const emptyTasks: vscode.Task[] = []; if (!rootPath) { return emptyTasks; } @@ -213,9 +213,9 @@ class FolderDetector { return emptyTasks; } - let commandLine = `${await this._gulpCommand} --tasks-simple --no-color`; + const commandLine = `${await this._gulpCommand} --tasks-simple --no-color`; try { - let { stdout, stderr } = await exec(commandLine, { cwd: rootPath }); + const { stdout, stderr } = await exec(commandLine, { cwd: rootPath }); if (stderr && stderr.length > 0) { // Filter out "No license field" const errors = stderr.split('\n'); @@ -225,21 +225,21 @@ class FolderDetector { showError(); } } - let result: vscode.Task[] = []; + const result: vscode.Task[] = []; if (stdout) { - let lines = stdout.split(/\r{0,1}\n/); - for (let line of lines) { + const lines = stdout.split(/\r{0,1}\n/); + for (const line of lines) { if (line.length === 0) { continue; } - let kind: GulpTaskDefinition = { + const kind: GulpTaskDefinition = { type: 'gulp', task: line }; - let options: vscode.ShellExecutionOptions = { cwd: this.workspaceFolder.uri.fsPath }; - let task = new vscode.Task(kind, this.workspaceFolder, line, 'gulp', new vscode.ShellExecution(await this._gulpCommand, [line], options)); + const options: vscode.ShellExecutionOptions = { cwd: this.workspaceFolder.uri.fsPath }; + const task = new vscode.Task(kind, this.workspaceFolder, line, 'gulp', new vscode.ShellExecution(await this._gulpCommand, [line], options)); result.push(task); - let lowerCaseLine = line.toLowerCase(); + const lowerCaseLine = line.toLowerCase(); if (isBuildTask(lowerCaseLine)) { task.group = vscode.TaskGroup.Build; } else if (isTestTask(lowerCaseLine)) { @@ -249,7 +249,7 @@ class FolderDetector { } return result; } catch (err) { - let channel = getOutputChannel(); + const channel = getOutputChannel(); if (err.stderr) { channel.appendLine(err.stderr); } @@ -279,7 +279,7 @@ class TaskDetector { } public start(): void { - let folders = vscode.workspace.workspaceFolders; + const folders = vscode.workspace.workspaceFolders; if (folders) { this.updateWorkspaceFolders(folders, []); } @@ -296,15 +296,15 @@ class TaskDetector { } private updateWorkspaceFolders(added: readonly vscode.WorkspaceFolder[], removed: readonly vscode.WorkspaceFolder[]): void { - for (let remove of removed) { - let detector = this.detectors.get(remove.uri.toString()); + for (const remove of removed) { + const detector = this.detectors.get(remove.uri.toString()); if (detector) { detector.dispose(); this.detectors.delete(remove.uri.toString()); } } - for (let add of added) { - let detector = new FolderDetector(add, findGulpCommand(add.uri.fsPath)); + for (const add of added) { + const detector = new FolderDetector(add, findGulpCommand(add.uri.fsPath)); this.detectors.set(add.uri.toString(), detector); if (detector.isEnabled()) { detector.start(); @@ -314,15 +314,15 @@ class TaskDetector { } private updateConfiguration(): void { - for (let detector of this.detectors.values()) { + for (const detector of this.detectors.values()) { detector.dispose(); this.detectors.delete(detector.workspaceFolder.uri.toString()); } - let folders = vscode.workspace.workspaceFolders; + const folders = vscode.workspace.workspaceFolders; if (folders) { - for (let folder of folders) { + for (const folder of folders) { if (!this.detectors.has(folder.uri.toString())) { - let detector = new FolderDetector(folder, findGulpCommand(folder.uri.fsPath)); + const detector = new FolderDetector(folder, findGulpCommand(folder.uri.fsPath)); this.detectors.set(folder.uri.toString(), detector); if (detector.isEnabled()) { detector.start(); @@ -361,13 +361,13 @@ class TaskDetector { } else if (this.detectors.size === 1) { return this.detectors.values().next().value.getTasks(); } else { - let promises: Promise<vscode.Task[]>[] = []; - for (let detector of this.detectors.values()) { + const promises: Promise<vscode.Task[]>[] = []; + for (const detector of this.detectors.values()) { promises.push(detector.getTasks().then((value) => value, () => [])); } return Promise.all(promises).then((values) => { - let result: vscode.Task[] = []; - for (let tasks of values) { + const result: vscode.Task[] = []; + for (const tasks of values) { if (tasks && tasks.length > 0) { result.push(...tasks); } diff --git a/extensions/html-language-features/client/src/htmlClient.ts b/extensions/html-language-features/client/src/htmlClient.ts index 6c44ceb72a8..60accb3870b 100644 --- a/extensions/html-language-features/client/src/htmlClient.ts +++ b/extensions/html-language-features/client/src/htmlClient.ts @@ -131,7 +131,7 @@ export async function startClient(context: ExtensionContext, newLanguageClient: }; // Create the language client and start the client. - let client = newLanguageClient('html', localize('htmlserver.name', 'HTML Language Server'), clientOptions); + const client = newLanguageClient('html', localize('htmlserver.name', 'HTML Language Server'), clientOptions); client.registerProposedFeatures(); await client.start(); @@ -208,7 +208,7 @@ export async function startClient(context: ExtensionContext, newLanguageClient: trimFinalNewlines: filesConfig.get<boolean>('trimFinalNewlines'), insertFinalNewline: filesConfig.get<boolean>('insertFinalNewline'), }; - let params: DocumentRangeFormattingParams = { + const params: DocumentRangeFormattingParams = { textDocument: client.code2ProtocolConverter.asTextDocumentIdentifier(document), range: client.code2ProtocolConverter.asRange(range), options: client.code2ProtocolConverter.asFormattingOptions(options, fileFormattingOptions) @@ -230,18 +230,18 @@ export async function startClient(context: ExtensionContext, newLanguageClient: toDispose.push(languages.registerCompletionItemProvider(documentSelector, { provideCompletionItems(doc, pos) { const results: CompletionItem[] = []; - let lineUntilPos = doc.getText(new Range(new Position(pos.line, 0), pos)); - let match = lineUntilPos.match(regionCompletionRegExpr); + const lineUntilPos = doc.getText(new Range(new Position(pos.line, 0), pos)); + const match = lineUntilPos.match(regionCompletionRegExpr); if (match) { - let range = new Range(new Position(pos.line, match[1].length), pos); - let beginProposal = new CompletionItem('#region', CompletionItemKind.Snippet); + const range = new Range(new Position(pos.line, match[1].length), pos); + const beginProposal = new CompletionItem('#region', CompletionItemKind.Snippet); beginProposal.range = range; beginProposal.insertText = new SnippetString('<!-- #region $1-->'); beginProposal.documentation = localize('folding.start', 'Folding Region Start'); beginProposal.filterText = match[2]; beginProposal.sortText = 'za'; results.push(beginProposal); - let endProposal = new CompletionItem('#endregion', CompletionItemKind.Snippet); + const endProposal = new CompletionItem('#endregion', CompletionItemKind.Snippet); endProposal.range = range; endProposal.insertText = new SnippetString('<!-- #endregion -->'); endProposal.documentation = localize('folding.end', 'Folding Region End'); @@ -249,10 +249,10 @@ export async function startClient(context: ExtensionContext, newLanguageClient: endProposal.sortText = 'zb'; results.push(endProposal); } - let match2 = lineUntilPos.match(htmlSnippetCompletionRegExpr); + const match2 = lineUntilPos.match(htmlSnippetCompletionRegExpr); if (match2 && doc.getText(new Range(new Position(0, 0), pos)).match(htmlSnippetCompletionRegExpr)) { - let range = new Range(new Position(pos.line, match2[1].length), pos); - let snippetProposal = new CompletionItem('HTML sample', CompletionItemKind.Snippet); + const range = new Range(new Position(pos.line, match2[1].length), pos); + const snippetProposal = new CompletionItem('HTML sample', CompletionItemKind.Snippet); snippetProposal.range = range; const content = ['<!DOCTYPE html>', '<html>', diff --git a/extensions/html-language-features/client/src/node/htmlClientMain.ts b/extensions/html-language-features/client/src/node/htmlClientMain.ts index f460d0c1524..11ca6f254f9 100644 --- a/extensions/html-language-features/client/src/node/htmlClientMain.ts +++ b/extensions/html-language-features/client/src/node/htmlClientMain.ts @@ -18,7 +18,7 @@ let client: BaseLanguageClient | undefined; // this method is called when vs code is activated export async function activate(context: ExtensionContext) { - let clientPackageJSON = getPackageInfo(context); + const clientPackageJSON = getPackageInfo(context); telemetry = new TelemetryReporter(clientPackageJSON.name, clientPackageJSON.version, clientPackageJSON.aiKey); const serverMain = `./server/${clientPackageJSON.main.indexOf('/dist/') !== -1 ? 'dist' : 'out'}/node/htmlServerMain`; diff --git a/extensions/html-language-features/server/src/modes/cssMode.ts b/extensions/html-language-features/server/src/modes/cssMode.ts index 6bc02acb510..789ac5c287c 100644 --- a/extensions/html-language-features/server/src/modes/cssMode.ts +++ b/extensions/html-language-features/server/src/modes/cssMode.ts @@ -9,56 +9,56 @@ import { LanguageMode, Workspace, Color, TextDocument, Position, Range, Completi import { HTMLDocumentRegions, CSS_STYLE_RULE } from './embeddedSupport'; export function getCSSMode(cssLanguageService: CSSLanguageService, documentRegions: LanguageModelCache<HTMLDocumentRegions>, workspace: Workspace): LanguageMode { - let embeddedCSSDocuments = getLanguageModelCache<TextDocument>(10, 60, document => documentRegions.get(document).getEmbeddedDocument('css')); - let cssStylesheets = getLanguageModelCache<Stylesheet>(10, 60, document => cssLanguageService.parseStylesheet(document)); + const embeddedCSSDocuments = getLanguageModelCache<TextDocument>(10, 60, document => documentRegions.get(document).getEmbeddedDocument('css')); + const cssStylesheets = getLanguageModelCache<Stylesheet>(10, 60, document => cssLanguageService.parseStylesheet(document)); return { getId() { return 'css'; }, async doValidation(document: TextDocument, settings = workspace.settings) { - let embedded = embeddedCSSDocuments.get(document); + const embedded = embeddedCSSDocuments.get(document); return (cssLanguageService.doValidation(embedded, cssStylesheets.get(embedded), settings && settings.css) as Diagnostic[]); }, async doComplete(document: TextDocument, position: Position, documentContext: DocumentContext, _settings = workspace.settings) { - let embedded = embeddedCSSDocuments.get(document); + const embedded = embeddedCSSDocuments.get(document); const stylesheet = cssStylesheets.get(embedded); return cssLanguageService.doComplete2(embedded, position, stylesheet, documentContext, _settings?.css?.completion) || CompletionList.create(); }, async doHover(document: TextDocument, position: Position, settings = workspace.settings) { - let embedded = embeddedCSSDocuments.get(document); + const embedded = embeddedCSSDocuments.get(document); return cssLanguageService.doHover(embedded, position, cssStylesheets.get(embedded), settings?.css?.hover); }, async findDocumentHighlight(document: TextDocument, position: Position) { - let embedded = embeddedCSSDocuments.get(document); + const embedded = embeddedCSSDocuments.get(document); return cssLanguageService.findDocumentHighlights(embedded, position, cssStylesheets.get(embedded)); }, async findDocumentSymbols(document: TextDocument) { - let embedded = embeddedCSSDocuments.get(document); + const embedded = embeddedCSSDocuments.get(document); return cssLanguageService.findDocumentSymbols(embedded, cssStylesheets.get(embedded)).filter(s => s.name !== CSS_STYLE_RULE); }, async findDefinition(document: TextDocument, position: Position) { - let embedded = embeddedCSSDocuments.get(document); + const embedded = embeddedCSSDocuments.get(document); return cssLanguageService.findDefinition(embedded, position, cssStylesheets.get(embedded)); }, async findReferences(document: TextDocument, position: Position) { - let embedded = embeddedCSSDocuments.get(document); + const embedded = embeddedCSSDocuments.get(document); return cssLanguageService.findReferences(embedded, position, cssStylesheets.get(embedded)); }, async findDocumentColors(document: TextDocument) { - let embedded = embeddedCSSDocuments.get(document); + const embedded = embeddedCSSDocuments.get(document); return cssLanguageService.findDocumentColors(embedded, cssStylesheets.get(embedded)); }, async getColorPresentations(document: TextDocument, color: Color, range: Range) { - let embedded = embeddedCSSDocuments.get(document); + const embedded = embeddedCSSDocuments.get(document); return cssLanguageService.getColorPresentations(embedded, cssStylesheets.get(embedded), color, range); }, async getFoldingRanges(document: TextDocument) { - let embedded = embeddedCSSDocuments.get(document); + const embedded = embeddedCSSDocuments.get(document); return cssLanguageService.getFoldingRanges(embedded, {}); }, async getSelectionRange(document: TextDocument, position: Position) { - let embedded = embeddedCSSDocuments.get(document); + const embedded = embeddedCSSDocuments.get(document); return cssLanguageService.getSelectionRanges(embedded, [position], cssStylesheets.get(embedded))[0]; }, onDocumentRemoved(document: TextDocument) { diff --git a/extensions/html-language-features/server/src/modes/embeddedSupport.ts b/extensions/html-language-features/server/src/modes/embeddedSupport.ts index 941510d3deb..9cc401fdf38 100644 --- a/extensions/html-language-features/server/src/modes/embeddedSupport.ts +++ b/extensions/html-language-features/server/src/modes/embeddedSupport.ts @@ -24,12 +24,12 @@ interface EmbeddedRegion { languageId: string | undefined; start: number; end: n export function getDocumentRegions(languageService: LanguageService, document: TextDocument): HTMLDocumentRegions { - let regions: EmbeddedRegion[] = []; - let scanner = languageService.createScanner(document.getText()); + const regions: EmbeddedRegion[] = []; + const scanner = languageService.createScanner(document.getText()); let lastTagName: string = ''; let lastAttributeName: string | null = null; let languageIdFromType: string | undefined = undefined; - let importedScripts: string[] = []; + const importedScripts: string[] = []; let token = scanner.scan(); while (token !== TokenType.EOS) { @@ -64,11 +64,11 @@ export function getDocumentRegions(languageService: LanguageService, document: T languageIdFromType = undefined; } } else { - let attributeLanguageId = getAttributeLanguage(lastAttributeName!); + const attributeLanguageId = getAttributeLanguage(lastAttributeName!); if (attributeLanguageId) { let start = scanner.getTokenOffset(); let end = scanner.getTokenEnd(); - let firstChar = document.getText()[start]; + const firstChar = document.getText()[start]; if (firstChar === '\'' || firstChar === '"') { start++; end--; @@ -92,14 +92,14 @@ export function getDocumentRegions(languageService: LanguageService, document: T function getLanguageRanges(document: TextDocument, regions: EmbeddedRegion[], range: Range): LanguageRange[] { - let result: LanguageRange[] = []; + const result: LanguageRange[] = []; let currentPos = range ? range.start : Position.create(0, 0); let currentOffset = range ? document.offsetAt(range.start) : 0; - let endOffset = range ? document.offsetAt(range.end) : document.getText().length; - for (let region of regions) { + const endOffset = range ? document.offsetAt(range.end) : document.getText().length; + for (const region of regions) { if (region.end > currentOffset && region.start < endOffset) { - let start = Math.max(region.start, currentOffset); - let startPos = document.positionAt(start); + const start = Math.max(region.start, currentOffset); + const startPos = document.positionAt(start); if (currentOffset < region.start) { result.push({ start: currentPos, @@ -107,8 +107,8 @@ function getLanguageRanges(document: TextDocument, regions: EmbeddedRegion[], ra languageId: 'html' }); } - let end = Math.min(region.end, endOffset); - let endPos = document.positionAt(end); + const end = Math.min(region.end, endOffset); + const endPos = document.positionAt(end); if (end > region.start) { result.push({ start: startPos, @@ -122,7 +122,7 @@ function getLanguageRanges(document: TextDocument, regions: EmbeddedRegion[], ra } } if (currentOffset < endOffset) { - let endPos = range ? range.end : document.positionAt(endOffset); + const endPos = range ? range.end : document.positionAt(endOffset); result.push({ start: currentPos, end: endPos, @@ -133,8 +133,8 @@ function getLanguageRanges(document: TextDocument, regions: EmbeddedRegion[], ra } function getLanguagesInDocument(_document: TextDocument, regions: EmbeddedRegion[]): string[] { - let result = []; - for (let region of regions) { + const result = []; + for (const region of regions) { if (region.languageId && result.indexOf(region.languageId) === -1) { result.push(region.languageId); if (result.length === 3) { @@ -147,8 +147,8 @@ function getLanguagesInDocument(_document: TextDocument, regions: EmbeddedRegion } function getLanguageAtPosition(document: TextDocument, regions: EmbeddedRegion[], position: Position): string | undefined { - let offset = document.offsetAt(position); - for (let region of regions) { + const offset = document.offsetAt(position); + for (const region of regions) { if (region.start <= offset) { if (offset <= region.end) { return region.languageId; @@ -162,10 +162,10 @@ function getLanguageAtPosition(document: TextDocument, regions: EmbeddedRegion[] function getEmbeddedDocument(document: TextDocument, contents: EmbeddedRegion[], languageId: string, ignoreAttributeValues: boolean): TextDocument { let currentPos = 0; - let oldContent = document.getText(); + const oldContent = document.getText(); let result = ''; let lastSuffix = ''; - for (let c of contents) { + for (const c of contents) { if (c.languageId === languageId && (!ignoreAttributeValues || !c.attributeValue)) { result = substituteWithWhitespace(result, currentPos, c.start, oldContent, lastSuffix, getPrefix(c)); result += oldContent.substring(c.start, c.end); @@ -199,7 +199,7 @@ function substituteWithWhitespace(result: string, start: number, end: number, ol let accumulatedWS = 0; result += before; for (let i = start + before.length; i < end; i++) { - let ch = oldContent[i]; + const ch = oldContent[i]; if (ch === '\n' || ch === '\r') { // only write new lines, skip the whitespace accumulatedWS = 0; @@ -225,7 +225,7 @@ function append(result: string, str: string, n: number): string { } function getAttributeLanguage(attributeName: string): string | null { - let match = attributeName.match(/^(style)$|^(on\w+)$/i); + const match = attributeName.match(/^(style)$|^(on\w+)$/i); if (!match) { return null; } diff --git a/extensions/html-language-features/server/src/modes/formatting.ts b/extensions/html-language-features/server/src/modes/formatting.ts index 49c3a0dd68e..aca8ee3b3c2 100644 --- a/extensions/html-language-features/server/src/modes/formatting.ts +++ b/extensions/html-language-features/server/src/modes/formatting.ts @@ -8,14 +8,14 @@ import { pushAll } from '../utils/arrays'; import { isEOL } from '../utils/strings'; export async function format(languageModes: LanguageModes, document: TextDocument, formatRange: Range, formattingOptions: FormattingOptions, settings: Settings | undefined, enabledModes: { [mode: string]: boolean }) { - let result: TextEdit[] = []; + const result: TextEdit[] = []; - let endPos = formatRange.end; + const endPos = formatRange.end; let endOffset = document.offsetAt(endPos); - let content = document.getText(); + const content = document.getText(); if (endPos.character === 0 && endPos.line > 0 && endOffset !== content.length) { // if selection ends after a new line, exclude that new line - let prevLineStart = document.offsetAt(Position.create(endPos.line - 1, 0)); + const prevLineStart = document.offsetAt(Position.create(endPos.line - 1, 0)); while (isEOL(content, endOffset - 1) && endOffset > prevLineStart) { endOffset--; } @@ -31,15 +31,15 @@ export async function format(languageModes: LanguageModes, document: TextDocumen // - no worrying of overlapping edits // make sure we start in html - let allRanges = languageModes.getModesInRange(document, formatRange); + const allRanges = languageModes.getModesInRange(document, formatRange); let i = 0; let startPos = formatRange.start; - let isHTML = (range: LanguageModeRange) => range.mode && range.mode.getId() === 'html'; + const isHTML = (range: LanguageModeRange) => range.mode && range.mode.getId() === 'html'; while (i < allRanges.length && !isHTML(allRanges[i])) { - let range = allRanges[i]; + const range = allRanges[i]; if (!range.attributeValue && range.mode && range.mode.format) { - let edits = await range.mode.format(document, Range.create(startPos, range.end), formattingOptions, settings); + const edits = await range.mode.format(document, Range.create(startPos, range.end), formattingOptions, settings); pushAll(result, edits); } startPos = range.end; @@ -52,23 +52,23 @@ export async function format(languageModes: LanguageModes, document: TextDocumen formatRange = Range.create(startPos, formatRange.end); // perform a html format and apply changes to a new document - let htmlMode = languageModes.getMode('html')!; - let htmlEdits = await htmlMode.format!(document, formatRange, formattingOptions, settings); - let htmlFormattedContent = TextDocument.applyEdits(document, htmlEdits); - let newDocument = TextDocument.create(document.uri + '.tmp', document.languageId, document.version, htmlFormattedContent); + const htmlMode = languageModes.getMode('html')!; + const htmlEdits = await htmlMode.format!(document, formatRange, formattingOptions, settings); + const htmlFormattedContent = TextDocument.applyEdits(document, htmlEdits); + const newDocument = TextDocument.create(document.uri + '.tmp', document.languageId, document.version, htmlFormattedContent); try { // run embedded formatters on html formatted content: - formatters see correct initial indent - let afterFormatRangeLength = document.getText().length - document.offsetAt(formatRange.end); // length of unchanged content after replace range - let newFormatRange = Range.create(formatRange.start, newDocument.positionAt(htmlFormattedContent.length - afterFormatRangeLength)); - let embeddedRanges = languageModes.getModesInRange(newDocument, newFormatRange); + const afterFormatRangeLength = document.getText().length - document.offsetAt(formatRange.end); // length of unchanged content after replace range + const newFormatRange = Range.create(formatRange.start, newDocument.positionAt(htmlFormattedContent.length - afterFormatRangeLength)); + const embeddedRanges = languageModes.getModesInRange(newDocument, newFormatRange); - let embeddedEdits: TextEdit[] = []; + const embeddedEdits: TextEdit[] = []; - for (let r of embeddedRanges) { - let mode = r.mode; + for (const r of embeddedRanges) { + const mode = r.mode; if (mode && mode.format && enabledModes[mode.getId()] && !r.attributeValue) { - let edits = await mode.format(newDocument, r, formattingOptions, settings); - for (let edit of edits) { + const edits = await mode.format(newDocument, r, formattingOptions, settings); + for (const edit of edits) { embeddedEdits.push(edit); } } @@ -80,8 +80,8 @@ export async function format(languageModes: LanguageModes, document: TextDocumen } // apply all embedded format edits and create a single edit for all changes - let resultContent = TextDocument.applyEdits(newDocument, embeddedEdits); - let resultReplaceText = resultContent.substring(document.offsetAt(formatRange.start), resultContent.length - afterFormatRangeLength); + const resultContent = TextDocument.applyEdits(newDocument, embeddedEdits); + const resultReplaceText = resultContent.substring(document.offsetAt(formatRange.start), resultContent.length - afterFormatRangeLength); result.push(TextEdit.replace(formatRange, resultReplaceText)); return result; diff --git a/extensions/html-language-features/server/src/modes/htmlFolding.ts b/extensions/html-language-features/server/src/modes/htmlFolding.ts index 78674fb0bc4..38a84e5048a 100644 --- a/extensions/html-language-features/server/src/modes/htmlFolding.ts +++ b/extensions/html-language-features/server/src/modes/htmlFolding.ts @@ -7,16 +7,16 @@ import { TextDocument, FoldingRange, Position, Range, LanguageModes, LanguageMod import { CancellationToken } from 'vscode-languageserver'; export async function getFoldingRanges(languageModes: LanguageModes, document: TextDocument, maxRanges: number | undefined, _cancellationToken: CancellationToken | null): Promise<FoldingRange[]> { - let htmlMode = languageModes.getMode('html'); - let range = Range.create(Position.create(0, 0), Position.create(document.lineCount, 0)); + const htmlMode = languageModes.getMode('html'); + const range = Range.create(Position.create(0, 0), Position.create(document.lineCount, 0)); let result: FoldingRange[] = []; if (htmlMode && htmlMode.getFoldingRanges) { result.push(... await htmlMode.getFoldingRanges(document)); } // cache folding ranges per mode - let rangesPerMode: { [mode: string]: FoldingRange[] } = Object.create(null); - let getRangesForMode = async (mode: LanguageMode) => { + const rangesPerMode: { [mode: string]: FoldingRange[] } = Object.create(null); + const getRangesForMode = async (mode: LanguageMode) => { if (mode.getFoldingRanges) { let ranges = rangesPerMode[mode.getId()]; if (!Array.isArray(ranges)) { @@ -28,9 +28,9 @@ export async function getFoldingRanges(languageModes: LanguageModes, document: T return []; }; - let modeRanges = languageModes.getModesInRange(document, range); - for (let modeRange of modeRanges) { - let mode = modeRange.mode; + const modeRanges = languageModes.getModesInRange(document, range); + for (const modeRange of modeRanges) { + const mode = modeRange.mode; if (mode && mode !== htmlMode && !modeRange.attributeValue) { const ranges = await getRangesForMode(mode); result.push(...ranges.filter(r => r.startLine >= modeRange.start.line && r.endLine < modeRange.end.line)); @@ -54,11 +54,11 @@ function limitRanges(ranges: FoldingRange[], maxRanges: number) { // compute each range's nesting level in 'nestingLevels'. // count the number of ranges for each level in 'nestingLevelCounts' let top: FoldingRange | undefined = undefined; - let previous: FoldingRange[] = []; - let nestingLevels: number[] = []; - let nestingLevelCounts: number[] = []; + const previous: FoldingRange[] = []; + const nestingLevels: number[] = []; + const nestingLevelCounts: number[] = []; - let setNestingLevel = (index: number, level: number) => { + const setNestingLevel = (index: number, level: number) => { nestingLevels[index] = level; if (level < 30) { nestingLevelCounts[level] = (nestingLevelCounts[level] || 0) + 1; @@ -67,7 +67,7 @@ function limitRanges(ranges: FoldingRange[], maxRanges: number) { // compute nesting levels and sanitize for (let i = 0; i < ranges.length; i++) { - let entry = ranges[i]; + const entry = ranges[i]; if (!top) { top = entry; setNestingLevel(i, 0); @@ -93,7 +93,7 @@ function limitRanges(ranges: FoldingRange[], maxRanges: number) { let entries = 0; let maxLevel = 0; for (let i = 0; i < nestingLevelCounts.length; i++) { - let n = nestingLevelCounts[i]; + const n = nestingLevelCounts[i]; if (n) { if (n + entries > maxRanges) { maxLevel = i; @@ -102,9 +102,9 @@ function limitRanges(ranges: FoldingRange[], maxRanges: number) { entries += n; } } - let result = []; + const result = []; for (let i = 0; i < ranges.length; i++) { - let level = nestingLevels[i]; + const level = nestingLevels[i]; if (typeof level === 'number') { if (level < maxLevel || (level === maxLevel && entries++ < maxRanges)) { result.push(ranges[i]); diff --git a/extensions/html-language-features/server/src/modes/javascriptMode.ts b/extensions/html-language-features/server/src/modes/javascriptMode.ts index a119a9248ae..10a70dbe99a 100644 --- a/extensions/html-language-features/server/src/modes/javascriptMode.ts +++ b/extensions/html-language-features/server/src/modes/javascriptMode.ts @@ -95,10 +95,10 @@ function getLanguageServiceHost(scriptKind: ts.ScriptKind) { export function getJavaScriptMode(documentRegions: LanguageModelCache<HTMLDocumentRegions>, languageId: 'javascript' | 'typescript', workspace: Workspace): LanguageMode { - let jsDocuments = getLanguageModelCache<TextDocument>(10, 60, document => documentRegions.get(document).getEmbeddedDocument(languageId)); + const jsDocuments = getLanguageModelCache<TextDocument>(10, 60, document => documentRegions.get(document).getEmbeddedDocument(languageId)); const host = getLanguageServiceHost(languageId === 'javascript' ? ts.ScriptKind.JS : ts.ScriptKind.TS); - let globalSettings: Settings = {}; + const globalSettings: Settings = {}; return { getId() { @@ -122,12 +122,12 @@ export function getJavaScriptMode(documentRegions: LanguageModelCache<HTMLDocume async doComplete(document: TextDocument, position: Position, _documentContext: DocumentContext): Promise<CompletionList> { const jsDocument = jsDocuments.get(document); const jsLanguageService = await host.getLanguageService(jsDocument); - let offset = jsDocument.offsetAt(position); - let completions = jsLanguageService.getCompletionsAtPosition(jsDocument.uri, offset, { includeExternalModuleExports: false, includeInsertTextCompletions: false }); + const offset = jsDocument.offsetAt(position); + const completions = jsLanguageService.getCompletionsAtPosition(jsDocument.uri, offset, { includeExternalModuleExports: false, includeInsertTextCompletions: false }); if (!completions) { return { isIncomplete: false, items: [] }; } - let replaceRange = convertRange(jsDocument, getWordAtText(jsDocument.getText(), offset, JS_WORD_REGEX)); + const replaceRange = convertRange(jsDocument, getWordAtText(jsDocument.getText(), offset, JS_WORD_REGEX)); return { isIncomplete: false, items: completions.entries.map(entry => { @@ -152,7 +152,7 @@ export function getJavaScriptMode(documentRegions: LanguageModelCache<HTMLDocume if (isCompletionItemData(item.data)) { const jsDocument = jsDocuments.get(document); const jsLanguageService = await host.getLanguageService(jsDocument); - let details = jsLanguageService.getCompletionEntryDetails(jsDocument.uri, item.data.offset, item.label, undefined, undefined, undefined, undefined); + const details = jsLanguageService.getCompletionEntryDetails(jsDocument.uri, item.data.offset, item.label, undefined, undefined, undefined, undefined); if (details) { item.detail = ts.displayPartsToString(details.displayParts); item.documentation = ts.displayPartsToString(details.documentation); @@ -164,7 +164,7 @@ export function getJavaScriptMode(documentRegions: LanguageModelCache<HTMLDocume async doHover(document: TextDocument, position: Position): Promise<Hover | null> { const jsDocument = jsDocuments.get(document); const jsLanguageService = await host.getLanguageService(jsDocument); - let info = jsLanguageService.getQuickInfoAtPosition(jsDocument.uri, jsDocument.offsetAt(position)); + const info = jsLanguageService.getQuickInfoAtPosition(jsDocument.uri, jsDocument.offsetAt(position)); if (info) { const contents = ts.displayPartsToString(info.displayParts); return { @@ -177,16 +177,16 @@ export function getJavaScriptMode(documentRegions: LanguageModelCache<HTMLDocume async doSignatureHelp(document: TextDocument, position: Position): Promise<SignatureHelp | null> { const jsDocument = jsDocuments.get(document); const jsLanguageService = await host.getLanguageService(jsDocument); - let signHelp = jsLanguageService.getSignatureHelpItems(jsDocument.uri, jsDocument.offsetAt(position), undefined); + const signHelp = jsLanguageService.getSignatureHelpItems(jsDocument.uri, jsDocument.offsetAt(position), undefined); if (signHelp) { - let ret: SignatureHelp = { + const ret: SignatureHelp = { activeSignature: signHelp.selectedItemIndex, activeParameter: signHelp.argumentIndex, signatures: [] }; signHelp.items.forEach(item => { - let signature: SignatureInformation = { + const signature: SignatureInformation = { label: '', documentation: undefined, parameters: [] @@ -194,8 +194,8 @@ export function getJavaScriptMode(documentRegions: LanguageModelCache<HTMLDocume signature.label += ts.displayPartsToString(item.prefixDisplayParts); item.parameters.forEach((p, i, a) => { - let label = ts.displayPartsToString(p.displayParts); - let parameter: ParameterInformation = { + const label = ts.displayPartsToString(p.displayParts); + const parameter: ParameterInformation = { label: label, documentation: ts.displayPartsToString(p.documentation) }; @@ -252,14 +252,14 @@ export function getJavaScriptMode(documentRegions: LanguageModelCache<HTMLDocume async findDocumentSymbols(document: TextDocument): Promise<SymbolInformation[]> { const jsDocument = jsDocuments.get(document); const jsLanguageService = await host.getLanguageService(jsDocument); - let items = jsLanguageService.getNavigationBarItems(jsDocument.uri); + const items = jsLanguageService.getNavigationBarItems(jsDocument.uri); if (items) { - let result: SymbolInformation[] = []; - let existing = Object.create(null); - let collectSymbols = (item: ts.NavigationBarItem, containerLabel?: string) => { - let sig = item.text + item.kind + item.spans[0].start; + const result: SymbolInformation[] = []; + const existing = Object.create(null); + const collectSymbols = (item: ts.NavigationBarItem, containerLabel?: string) => { + const sig = item.text + item.kind + item.spans[0].start; if (item.kind !== 'script' && !existing[sig]) { - let symbol: SymbolInformation = { + const symbol: SymbolInformation = { name: item.text, kind: convertSymbolKind(item.kind), location: { @@ -274,7 +274,7 @@ export function getJavaScriptMode(documentRegions: LanguageModelCache<HTMLDocume } if (item.childItems && item.childItems.length > 0) { - for (let child of item.childItems) { + for (const child of item.childItems) { collectSymbols(child, containerLabel); } } @@ -289,7 +289,7 @@ export function getJavaScriptMode(documentRegions: LanguageModelCache<HTMLDocume async findDefinition(document: TextDocument, position: Position): Promise<Definition | null> { const jsDocument = jsDocuments.get(document); const jsLanguageService = await host.getLanguageService(jsDocument); - let definition = jsLanguageService.getDefinitionAtPosition(jsDocument.uri, jsDocument.offsetAt(position)); + const definition = jsLanguageService.getDefinitionAtPosition(jsDocument.uri, jsDocument.offsetAt(position)); if (definition) { return definition.filter(d => d.fileName === jsDocument.uri).map(d => { return { @@ -303,7 +303,7 @@ export function getJavaScriptMode(documentRegions: LanguageModelCache<HTMLDocume async findReferences(document: TextDocument, position: Position): Promise<Location[]> { const jsDocument = jsDocuments.get(document); const jsLanguageService = await host.getLanguageService(jsDocument); - let references = jsLanguageService.getReferencesAtPosition(jsDocument.uri, jsDocument.offsetAt(position)); + const references = jsLanguageService.getReferencesAtPosition(jsDocument.uri, jsDocument.offsetAt(position)); if (references) { return references.filter(d => d.fileName === jsDocument.uri).map(d => { return { @@ -328,21 +328,21 @@ export function getJavaScriptMode(documentRegions: LanguageModelCache<HTMLDocume const jsDocument = documentRegions.get(document).getEmbeddedDocument('javascript', true); const jsLanguageService = await host.getLanguageService(jsDocument); - let formatterSettings = settings && settings.javascript && settings.javascript.format; + const formatterSettings = settings && settings.javascript && settings.javascript.format; - let initialIndentLevel = computeInitialIndent(document, range, formatParams); - let formatSettings = convertOptions(formatParams, formatterSettings, initialIndentLevel + 1); - let start = jsDocument.offsetAt(range.start); + const initialIndentLevel = computeInitialIndent(document, range, formatParams); + const formatSettings = convertOptions(formatParams, formatterSettings, initialIndentLevel + 1); + const start = jsDocument.offsetAt(range.start); let end = jsDocument.offsetAt(range.end); let lastLineRange = null; if (range.end.line > range.start.line && (range.end.character === 0 || isWhitespaceOnly(jsDocument.getText().substr(end - range.end.character, range.end.character)))) { end -= range.end.character; lastLineRange = Range.create(Position.create(range.end.line, 0), range.end); } - let edits = jsLanguageService.getFormattingEditsForRange(jsDocument.uri, start, end, formatSettings); + const edits = jsLanguageService.getFormattingEditsForRange(jsDocument.uri, start, end, formatSettings); if (edits) { - let result = []; - for (let edit of edits) { + const result = []; + for (const edit of edits) { if (edit.span.start >= start && edit.span.start + edit.span.length <= end) { result.push({ range: convertRange(jsDocument, edit.span), @@ -363,15 +363,15 @@ export function getJavaScriptMode(documentRegions: LanguageModelCache<HTMLDocume async getFoldingRanges(document: TextDocument): Promise<FoldingRange[]> { const jsDocument = jsDocuments.get(document); const jsLanguageService = await host.getLanguageService(jsDocument); - let spans = jsLanguageService.getOutliningSpans(jsDocument.uri); - let ranges: FoldingRange[] = []; - for (let span of spans) { - let curr = convertRange(jsDocument, span.textSpan); - let startLine = curr.start.line; - let endLine = curr.end.line; + const spans = jsLanguageService.getOutliningSpans(jsDocument.uri); + const ranges: FoldingRange[] = []; + for (const span of spans) { + const curr = convertRange(jsDocument, span.textSpan); + const startLine = curr.start.line; + const endLine = curr.end.line; if (startLine < endLine) { - let foldingRange: FoldingRange = { startLine, endLine }; - let match = document.getText(curr).match(/^\s*\/(?:(\/\s*#(?:end)?region\b)|(\*|\/))/); + const foldingRange: FoldingRange = { startLine, endLine }; + const match = document.getText(curr).match(/^\s*\/(?:(\/\s*#(?:end)?region\b)|(\*|\/))/); if (match) { foldingRange.kind = match[1] ? FoldingRangeKind.Region : FoldingRangeKind.Comment; } @@ -563,14 +563,14 @@ function convertOptions(options: FormattingOptions, formatSettings: any, initial } function computeInitialIndent(document: TextDocument, range: Range, options: FormattingOptions) { - let lineStart = document.offsetAt(Position.create(range.start.line, 0)); - let content = document.getText(); + const lineStart = document.offsetAt(Position.create(range.start.line, 0)); + const content = document.getText(); let i = lineStart; let nChars = 0; - let tabSize = options.tabSize || 4; + const tabSize = options.tabSize || 4; while (i < content.length) { - let ch = content.charAt(i); + const ch = content.charAt(i); if (ch === ' ') { nChars++; } else if (ch === '\t') { diff --git a/extensions/html-language-features/server/src/modes/languageModes.ts b/extensions/html-language-features/server/src/modes/languageModes.ts index 59cc742b2b8..620b0914b1b 100644 --- a/extensions/html-language-features/server/src/modes/languageModes.ts +++ b/extensions/html-language-features/server/src/modes/languageModes.ts @@ -111,7 +111,7 @@ export function getLanguageModes(supportedLanguages: { [languageId: string]: boo const htmlLanguageService = getHTMLLanguageService({ clientCapabilities, fileSystemProvider: requestService }); const cssLanguageService = getCSSLanguageService({ clientCapabilities, fileSystemProvider: requestService }); - let documentRegions = getLanguageModelCache<HTMLDocumentRegions>(10, 60, document => getDocumentRegions(htmlLanguageService, document)); + const documentRegions = getLanguageModelCache<HTMLDocumentRegions>(10, 60, document => getDocumentRegions(htmlLanguageService, document)); let modelCaches: LanguageModelCache<any>[] = []; modelCaches.push(documentRegions); @@ -130,7 +130,7 @@ export function getLanguageModes(supportedLanguages: { [languageId: string]: boo htmlLanguageService.setDataProviders(true, dataProviders); }, getModeAtPosition(document: TextDocument, position: Position): LanguageMode | undefined { - let languageId = documentRegions.get(document).getLanguageAtPosition(position); + const languageId = documentRegions.get(document).getLanguageAtPosition(position); if (languageId) { return modes[languageId]; } @@ -147,9 +147,9 @@ export function getLanguageModes(supportedLanguages: { [languageId: string]: boo }); }, getAllModesInDocument(document: TextDocument): LanguageMode[] { - let result = []; - for (let languageId of documentRegions.get(document).getLanguagesInDocument()) { - let mode = modes[languageId]; + const result = []; + for (const languageId of documentRegions.get(document).getLanguagesInDocument()) { + const mode = modes[languageId]; if (mode) { result.push(mode); } @@ -157,9 +157,9 @@ export function getLanguageModes(supportedLanguages: { [languageId: string]: boo return result; }, getAllModes(): LanguageMode[] { - let result = []; - for (let languageId in modes) { - let mode = modes[languageId]; + const result = []; + for (const languageId in modes) { + const mode = modes[languageId]; if (mode) { result.push(mode); } @@ -171,14 +171,14 @@ export function getLanguageModes(supportedLanguages: { [languageId: string]: boo }, onDocumentRemoved(document: TextDocument) { modelCaches.forEach(mc => mc.onDocumentRemoved(document)); - for (let mode in modes) { + for (const mode in modes) { modes[mode].onDocumentRemoved(document); } }, dispose(): void { modelCaches.forEach(mc => mc.dispose()); modelCaches = []; - for (let mode in modes) { + for (const mode in modes) { modes[mode].dispose(); } modes = {}; diff --git a/extensions/html-language-features/server/src/modes/selectionRanges.ts b/extensions/html-language-features/server/src/modes/selectionRanges.ts index 1db5cb4d15c..8624f103e04 100644 --- a/extensions/html-language-features/server/src/modes/selectionRanges.ts +++ b/extensions/html-language-features/server/src/modes/selectionRanges.ts @@ -12,7 +12,7 @@ export async function getSelectionRanges(languageModes: LanguageModes, document: const htmlRange = await htmlMode!.getSelectionRange!(document, position); const mode = languageModes.getModeAtPosition(document, position); if (mode && mode.getSelectionRange) { - let range = await mode.getSelectionRange(document, position); + const range = await mode.getSelectionRange(document, position); let top = range; while (top.parent && insideRangeButNotSame(htmlRange.range, top.parent.range)) { top = top.parent; diff --git a/extensions/html-language-features/server/src/modes/semanticTokens.ts b/extensions/html-language-features/server/src/modes/semanticTokens.ts index 38b0b23c519..dbfffcabdf5 100644 --- a/extensions/html-language-features/server/src/modes/semanticTokens.ts +++ b/extensions/html-language-features/server/src/modes/semanticTokens.ts @@ -23,7 +23,7 @@ export function newSemanticTokenProvider(languageModes: LanguageModes): Semantic const legend: { types: string[]; modifiers: string[] } = { types: [], modifiers: [] }; const legendMappings: { [modeId: string]: LegendMapping } = {}; - for (let mode of languageModes.getAllModes()) { + for (const mode of languageModes.getAllModes()) { if (mode.getSemanticTokenLegend && mode.getSemanticTokens) { const modeLegend = mode.getSemanticTokenLegend(); legendMappings[mode.getId()] = { types: createMapping(modeLegend.types, legend.types), modifiers: createMapping(modeLegend.modifiers, legend.modifiers) }; @@ -34,13 +34,13 @@ export function newSemanticTokenProvider(languageModes: LanguageModes): Semantic legend, async getSemanticTokens(document: TextDocument, ranges?: Range[]): Promise<number[]> { const allTokens: SemanticTokenData[] = []; - for (let mode of languageModes.getAllModesInDocument(document)) { + for (const mode of languageModes.getAllModesInDocument(document)) { if (mode.getSemanticTokens) { const mapping = legendMappings[mode.getId()]; const tokens = await mode.getSemanticTokens(document); applyTypesMapping(tokens, mapping.types); applyModifiersMapping(tokens, mapping.modifiers); - for (let token of tokens) { + for (const token of tokens) { allTokens.push(token); } } @@ -68,7 +68,7 @@ function createMapping(origLegend: string[], newLegend: string[]): number[] | un function applyTypesMapping(tokens: SemanticTokenData[], typesMapping: number[] | undefined): void { if (typesMapping) { - for (let token of tokens) { + for (const token of tokens) { token.typeIdx = typesMapping[token.typeIdx]; } } @@ -76,7 +76,7 @@ function applyTypesMapping(tokens: SemanticTokenData[], typesMapping: number[] | function applyModifiersMapping(tokens: SemanticTokenData[], modifiersMapping: number[] | undefined): void { if (modifiersMapping) { - for (let token of tokens) { + for (const token of tokens) { let modifierSet = token.modifierSet; if (modifierSet) { let index = 0; @@ -109,7 +109,7 @@ function encodeTokens(tokens: SemanticTokenData[], ranges: Range[] | undefined, let prefLine = 0; let prevChar = 0; - let encodedResult: number[] = []; + const encodedResult: number[] = []; for (let k = 0; k < resultTokens.length && currRange; k++) { const curr = resultTokens[k]; diff --git a/extensions/html-language-features/server/src/requests.ts b/extensions/html-language-features/server/src/requests.ts index 9ece22ac66e..3899cf9eff5 100644 --- a/extensions/html-language-features/server/src/requests.ts +++ b/extensions/html-language-features/server/src/requests.ts @@ -149,7 +149,7 @@ export function normalizePath(parts: string[]): string { export function joinPath(uriString: string, ...paths: string[]): string { const uri = URI.parse(uriString); const parts = uri.path.split('/'); - for (let path of paths) { + for (const path of paths) { parts.push(...path.split('/')); } return uri.with({ path: normalizePath(parts) }).toString(); diff --git a/extensions/html-language-features/server/src/test/completions.test.ts b/extensions/html-language-features/server/src/test/completions.test.ts index 223234ec5fa..fbad266e2de 100644 --- a/extensions/html-language-features/server/src/test/completions.test.ts +++ b/extensions/html-language-features/server/src/test/completions.test.ts @@ -19,7 +19,7 @@ export interface ItemDescription { } export function assertCompletion(completions: CompletionList, expected: ItemDescription, document: TextDocument) { - let matches = completions.items.filter(completion => { + const matches = completions.items.filter(completion => { return completion.label === expected.label; }); if (expected.notAvailable) { @@ -28,7 +28,7 @@ export function assertCompletion(completions: CompletionList, expected: ItemDesc } assert.strictEqual(matches.length, 1, `${expected.label} should only existing once: Actual: ${completions.items.map(c => c.label).join(', ')}`); - let match = matches[0]; + const match = matches[0]; if (expected.documentation) { assert.strictEqual(match.documentation, expected.documentation); } @@ -47,28 +47,28 @@ export function assertCompletion(completions: CompletionList, expected: ItemDesc const testUri = 'test://test/test.html'; export async function testCompletionFor(value: string, expected: { count?: number; items?: ItemDescription[] }, uri = testUri, workspaceFolders?: WorkspaceFolder[]): Promise<void> { - let offset = value.indexOf('|'); + const offset = value.indexOf('|'); value = value.substr(0, offset) + value.substr(offset + 1); - let workspace = { + const workspace = { settings: {}, folders: workspaceFolders || [{ name: 'x', uri: uri.substr(0, uri.lastIndexOf('/')) }] }; - let document = TextDocument.create(uri, 'html', 0, value); - let position = document.positionAt(offset); + const document = TextDocument.create(uri, 'html', 0, value); + const position = document.positionAt(offset); const context = getDocumentContext(uri, workspace.folders); const languageModes = getLanguageModes({ css: true, javascript: true }, workspace, ClientCapabilities.LATEST, getNodeFileFS()); const mode = languageModes.getModeAtPosition(document, position)!; - let list = await mode.doComplete!(document, position, context); + const list = await mode.doComplete!(document, position, context); if (expected.count) { assert.strictEqual(list.items.length, expected.count); } if (expected.items) { - for (let item of expected.items) { + for (const item of expected.items) { assertCompletion(list, item, document); } } diff --git a/extensions/html-language-features/server/src/test/documentContext.test.ts b/extensions/html-language-features/server/src/test/documentContext.test.ts index 29ba6880972..2bddeda0eb3 100644 --- a/extensions/html-language-features/server/src/test/documentContext.test.ts +++ b/extensions/html-language-features/server/src/test/documentContext.test.ts @@ -11,7 +11,7 @@ suite('HTML Document Context', () => { const docURI = 'file:///users/test/folder/test.html'; const rootFolders = [{ name: '', uri: 'file:///users/test/' }]; - let context = getDocumentContext(docURI, rootFolders); + const context = getDocumentContext(docURI, rootFolders); assert.strictEqual(context.resolveReference('/', docURI), 'file:///users/test/'); assert.strictEqual(context.resolveReference('/message.html', docURI), 'file:///users/test/message.html'); assert.strictEqual(context.resolveReference('message.html', docURI), 'file:///users/test/folder/message.html'); diff --git a/extensions/html-language-features/server/src/test/formatting.test.ts b/extensions/html-language-features/server/src/test/formatting.test.ts index 140942868e4..775a7b260fd 100644 --- a/extensions/html-language-features/server/src/test/formatting.test.ts +++ b/extensions/html-language-features/server/src/test/formatting.test.ts @@ -15,7 +15,7 @@ import { getNodeFileFS } from '../node/nodeFs'; suite('HTML Embedded Formatting', () => { async function assertFormat(value: string, expected: string, options?: any, formatOptions?: FormattingOptions, message?: string): Promise<void> { - let workspace = { + const workspace = { settings: options, folders: [{ name: 'foo', uri: 'test://foo' }] }; @@ -32,21 +32,21 @@ suite('HTML Embedded Formatting', () => { rangeStartOffset = 0; rangeEndOffset = value.length; } - let document = TextDocument.create('test://test/test.html', 'html', 0, value); - let range = Range.create(document.positionAt(rangeStartOffset), document.positionAt(rangeEndOffset)); + const document = TextDocument.create('test://test/test.html', 'html', 0, value); + const range = Range.create(document.positionAt(rangeStartOffset), document.positionAt(rangeEndOffset)); if (!formatOptions) { formatOptions = FormattingOptions.create(2, true); } - let result = await format(languageModes, document, range, formatOptions, undefined, { css: true, javascript: true }); + const result = await format(languageModes, document, range, formatOptions, undefined, { css: true, javascript: true }); - let actual = TextDocument.applyEdits(document, result); + const actual = TextDocument.applyEdits(document, result); assert.strictEqual(actual, expected, message); } async function assertFormatWithFixture(fixtureName: string, expectedPath: string, options?: any, formatOptions?: FormattingOptions): Promise<void> { - let input = fs.readFileSync(path.join(__dirname, '..', '..', 'src', 'test', 'fixtures', 'inputs', fixtureName)).toString().replace(/\r\n/mg, '\n'); - let expected = fs.readFileSync(path.join(__dirname, '..', '..', 'src', 'test', 'fixtures', 'expected', expectedPath)).toString().replace(/\r\n/mg, '\n'); + const input = fs.readFileSync(path.join(__dirname, '..', '..', 'src', 'test', 'fixtures', 'inputs', fixtureName)).toString().replace(/\r\n/mg, '\n'); + const expected = fs.readFileSync(path.join(__dirname, '..', '..', 'src', 'test', 'fixtures', 'expected', expectedPath)).toString().replace(/\r\n/mg, '\n'); await assertFormat(input, expected, options, formatOptions, expectedPath); } @@ -85,7 +85,7 @@ suite('HTML Embedded Formatting', () => { }); test('EndWithNewline', async () => { - let options = { + const options = { html: { format: { endWithNewline: true @@ -160,7 +160,7 @@ suite('HTML Embedded Formatting', () => { ); }); test('#58435', async () => { - let options = { + const options = { html: { format: { contentUnformatted: 'textarea' diff --git a/extensions/html-language-features/server/src/test/selectionRanges.test.ts b/extensions/html-language-features/server/src/test/selectionRanges.test.ts index afd286e3db5..28e32dc2903 100644 --- a/extensions/html-language-features/server/src/test/selectionRanges.test.ts +++ b/extensions/html-language-features/server/src/test/selectionRanges.test.ts @@ -15,7 +15,7 @@ async function assertRanges(content: string, expected: (number | string)[][]): P const offset = content.indexOf('|'); content = content.substr(0, offset) + content.substr(offset + 1); - let workspace = { + const workspace = { settings: {}, folders: [{ name: 'foo', uri: 'test://foo' }] }; diff --git a/extensions/html-language-features/server/src/test/semanticTokens.test.ts b/extensions/html-language-features/server/src/test/semanticTokens.test.ts index 2db27dd9f17..4f479d9163d 100644 --- a/extensions/html-language-features/server/src/test/semanticTokens.test.ts +++ b/extensions/html-language-features/server/src/test/semanticTokens.test.ts @@ -28,7 +28,7 @@ async function assertTokens(lines: string[], expected: ExpectedToken[], ranges?: const legend = semanticTokensProvider.legend; const actual = await semanticTokensProvider.getSemanticTokens(document, ranges); - let actualRanges = []; + const actualRanges = []; let lastLine = 0; let lastCharacter = 0; for (let i = 0; i < actual.length; i += 5) { diff --git a/extensions/html-language-features/server/src/utils/arrays.ts b/extensions/html-language-features/server/src/utils/arrays.ts index 16b5b46475d..265e8bd4d0a 100644 --- a/extensions/html-language-features/server/src/utils/arrays.ts +++ b/extensions/html-language-features/server/src/utils/arrays.ts @@ -40,7 +40,7 @@ function _divideAndMerge<T>(data: T[], compare: (a: T, b: T) => number): void { let rightIdx = 0; let i = 0; while (leftIdx < left.length && rightIdx < right.length) { - let ret = compare(left[leftIdx], right[rightIdx]); + const ret = compare(left[leftIdx], right[rightIdx]); if (ret <= 0) { // smaller_equal -> take left to preserve order data[i++] = left[leftIdx++]; @@ -62,8 +62,8 @@ export function binarySearch<T>(array: T[], key: T, comparator: (op1: T, op2: T) high = array.length - 1; while (low <= high) { - let mid = ((low + high) / 2) | 0; - let comp = comparator(array[mid], key); + const mid = ((low + high) / 2) | 0; + const comp = comparator(array[mid], key); if (comp < 0) { low = mid + 1; } else if (comp > 0) { diff --git a/extensions/html-language-features/server/src/utils/documentContext.ts b/extensions/html-language-features/server/src/utils/documentContext.ts index f8bc67f8b10..fb1a6622674 100644 --- a/extensions/html-language-features/server/src/utils/documentContext.ts +++ b/extensions/html-language-features/server/src/utils/documentContext.ts @@ -10,7 +10,7 @@ import { resolvePath } from '../requests'; export function getDocumentContext(documentUri: string, workspaceFolders: WorkspaceFolder[]): DocumentContext { function getRootFolder(): string | undefined { - for (let folder of workspaceFolders) { + for (const folder of workspaceFolders) { let folderURI = folder.uri; if (!endsWith(folderURI, '/')) { folderURI = folderURI + '/'; @@ -25,7 +25,7 @@ export function getDocumentContext(documentUri: string, workspaceFolders: Worksp return { resolveReference: (ref: string, base = documentUri) => { if (ref[0] === '/') { // resolve absolute path against the current workspace folder - let folderUri = getRootFolder(); + const folderUri = getRootFolder(); if (folderUri) { return folderUri + ref.substr(1); } diff --git a/extensions/html-language-features/server/src/utils/runner.ts b/extensions/html-language-features/server/src/utils/runner.ts index 69e5c05e61f..6be8c9f2128 100644 --- a/extensions/html-language-features/server/src/utils/runner.ts +++ b/extensions/html-language-features/server/src/utils/runner.ts @@ -8,7 +8,7 @@ import { RuntimeEnvironment } from '../htmlServer'; export function formatError(message: string, err: any): string { if (err instanceof Error) { - let error = <Error>err; + const error = <Error>err; return `${message}: ${error.message}\n${error.stack}`; } else if (typeof err === 'string') { return `${message}: ${err}`; diff --git a/extensions/html-language-features/server/src/utils/strings.ts b/extensions/html-language-features/server/src/utils/strings.ts index 00a2ddcbd51..c79f41df8f2 100644 --- a/extensions/html-language-features/server/src/utils/strings.ts +++ b/extensions/html-language-features/server/src/utils/strings.ts @@ -8,11 +8,11 @@ export function getWordAtText(text: string, offset: number, wordDefinition: RegE while (lineStart > 0 && !isNewlineCharacter(text.charCodeAt(lineStart - 1))) { lineStart--; } - let offsetInLine = offset - lineStart; - let lineText = text.substr(lineStart); + const offsetInLine = offset - lineStart; + const lineText = text.substr(lineStart); // make a copy of the regex as to not keep the state - let flags = wordDefinition.ignoreCase ? 'gi' : 'g'; + const flags = wordDefinition.ignoreCase ? 'gi' : 'g'; wordDefinition = new RegExp(wordDefinition.source, flags); let match = wordDefinition.exec(lineText); @@ -41,7 +41,7 @@ export function startsWith(haystack: string, needle: string): boolean { } export function endsWith(haystack: string, needle: string): boolean { - let diff = haystack.length - needle.length; + const diff = haystack.length - needle.length; if (diff > 0) { return haystack.indexOf(needle, diff) === diff; } else if (diff === 0) { diff --git a/extensions/image-preview/media/main.js b/extensions/image-preview/media/main.js index 984e586c0f6..fffdb7f6971 100644 --- a/extensions/image-preview/media/main.js +++ b/extensions/image-preview/media/main.js @@ -259,7 +259,7 @@ firstZoom(); } - let delta = e.deltaY > 0 ? 1 : -1; + const delta = e.deltaY > 0 ? 1 : -1; updateScale(scale * (1 - delta * SCALE_PINCH_FACTOR)); }, { passive: false }); diff --git a/extensions/ipynb/src/test/serializers.test.ts b/extensions/ipynb/src/test/serializers.test.ts index d945d1f4223..15ef1185f94 100644 --- a/extensions/ipynb/src/test/serializers.test.ts +++ b/extensions/ipynb/src/test/serializers.test.ts @@ -9,7 +9,7 @@ import * as vscode from 'vscode'; import { jupyterCellOutputToCellOutput, jupyterNotebookModelToNotebookData } from '../deserializers'; function deepStripProperties(obj: any, props: string[]) { - for (let prop in obj) { + for (const prop in obj) { if (obj[prop]) { delete obj[prop]; } else if (typeof obj[prop] === 'object') { diff --git a/extensions/jake/src/main.ts b/extensions/jake/src/main.ts index 93fa1aa285b..eba135e1530 100644 --- a/extensions/jake/src/main.ts +++ b/extensions/jake/src/main.ts @@ -33,7 +33,7 @@ function exec(command: string, options: cp.ExecOptions): Promise<{ stdout: strin const buildNames: string[] = ['build', 'compile', 'watch']; function isBuildTask(name: string): boolean { - for (let buildName of buildNames) { + for (const buildName of buildNames) { if (name.indexOf(buildName) !== -1) { return true; } @@ -43,7 +43,7 @@ function isBuildTask(name: string): boolean { const testNames: string[] = ['test']; function isTestTask(name: string): boolean { - for (let testName of testNames) { + for (const testName of testNames) { if (name.indexOf(testName) !== -1) { return true; } @@ -68,7 +68,7 @@ function showError() { async function findJakeCommand(rootPath: string): Promise<string> { let jakeCommand: string; - let platform = process.platform; + const platform = process.platform; if (platform === 'win32' && await exists(path.join(rootPath!, 'node_modules', '.bin', 'jake.cmd'))) { jakeCommand = path.join('.', 'node_modules', '.bin', 'jake.cmd'); } else if ((platform === 'linux' || platform === 'darwin') && await exists(path.join(rootPath!, 'node_modules', '.bin', 'jake'))) { @@ -103,7 +103,7 @@ class FolderDetector { } public start(): void { - let pattern = path.join(this._workspaceFolder.uri.fsPath, '{node_modules,Jakefile,Jakefile.js}'); + const pattern = path.join(this._workspaceFolder.uri.fsPath, '{node_modules,Jakefile,Jakefile.js}'); this.fileWatcher = vscode.workspace.createFileSystemWatcher(pattern); this.fileWatcher.onDidChange(() => this.promise = undefined); this.fileWatcher.onDidCreate(() => this.promise = undefined); @@ -124,17 +124,17 @@ class FolderDetector { public async getTask(_task: vscode.Task): Promise<vscode.Task | undefined> { const jakeTask = (<any>_task.definition).task; if (jakeTask) { - let kind: JakeTaskDefinition = (<any>_task.definition); - let options: vscode.ShellExecutionOptions = { cwd: this.workspaceFolder.uri.fsPath }; - let task = new vscode.Task(kind, this.workspaceFolder, jakeTask, 'jake', new vscode.ShellExecution(await this._jakeCommand, [jakeTask], options)); + const kind: JakeTaskDefinition = (<any>_task.definition); + const options: vscode.ShellExecutionOptions = { cwd: this.workspaceFolder.uri.fsPath }; + const task = new vscode.Task(kind, this.workspaceFolder, jakeTask, 'jake', new vscode.ShellExecution(await this._jakeCommand, [jakeTask], options)); return task; } return undefined; } private async computeTasks(): Promise<vscode.Task[]> { - let rootPath = this._workspaceFolder.uri.scheme === 'file' ? this._workspaceFolder.uri.fsPath : undefined; - let emptyTasks: vscode.Task[] = []; + const rootPath = this._workspaceFolder.uri.scheme === 'file' ? this._workspaceFolder.uri.fsPath : undefined; + const emptyTasks: vscode.Task[] = []; if (!rootPath) { return emptyTasks; } @@ -146,32 +146,32 @@ class FolderDetector { } } - let commandLine = `${await this._jakeCommand} --tasks`; + const commandLine = `${await this._jakeCommand} --tasks`; try { - let { stdout, stderr } = await exec(commandLine, { cwd: rootPath }); + const { stdout, stderr } = await exec(commandLine, { cwd: rootPath }); if (stderr) { getOutputChannel().appendLine(stderr); showError(); } - let result: vscode.Task[] = []; + const result: vscode.Task[] = []; if (stdout) { - let lines = stdout.split(/\r{0,1}\n/); - for (let line of lines) { + const lines = stdout.split(/\r{0,1}\n/); + for (const line of lines) { if (line.length === 0) { continue; } - let regExp = /^jake\s+([^\s]+)\s/g; - let matches = regExp.exec(line); + const regExp = /^jake\s+([^\s]+)\s/g; + const matches = regExp.exec(line); if (matches && matches.length === 2) { - let taskName = matches[1]; - let kind: JakeTaskDefinition = { + const taskName = matches[1]; + const kind: JakeTaskDefinition = { type: 'jake', task: taskName }; - let options: vscode.ShellExecutionOptions = { cwd: this.workspaceFolder.uri.fsPath }; - let task = new vscode.Task(kind, taskName, 'jake', new vscode.ShellExecution(`${await this._jakeCommand} ${taskName}`, options)); + const options: vscode.ShellExecutionOptions = { cwd: this.workspaceFolder.uri.fsPath }; + const task = new vscode.Task(kind, taskName, 'jake', new vscode.ShellExecution(`${await this._jakeCommand} ${taskName}`, options)); result.push(task); - let lowerCaseLine = line.toLowerCase(); + const lowerCaseLine = line.toLowerCase(); if (isBuildTask(lowerCaseLine)) { task.group = vscode.TaskGroup.Build; } else if (isTestTask(lowerCaseLine)) { @@ -182,7 +182,7 @@ class FolderDetector { } return result; } catch (err) { - let channel = getOutputChannel(); + const channel = getOutputChannel(); if (err.stderr) { channel.appendLine(err.stderr); } @@ -212,7 +212,7 @@ class TaskDetector { } public start(): void { - let folders = vscode.workspace.workspaceFolders; + const folders = vscode.workspace.workspaceFolders; if (folders) { this.updateWorkspaceFolders(folders, []); } @@ -229,15 +229,15 @@ class TaskDetector { } private updateWorkspaceFolders(added: readonly vscode.WorkspaceFolder[], removed: readonly vscode.WorkspaceFolder[]): void { - for (let remove of removed) { - let detector = this.detectors.get(remove.uri.toString()); + for (const remove of removed) { + const detector = this.detectors.get(remove.uri.toString()); if (detector) { detector.dispose(); this.detectors.delete(remove.uri.toString()); } } - for (let add of added) { - let detector = new FolderDetector(add, findJakeCommand(add.uri.fsPath)); + for (const add of added) { + const detector = new FolderDetector(add, findJakeCommand(add.uri.fsPath)); this.detectors.set(add.uri.toString(), detector); if (detector.isEnabled()) { detector.start(); @@ -247,15 +247,15 @@ class TaskDetector { } private updateConfiguration(): void { - for (let detector of this.detectors.values()) { + for (const detector of this.detectors.values()) { detector.dispose(); this.detectors.delete(detector.workspaceFolder.uri.toString()); } - let folders = vscode.workspace.workspaceFolders; + const folders = vscode.workspace.workspaceFolders; if (folders) { - for (let folder of folders) { + for (const folder of folders) { if (!this.detectors.has(folder.uri.toString())) { - let detector = new FolderDetector(folder, findJakeCommand(folder.uri.fsPath)); + const detector = new FolderDetector(folder, findJakeCommand(folder.uri.fsPath)); this.detectors.set(folder.uri.toString(), detector); if (detector.isEnabled()) { detector.start(); @@ -294,13 +294,13 @@ class TaskDetector { } else if (this.detectors.size === 1) { return this.detectors.values().next().value.getTasks(); } else { - let promises: Promise<vscode.Task[]>[] = []; - for (let detector of this.detectors.values()) { + const promises: Promise<vscode.Task[]>[] = []; + for (const detector of this.detectors.values()) { promises.push(detector.getTasks().then((value) => value, () => [])); } return Promise.all(promises).then((values) => { - let result: vscode.Task[] = []; - for (let tasks of values) { + const result: vscode.Task[] = []; + for (const tasks of values) { if (tasks && tasks.length > 0) { result.push(...tasks); } diff --git a/extensions/json-language-features/server/src/jsonServer.ts b/extensions/json-language-features/server/src/jsonServer.ts index 9594d242f51..3fb9603a230 100644 --- a/extensions/json-language-features/server/src/jsonServer.ts +++ b/extensions/json-language-features/server/src/jsonServer.ts @@ -69,7 +69,7 @@ export function startServer(connection: Connection, runtime: RuntimeEnvironment) function getSchemaRequestService(handledSchemas: string[] = ['https', 'http', 'file']) { const builtInHandlers: { [protocol: string]: RequestService | undefined } = {}; - for (let protocol of handledSchemas) { + for (const protocol of handledSchemas) { if (protocol === 'file') { builtInHandlers[protocol] = runtime.file; } else if (protocol === 'http' || protocol === 'https') { @@ -250,7 +250,7 @@ export function startServer(connection: Connection, runtime: RuntimeEnvironment) // The settings have changed. Is send on server activation as well. connection.onDidChangeConfiguration((change) => { - let settings = <Settings>change.settings; + const settings = <Settings>change.settings; if (runtime.configureHttpRequests) { runtime.configureHttpRequests(settings?.http?.proxy, !!settings.http?.proxyStrictSSL); } diff --git a/extensions/json-language-features/server/src/languageModelCache.ts b/extensions/json-language-features/server/src/languageModelCache.ts index 6deac59515e..17ffe2add4f 100644 --- a/extensions/json-language-features/server/src/languageModelCache.ts +++ b/extensions/json-language-features/server/src/languageModelCache.ts @@ -18,10 +18,10 @@ export function getLanguageModelCache<T>(maxEntries: number, cleanupIntervalTime let cleanupInterval: NodeJS.Timer | undefined = undefined; if (cleanupIntervalTimeInSec > 0) { cleanupInterval = setInterval(() => { - let cutoffTime = Date.now() - cleanupIntervalTimeInSec * 1000; - let uris = Object.keys(languageModels); - for (let uri of uris) { - let languageModelInfo = languageModels[uri]; + const cutoffTime = Date.now() - cleanupIntervalTimeInSec * 1000; + const uris = Object.keys(languageModels); + for (const uri of uris) { + const languageModelInfo = languageModels[uri]; if (languageModelInfo.cTime < cutoffTime) { delete languageModels[uri]; nModels--; @@ -32,14 +32,14 @@ export function getLanguageModelCache<T>(maxEntries: number, cleanupIntervalTime return { get(document: TextDocument): T { - let version = document.version; - let languageId = document.languageId; - let languageModelInfo = languageModels[document.uri]; + const version = document.version; + const languageId = document.languageId; + const languageModelInfo = languageModels[document.uri]; if (languageModelInfo && languageModelInfo.version === version && languageModelInfo.languageId === languageId) { languageModelInfo.cTime = Date.now(); return languageModelInfo.languageModel; } - let languageModel = parse(document); + const languageModel = parse(document); languageModels[document.uri] = { languageModel, version, languageId, cTime: Date.now() }; if (!languageModelInfo) { nModels++; @@ -48,8 +48,8 @@ export function getLanguageModelCache<T>(maxEntries: number, cleanupIntervalTime if (nModels === maxEntries) { let oldestTime = Number.MAX_VALUE; let oldestUri = null; - for (let uri in languageModels) { - let languageModelInfo = languageModels[uri]; + for (const uri in languageModels) { + const languageModelInfo = languageModels[uri]; if (languageModelInfo.cTime < oldestTime) { oldestUri = uri; oldestTime = languageModelInfo.cTime; @@ -64,7 +64,7 @@ export function getLanguageModelCache<T>(maxEntries: number, cleanupIntervalTime }, onDocumentRemoved(document: TextDocument) { - let uri = document.uri; + const uri = document.uri; if (languageModels[uri]) { delete languageModels[uri]; nModels--; diff --git a/extensions/json-language-features/server/src/utils/runner.ts b/extensions/json-language-features/server/src/utils/runner.ts index 2d3cfaef51a..f7762f6ff31 100644 --- a/extensions/json-language-features/server/src/utils/runner.ts +++ b/extensions/json-language-features/server/src/utils/runner.ts @@ -8,7 +8,7 @@ import { RuntimeEnvironment } from '../jsonServer'; export function formatError(message: string, err: any): string { if (err instanceof Error) { - let error = <Error>err; + const error = <Error>err; return `${message}: ${error.message}\n${error.stack}`; } else if (typeof err === 'string') { return `${message}: ${err}`; @@ -47,7 +47,7 @@ export function runSafe<T, E>(runtime: RuntimeEnvironment, func: () => T, errorV resolve(cancelValue()); } else { try { - let result = func(); + const result = func(); if (token.isCancellationRequested) { resolve(cancelValue()); return; diff --git a/extensions/json-language-features/server/src/utils/strings.ts b/extensions/json-language-features/server/src/utils/strings.ts index 42a617f8a8a..f706b150a18 100644 --- a/extensions/json-language-features/server/src/utils/strings.ts +++ b/extensions/json-language-features/server/src/utils/strings.ts @@ -7,7 +7,7 @@ * Determines if haystack ends with needle. */ export function endsWith(haystack: string, needle: string): boolean { - let diff = haystack.length - needle.length; + const diff = haystack.length - needle.length; if (diff > 0) { return haystack.lastIndexOf(needle) === diff; } else if (diff === 0) { diff --git a/extensions/markdown-language-features/src/languageFeatures/smartSelect.ts b/extensions/markdown-language-features/src/languageFeatures/smartSelect.ts index 74b1d8e1b98..3f69ea546d7 100644 --- a/extensions/markdown-language-features/src/languageFeatures/smartSelect.ts +++ b/extensions/markdown-language-features/src/languageFeatures/smartSelect.ts @@ -240,7 +240,7 @@ function isBlockElement(token: Token): boolean { function getFirstChildHeader(document: SkinnyTextDocument, header?: TocEntry, toc?: readonly TocEntry[]): vscode.Position | undefined { let childRange: vscode.Position | undefined; if (header && toc) { - let children = toc.filter(t => header.sectionLocation.range.contains(t.sectionLocation.range) && t.sectionLocation.range.start.line > header.sectionLocation.range.start.line).sort((t1, t2) => t1.line - t2.line); + const children = toc.filter(t => header.sectionLocation.range.contains(t.sectionLocation.range) && t.sectionLocation.range.start.line > header.sectionLocation.range.start.line).sort((t1, t2) => t1.line - t2.line); if (children.length > 0) { childRange = children[0].sectionLocation.range.start; const lineText = document.lineAt(childRange.line - 1).text; diff --git a/extensions/markdown-language-features/src/test/util.ts b/extensions/markdown-language-features/src/test/util.ts index d2b4760e9d7..99369ae091f 100644 --- a/extensions/markdown-language-features/src/test/util.ts +++ b/extensions/markdown-language-features/src/test/util.ts @@ -14,7 +14,7 @@ export const joinLines = (...args: string[]) => export const CURSOR = '$$CURSOR$$'; export function getCursorPositions(contents: string, doc: InMemoryDocument): vscode.Position[] { - let positions: vscode.Position[] = []; + const positions: vscode.Position[] = []; let index = 0; let wordLength = 0; while (index !== -1) { diff --git a/extensions/markdown-language-features/src/util/openDocumentLink.ts b/extensions/markdown-language-features/src/util/openDocumentLink.ts index 18b8e5f4c79..376fe548ec4 100644 --- a/extensions/markdown-language-features/src/util/openDocumentLink.ts +++ b/extensions/markdown-language-features/src/util/openDocumentLink.ts @@ -22,7 +22,7 @@ enum OpenMarkdownLinks { } export function resolveDocumentLink(href: string, markdownFile: vscode.Uri): vscode.Uri { - let [hrefPath, fragment] = href.split('#').map(c => decodeURIComponent(c)); + const [hrefPath, fragment] = href.split('#').map(c => decodeURIComponent(c)); if (hrefPath[0] === '/') { // Absolute path. Try to resolve relative to the workspace diff --git a/extensions/merge-conflict/src/codelensProvider.ts b/extensions/merge-conflict/src/codelensProvider.ts index bd5242b8e00..da82a57ac80 100644 --- a/extensions/merge-conflict/src/codelensProvider.ts +++ b/extensions/merge-conflict/src/codelensProvider.ts @@ -52,7 +52,7 @@ export default class MergeConflictCodeLensProvider implements vscode.CodeLensPro return null; } - let conflicts = await this.tracker.getConflicts(document); + const conflicts = await this.tracker.getConflicts(document); const conflictsCount = conflicts?.length ?? 0; vscode.commands.executeCommand('setContext', 'mergeConflictsCount', conflictsCount); @@ -60,28 +60,28 @@ export default class MergeConflictCodeLensProvider implements vscode.CodeLensPro return null; } - let items: vscode.CodeLens[] = []; + const items: vscode.CodeLens[] = []; conflicts.forEach(conflict => { - let acceptCurrentCommand: vscode.Command = { + const acceptCurrentCommand: vscode.Command = { command: 'merge-conflict.accept.current', title: localize('acceptCurrentChange', 'Accept Current Change'), arguments: ['known-conflict', conflict] }; - let acceptIncomingCommand: vscode.Command = { + const acceptIncomingCommand: vscode.Command = { command: 'merge-conflict.accept.incoming', title: localize('acceptIncomingChange', 'Accept Incoming Change'), arguments: ['known-conflict', conflict] }; - let acceptBothCommand: vscode.Command = { + const acceptBothCommand: vscode.Command = { command: 'merge-conflict.accept.both', title: localize('acceptBothChanges', 'Accept Both Changes'), arguments: ['known-conflict', conflict] }; - let diffCommand: vscode.Command = { + const diffCommand: vscode.Command = { command: 'merge-conflict.compare', title: localize('compareChanges', 'Compare Changes'), arguments: [conflict] diff --git a/extensions/merge-conflict/src/commandHandler.ts b/extensions/merge-conflict/src/commandHandler.ts index e20660bd74a..920875ed6ac 100644 --- a/extensions/merge-conflict/src/commandHandler.ts +++ b/extensions/merge-conflict/src/commandHandler.ts @@ -107,8 +107,8 @@ export default class CommandHandler implements vscode.Disposable { const scheme = editor.document.uri.scheme; let range = conflict.current.content; - let leftRanges = conflicts.map(conflict => [conflict.current.content, conflict.range]); - let rightRanges = conflicts.map(conflict => [conflict.incoming.content, conflict.range]); + const leftRanges = conflicts.map(conflict => [conflict.current.content, conflict.range]); + const rightRanges = conflicts.map(conflict => [conflict.incoming.content, conflict.range]); const leftUri = editor.document.uri.with({ scheme: ContentProvider.scheme, @@ -120,7 +120,7 @@ export default class CommandHandler implements vscode.Disposable { const rightUri = leftUri.with({ query: JSON.stringify({ scheme, ranges: rightRanges }) }); let mergeConflictLineOffsets = 0; - for (let nextconflict of conflicts) { + for (const nextconflict of conflicts) { if (nextconflict.range.isEqual(conflict.range)) { break; } else { @@ -158,7 +158,7 @@ export default class CommandHandler implements vscode.Disposable { } async acceptSelection(editor: vscode.TextEditor): Promise<void> { - let conflict = await this.findConflictContainingSelection(editor); + const conflict = await this.findConflictContainingSelection(editor); if (!conflict) { vscode.window.showWarningMessage(localize('cursorNotInConflict', 'Editor cursor is not within a merge conflict')); @@ -202,7 +202,7 @@ export default class CommandHandler implements vscode.Disposable { } private async navigate(editor: vscode.TextEditor, direction: NavigationDirection): Promise<void> { - let navigationResult = await this.findConflictForNavigation(editor, direction); + const navigationResult = await this.findConflictForNavigation(editor, direction); if (!navigationResult) { // Check for autoNavigateNextConflict, if it's enabled(which indicating no conflict remain), then do not show warning @@ -258,7 +258,7 @@ export default class CommandHandler implements vscode.Disposable { } private async acceptAll(type: interfaces.CommitType, editor: vscode.TextEditor): Promise<void> { - let conflicts = await this.tracker.getConflicts(editor.document); + const conflicts = await this.tracker.getConflicts(editor.document); if (!conflicts || conflicts.length === 0) { vscode.window.showWarningMessage(localize('noConflicts', 'No merge conflicts found in this file')); @@ -323,7 +323,7 @@ export default class CommandHandler implements vscode.Disposable { return null; } - let selection = editor.selection.active; + const selection = editor.selection.active; if (conflicts.length === 1) { if (conflicts[0].range.contains(selection)) { return { diff --git a/extensions/merge-conflict/src/contentProvider.ts b/extensions/merge-conflict/src/contentProvider.ts index 5c24854b00e..155bac08d40 100644 --- a/extensions/merge-conflict/src/contentProvider.ts +++ b/extensions/merge-conflict/src/contentProvider.ts @@ -32,7 +32,7 @@ export default class MergeConflictContentProvider implements vscode.TextDocument let lastPosition = new vscode.Position(0, 0); ranges.forEach(rangeObj => { - let [conflictRange, fullRange] = rangeObj; + const [conflictRange, fullRange] = rangeObj; const [start, end] = conflictRange; const [fullStart, fullEnd] = fullRange; @@ -41,7 +41,7 @@ export default class MergeConflictContentProvider implements vscode.TextDocument lastPosition = new vscode.Position(fullEnd.line, fullEnd.character); }); - let documentEnd = document.lineAt(document.lineCount - 1).range.end; + const documentEnd = document.lineAt(document.lineCount - 1).range.end; text += document.getText(new vscode.Range(lastPosition.line, lastPosition.character, documentEnd.line, documentEnd.character)); return text; diff --git a/extensions/merge-conflict/src/delayer.ts b/extensions/merge-conflict/src/delayer.ts index e4ef18e09c9..8609ff6abe4 100644 --- a/extensions/merge-conflict/src/delayer.ts +++ b/extensions/merge-conflict/src/delayer.ts @@ -35,7 +35,7 @@ export class Delayer<T> { }).then(() => { this.completionPromise = null; this.onSuccess = null; - let result = this.task!(); + const result = this.task!(); this.task = null; return result; }); @@ -56,7 +56,7 @@ export class Delayer<T> { return null; } this.cancelTimeout(); - let result = this.completionPromise; + const result = this.completionPromise; this.onSuccess!(undefined); return result; } diff --git a/extensions/merge-conflict/src/documentMergeConflict.ts b/extensions/merge-conflict/src/documentMergeConflict.ts index 3e8b44ba87d..4448c25356b 100644 --- a/extensions/merge-conflict/src/documentMergeConflict.ts +++ b/extensions/merge-conflict/src/documentMergeConflict.ts @@ -45,11 +45,11 @@ export class DocumentMergeConflict implements interfaces.IDocumentMergeConflict // ] if (type === interfaces.CommitType.Current) { // Replace [ Conflict Range ] with [ Current Content ] - let content = document.getText(this.current.content); + const content = document.getText(this.current.content); this.replaceRangeWithContent(content, edit); } else if (type === interfaces.CommitType.Incoming) { - let content = document.getText(this.incoming.content); + const content = document.getText(this.incoming.content); this.replaceRangeWithContent(content, edit); } else if (type === interfaces.CommitType.Both) { diff --git a/extensions/merge-conflict/src/documentTracker.ts b/extensions/merge-conflict/src/documentTracker.ts index 7d2f57be3cb..d6247b20671 100644 --- a/extensions/merge-conflict/src/documentTracker.ts +++ b/extensions/merge-conflict/src/documentTracker.ts @@ -50,7 +50,7 @@ export default class DocumentMergeConflictTracker implements vscode.Disposable, getConflicts(document: vscode.TextDocument, origin: string): PromiseLike<interfaces.IDocumentMergeConflict[]> { // Attempt from cache - let key = this.getCacheKey(document); + const key = this.getCacheKey(document); if (!key) { // Document doesn't have a uri, can't cache it, so return @@ -67,7 +67,7 @@ export default class DocumentMergeConflictTracker implements vscode.Disposable, } return cacheItem.delayTask.trigger(() => { - let conflicts = this.getConflictsOrEmpty(document, Array.from(cacheItem!.origins)); + const conflicts = this.getConflictsOrEmpty(document, Array.from(cacheItem!.origins)); if (this.cache) { this.cache.delete(key!); @@ -82,7 +82,7 @@ export default class DocumentMergeConflictTracker implements vscode.Disposable, return false; } - let key = this.getCacheKey(document); + const key = this.getCacheKey(document); if (!key) { return false; } @@ -100,7 +100,7 @@ export default class DocumentMergeConflictTracker implements vscode.Disposable, } forget(document: vscode.TextDocument) { - let key = this.getCacheKey(document); + const key = this.getCacheKey(document); if (key) { this.cache.delete(key); diff --git a/extensions/merge-conflict/src/mergeConflictParser.ts b/extensions/merge-conflict/src/mergeConflictParser.ts index 06e4237fea7..cb925f82301 100644 --- a/extensions/merge-conflict/src/mergeConflictParser.ts +++ b/extensions/merge-conflict/src/mergeConflictParser.ts @@ -67,7 +67,7 @@ export class MergeConflictParser { // Create a full descriptor from the lines that we matched. This can return // null if the descriptor could not be completed. - let completeDescriptor = MergeConflictParser.scanItemTolMergeConflictDescriptor(document, currentConflict); + const completeDescriptor = MergeConflictParser.scanItemTolMergeConflictDescriptor(document, currentConflict); if (completeDescriptor !== null) { conflictDescriptors.push(completeDescriptor); @@ -90,7 +90,7 @@ export class MergeConflictParser { return null; } - let tokenAfterCurrentBlock: vscode.TextLine = scanned.commonAncestors[0] || scanned.splitter; + const tokenAfterCurrentBlock: vscode.TextLine = scanned.commonAncestors[0] || scanned.splitter; // Assume that descriptor.current.header, descriptor.incoming.header and descriptor.splitter // have valid ranges, fill in content and total ranges from these parts. @@ -110,7 +110,7 @@ export class MergeConflictParser { name: scanned.startHeader.text.substring(startHeaderMarker.length + 1) }, commonAncestors: scanned.commonAncestors.map((currentTokenLine, index, commonAncestors) => { - let nextTokenLine = commonAncestors[index + 1] || scanned.splitter; + const nextTokenLine = commonAncestors[index + 1] || scanned.splitter; return { header: currentTokenLine.range, decoratorContent: new vscode.Range( @@ -146,7 +146,7 @@ export class MergeConflictParser { return false; } - let text = document.getText(); + const text = document.getText(); return text.includes(startHeaderMarker) && text.includes(endFooterMarker); } diff --git a/extensions/merge-conflict/src/mergeDecorator.ts b/extensions/merge-conflict/src/mergeDecorator.ts index b3d24bed81d..769ac0b8214 100644 --- a/extensions/merge-conflict/src/mergeDecorator.ts +++ b/extensions/merge-conflict/src/mergeDecorator.ts @@ -137,7 +137,7 @@ export default class MergeDecorator implements vscode.Disposable { private generateBlockRenderOptions(backgroundColor: string, overviewRulerColor: string, config: interfaces.IExtensionConfiguration): vscode.DecorationRenderOptions { - let renderOptions: vscode.DecorationRenderOptions = {}; + const renderOptions: vscode.DecorationRenderOptions = {}; if (config.enableDecorations) { renderOptions.backgroundColor = new vscode.ThemeColor(backgroundColor); @@ -176,7 +176,7 @@ export default class MergeDecorator implements vscode.Disposable { try { this.updating.set(editor, true); - let conflicts = await this.tracker.getConflicts(editor.document); + const conflicts = await this.tracker.getConflicts(editor.document); if (vscode.window.visibleTextEditors.indexOf(editor) === -1) { return; } @@ -188,9 +188,9 @@ export default class MergeDecorator implements vscode.Disposable { // Store decorations keyed by the type of decoration, set decoration wants a "style" // to go with it, which will match this key (see constructor); - let matchDecorations: { [key: string]: vscode.Range[] } = {}; + const matchDecorations: { [key: string]: vscode.Range[] } = {}; - let pushDecoration = (key: string, d: vscode.Range) => { + const pushDecoration = (key: string, d: vscode.Range) => { matchDecorations[key] = matchDecorations[key] || []; matchDecorations[key].push(d); }; @@ -224,7 +224,7 @@ export default class MergeDecorator implements vscode.Disposable { // For each match we've generated, apply the generated decoration with the matching decoration type to the // editor instance. Keys in both matches and decorations should match. Object.keys(matchDecorations).forEach(decorationKey => { - let decorationType = this.decorations[decorationKey]; + const decorationType = this.decorations[decorationKey]; if (decorationType) { editor.setDecorations(decorationType, matchDecorations[decorationKey]); @@ -242,7 +242,7 @@ export default class MergeDecorator implements vscode.Disposable { // Race condition, while editing the settings, it's possible to // generate regions before the configuration has been refreshed - let decorationType = this.decorations[decorationKey]; + const decorationType = this.decorations[decorationKey]; if (decorationType) { editor.setDecorations(decorationType, []); diff --git a/extensions/merge-conflict/src/services.ts b/extensions/merge-conflict/src/services.ts index 30fb478c6f8..b8b256aa9f7 100644 --- a/extensions/merge-conflict/src/services.ts +++ b/extensions/merge-conflict/src/services.ts @@ -21,7 +21,7 @@ export default class ServiceWrapper implements vscode.Disposable { begin() { - let configuration = this.createExtensionConfiguration(); + const configuration = this.createExtensionConfiguration(); const documentTracker = new DocumentTracker(); this.services.push( diff --git a/extensions/microsoft-authentication/src/AADHelper.ts b/extensions/microsoft-authentication/src/AADHelper.ts index 6d02e2472b7..bb22142e584 100644 --- a/extensions/microsoft-authentication/src/AADHelper.ts +++ b/extensions/microsoft-authentication/src/AADHelper.ts @@ -109,7 +109,7 @@ export class AzureActiveDirectoryService { public async initialize(): Promise<void> { Logger.info('Reading sessions from secret storage...'); - let sessions = await this._tokenStorage.getAll(); + const sessions = await this._tokenStorage.getAll(); Logger.info(`Got ${sessions.length} stored sessions`); const refreshes = sessions.map(async session => { @@ -352,7 +352,7 @@ export class AzureActiveDirectoryService { code_challenge_method: 'S256', code_challenge: codeChallenge, }); - let uri = vscode.Uri.parse(`${signInUrl}?${oauthStartQuery.toString()}`); + const uri = vscode.Uri.parse(`${signInUrl}?${oauthStartQuery.toString()}`); vscode.env.openExternal(uri); const timeoutPromise = new Promise((_: (value: vscode.AuthenticationSession) => void, reject) => { diff --git a/extensions/notebook-renderers/src/ansi.ts b/extensions/notebook-renderers/src/ansi.ts index 185dd27276b..2a89d8d4b29 100644 --- a/extensions/notebook-renderers/src/ansi.ts +++ b/extensions/notebook-renderers/src/ansi.ts @@ -9,7 +9,7 @@ import { linkify } from './linkify'; export function handleANSIOutput(text: string): HTMLSpanElement { - let workspaceFolder = undefined; + const workspaceFolder = undefined; const root: HTMLSpanElement = document.createElement('span'); const textLength: number = text.length; diff --git a/extensions/notebook-renderers/src/textHelper.ts b/extensions/notebook-renderers/src/textHelper.ts index 9daafb721f8..49ba465f6c4 100644 --- a/extensions/notebook-renderers/src/textHelper.ts +++ b/extensions/notebook-renderers/src/textHelper.ts @@ -25,8 +25,8 @@ function generateViewMoreElement(outputId: string) { } export function truncatedArrayOfString(id: string, outputs: string[], linesLimit: number, container: HTMLElement) { - let buffer = outputs.join('\n').split(/\r\n|\r|\n/g); - let lineCount = buffer.length; + const buffer = outputs.join('\n').split(/\r\n|\r|\n/g); + const lineCount = buffer.length; if (lineCount < linesLimit) { const spanElement = handleANSIOutput(buffer.slice(0, linesLimit).join('\n')); diff --git a/extensions/npm/src/commands.ts b/extensions/npm/src/commands.ts index 295ae306c3f..e2489a7a58a 100644 --- a/extensions/npm/src/commands.ts +++ b/extensions/npm/src/commands.ts @@ -16,17 +16,17 @@ import { const localize = nls.loadMessageBundle(); export function runSelectedScript(context: vscode.ExtensionContext) { - let editor = vscode.window.activeTextEditor; + const editor = vscode.window.activeTextEditor; if (!editor) { return; } - let document = editor.document; - let contents = document.getText(); - let script = findScriptAtPosition(editor.document, contents, editor.selection.anchor); + const document = editor.document; + const contents = document.getText(); + const script = findScriptAtPosition(editor.document, contents, editor.selection.anchor); if (script) { runScript(context, script, document); } else { - let message = localize('noScriptFound', 'Could not find a valid npm script at the selection.'); + const message = localize('noScriptFound', 'Could not find a valid npm script at the selection.'); vscode.window.showErrorMessage(message); } } @@ -37,7 +37,7 @@ export async function selectAndRunScriptFromFolder(context: vscode.ExtensionCont } const selectedFolder = selectedFolders[0]; - let taskList: IFolderTaskItem[] = await detectNpmScriptsForFolder(context, selectedFolder); + const taskList: IFolderTaskItem[] = await detectNpmScriptsForFolder(context, selectedFolder); if (taskList && taskList.length > 0) { const quickPick = vscode.window.createQuickPick<IFolderTaskItem>(); @@ -47,7 +47,7 @@ export async function selectAndRunScriptFromFolder(context: vscode.ExtensionCont const toDispose: vscode.Disposable[] = []; - let pickPromise = new Promise<IFolderTaskItem | undefined>((c) => { + const pickPromise = new Promise<IFolderTaskItem | undefined>((c) => { toDispose.push(quickPick.onDidAccept(() => { toDispose.forEach(d => d.dispose()); c(quickPick.selectedItems[0]); @@ -58,7 +58,7 @@ export async function selectAndRunScriptFromFolder(context: vscode.ExtensionCont })); }); quickPick.show(); - let result = await pickPromise; + const result = await pickPromise; quickPick.dispose(); if (result) { vscode.tasks.executeTask(result.task); diff --git a/extensions/npm/src/features/packageJSONContribution.ts b/extensions/npm/src/features/packageJSONContribution.ts index ad638d7d4c2..a14f157b309 100644 --- a/extensions/npm/src/features/packageJSONContribution.ts +++ b/extensions/npm/src/features/packageJSONContribution.ts @@ -78,7 +78,7 @@ export class PackageJSONContribution implements IJSONContribution { if (currentWord.indexOf('/') !== -1) { return this.collectScopedPackages(currentWord, addValue, isLast, collector); } - for (let scope of this.knownScopes) { + for (const scope of this.knownScopes) { const proposal = new CompletionItem(scope); proposal.kind = CompletionItemKind.Property; proposal.insertText = new SnippetString().appendText(`"${scope}/`).appendTabstop().appendText('"'); @@ -146,14 +146,14 @@ export class PackageJSONContribution implements IJSONContribution { } private collectScopedPackages(currentWord: string, addValue: boolean, isLast: boolean, collector: ISuggestionsCollector): Thenable<any> { - let segments = currentWord.split('/'); + const segments = currentWord.split('/'); if (segments.length === 2 && segments[0].length > 1) { - let scope = segments[0].substr(1); + const scope = segments[0].substr(1); let name = segments[1]; if (name.length < 4) { name = ''; } - let queryUrl = `https://registry.npmjs.com/-/v1/search?text=scope:${scope}%20${name}&size=250`; + const queryUrl = `https://registry.npmjs.com/-/v1/search?text=scope:${scope}%20${name}&size=250`; return this.xhr({ url: queryUrl, headers: { agent: USER_AGENT } @@ -163,7 +163,7 @@ export class PackageJSONContribution implements IJSONContribution { const obj = JSON.parse(success.responseText); if (obj && Array.isArray(obj.objects)) { const objects = <{ package: SearchPackageInfo }[]>obj.objects; - for (let object of objects) { + for (const object of objects) { this.processPackage(object.package, addValue, isLast, collector); } } @@ -286,7 +286,7 @@ export class PackageJSONContribution implements IJSONContribution { private npmView(npmCommandPath: string, pack: string, resource: Uri | undefined): Promise<ViewPackageInfo | undefined> { return new Promise((resolve, _reject) => { const args = ['view', '--json', pack, 'description', 'dist-tags.latest', 'homepage', 'version']; - let cwd = resource && resource.scheme === 'file' ? dirname(resource.fsPath) : undefined; + const cwd = resource && resource.scheme === 'file' ? dirname(resource.fsPath) : undefined; cp.execFile(npmCommandPath, args, { cwd }, (error, stdout) => { if (!error) { try { diff --git a/extensions/npm/src/npmMain.ts b/extensions/npm/src/npmMain.ts index 3788c94ea45..a8289599917 100644 --- a/extensions/npm/src/npmMain.ts +++ b/extensions/npm/src/npmMain.ts @@ -93,17 +93,17 @@ function canRunNpmInCurrentWorkspace() { let taskProvider: NpmTaskProvider; function registerTaskProvider(context: vscode.ExtensionContext): vscode.Disposable | undefined { if (vscode.workspace.workspaceFolders) { - let watcher = vscode.workspace.createFileSystemWatcher('**/package.json'); + const watcher = vscode.workspace.createFileSystemWatcher('**/package.json'); watcher.onDidChange((_e) => invalidateScriptCaches()); watcher.onDidDelete((_e) => invalidateScriptCaches()); watcher.onDidCreate((_e) => invalidateScriptCaches()); context.subscriptions.push(watcher); - let workspaceWatcher = vscode.workspace.onDidChangeWorkspaceFolders((_e) => invalidateScriptCaches()); + const workspaceWatcher = vscode.workspace.onDidChangeWorkspaceFolders((_e) => invalidateScriptCaches()); context.subscriptions.push(workspaceWatcher); taskProvider = new NpmTaskProvider(context); - let disposable = vscode.tasks.registerTaskProvider('npm', taskProvider); + const disposable = vscode.tasks.registerTaskProvider('npm', taskProvider); context.subscriptions.push(disposable); return disposable; } @@ -112,7 +112,7 @@ function registerTaskProvider(context: vscode.ExtensionContext): vscode.Disposab function registerExplorer(context: vscode.ExtensionContext): NpmScriptsTreeDataProvider | undefined { if (vscode.workspace.workspaceFolders) { - let treeDataProvider = new NpmScriptsTreeDataProvider(context, taskProvider!); + const treeDataProvider = new NpmScriptsTreeDataProvider(context, taskProvider!); const view = vscode.window.createTreeView('npm', { treeDataProvider: treeDataProvider, showCollapseAll: true }); context.subscriptions.push(view); return treeDataProvider; @@ -122,12 +122,12 @@ function registerExplorer(context: vscode.ExtensionContext): NpmScriptsTreeDataP function registerHoverProvider(context: vscode.ExtensionContext): NpmScriptHoverProvider | undefined { if (vscode.workspace.workspaceFolders) { - let npmSelector: vscode.DocumentSelector = { + const npmSelector: vscode.DocumentSelector = { language: 'json', scheme: 'file', pattern: '**/package.json' }; - let provider = new NpmScriptHoverProvider(context); + const provider = new NpmScriptHoverProvider(context); context.subscriptions.push(vscode.languages.registerHoverProvider(npmSelector, provider)); return provider; } diff --git a/extensions/npm/src/npmView.ts b/extensions/npm/src/npmView.ts index e7bfd08bd7c..3ed572a06f9 100644 --- a/extensions/npm/src/npmView.ts +++ b/extensions/npm/src/npmView.ts @@ -180,7 +180,7 @@ export class NpmScriptsTreeDataProvider implements TreeDataProvider<TreeItem> { if (!uri) { return; } - let task = await createTask(await getPackageManager(this.context, selection.folder.workspaceFolder.uri, true), 'install', ['install'], selection.folder.workspaceFolder, uri, undefined, []); + const task = await createTask(await getPackageManager(this.context, selection.folder.workspaceFolder.uri, true), 'install', ['install'], selection.folder.workspaceFolder, uri, undefined, []); tasks.executeTask(task); } @@ -194,8 +194,8 @@ export class NpmScriptsTreeDataProvider implements TreeDataProvider<TreeItem> { if (!uri) { return; } - let document: TextDocument = await workspace.openTextDocument(uri); - let position = this.findScriptPosition(document, selection instanceof NpmScript ? selection : undefined) || new Position(0, 0); + const document: TextDocument = await workspace.openTextDocument(uri); + const position = this.findScriptPosition(document, selection instanceof NpmScript ? selection : undefined) || new Position(0, 0); await window.showTextDocument(document, { preserveFocus: true, selection: new Selection(position, position) }); } @@ -260,7 +260,7 @@ export class NpmScriptsTreeDataProvider implements TreeDataProvider<TreeItem> { } private isInstallTask(task: Task): boolean { - let fullName = getTaskName('install', task.definition.path); + const fullName = getTaskName('install', task.definition.path); return fullName === task.name; } @@ -285,8 +285,8 @@ export class NpmScriptsTreeDataProvider implements TreeDataProvider<TreeItem> { } private buildTaskTree(tasks: ITaskWithLocation[]): TaskTree { - let folders: Map<String, Folder> = new Map(); - let packages: Map<String, PackageJSON> = new Map(); + const folders: Map<String, Folder> = new Map(); + const packages: Map<String, PackageJSON> = new Map(); let folder = null; let packageJson = null; @@ -311,16 +311,16 @@ export class NpmScriptsTreeDataProvider implements TreeDataProvider<TreeItem> { folder = new Folder(each.task.scope); folders.set(each.task.scope.name, folder); } - let definition: INpmTaskDefinition = <INpmTaskDefinition>each.task.definition; - let relativePath = definition.path ? definition.path : ''; - let fullPath = path.join(each.task.scope.name, relativePath); + const definition: INpmTaskDefinition = <INpmTaskDefinition>each.task.definition; + const relativePath = definition.path ? definition.path : ''; + const fullPath = path.join(each.task.scope.name, relativePath); packageJson = packages.get(fullPath); if (!packageJson) { packageJson = new PackageJSON(folder, relativePath); folder.addPackage(packageJson); packages.set(fullPath, packageJson); } - let script = new NpmScript(this.extensionContext, packageJson, each); + const script = new NpmScript(this.extensionContext, packageJson, each); packageJson.addScript(script); } }); diff --git a/extensions/npm/src/scriptHover.ts b/extensions/npm/src/scriptHover.ts index 02a2d4d5781..b8924bb25df 100644 --- a/extensions/npm/src/scriptHover.ts +++ b/extensions/npm/src/scriptHover.ts @@ -52,7 +52,7 @@ export class NpmScriptHoverProvider implements HoverProvider { cachedScripts?.scripts.forEach(({ name, nameRange }) => { if (nameRange.contains(position)) { - let contents: MarkdownString = new MarkdownString(); + const contents: MarkdownString = new MarkdownString(); contents.isTrusted = true; contents.appendMarkdown(this.createRunScriptMarkdown(name, document.uri)); contents.appendMarkdown(this.createDebugScriptMarkdown(name, document.uri)); @@ -63,7 +63,7 @@ export class NpmScriptHoverProvider implements HoverProvider { } private createRunScriptMarkdown(script: string, documentUri: Uri): string { - let args = { + const args = { documentUri: documentUri, script: script, }; @@ -90,7 +90,7 @@ export class NpmScriptHoverProvider implements HoverProvider { } private createMarkdownLink(label: string, cmd: string, args: any, tooltip: string, separator?: string): string { - let encodedArgs = encodeURIComponent(JSON.stringify(args)); + const encodedArgs = encodeURIComponent(JSON.stringify(args)); let prefix = ''; if (separator) { prefix = ` ${separator} `; @@ -99,19 +99,19 @@ export class NpmScriptHoverProvider implements HoverProvider { } public async runScriptFromHover(args: any) { - let script = args.script; - let documentUri = args.documentUri; - let folder = workspace.getWorkspaceFolder(documentUri); + const script = args.script; + const documentUri = args.documentUri; + const folder = workspace.getWorkspaceFolder(documentUri); if (folder) { - let task = await createTask(await getPackageManager(this.context, folder.uri), script, ['run', script], folder, documentUri); + const task = await createTask(await getPackageManager(this.context, folder.uri), script, ['run', script], folder, documentUri); await tasks.executeTask(task); } } public debugScriptFromHover(args: { script: string; documentUri: Uri }) { - let script = args.script; - let documentUri = args.documentUri; - let folder = workspace.getWorkspaceFolder(documentUri); + const script = args.script; + const documentUri = args.documentUri; + const folder = workspace.getWorkspaceFolder(documentUri); if (folder) { startDebugging(this.context, script, dirname(documentUri.fsPath), folder); } diff --git a/extensions/npm/src/tasks.ts b/extensions/npm/src/tasks.ts index 47237442d98..dc28ed7f4ed 100644 --- a/extensions/npm/src/tasks.ts +++ b/extensions/npm/src/tasks.ts @@ -87,7 +87,7 @@ export function invalidateTasksCache() { const buildNames: string[] = ['build', 'compile', 'watch']; function isBuildTask(name: string): boolean { - for (let buildName of buildNames) { + for (const buildName of buildNames) { if (name.indexOf(buildName) !== -1) { return true; } @@ -97,7 +97,7 @@ function isBuildTask(name: string): boolean { const testNames: string[] = ['test']; function isTestTask(name: string): boolean { - for (let testName of testNames) { + for (const testName of testNames) { if (name === testName) { return true; } @@ -150,15 +150,15 @@ export async function getPackageManager(extensionContext: ExtensionContext, fold } export async function hasNpmScripts(): Promise<boolean> { - let folders = workspace.workspaceFolders; + const folders = workspace.workspaceFolders; if (!folders) { return false; } try { for (const folder of folders) { if (isAutoDetectionEnabled(folder)) { - let relativePattern = new RelativePattern(folder, '**/package.json'); - let paths = await workspace.findFiles(relativePattern, '**/node_modules/**'); + const relativePattern = new RelativePattern(folder, '**/package.json'); + const paths = await workspace.findFiles(relativePattern, '**/node_modules/**'); if (paths.length > 0) { return true; } @@ -172,22 +172,22 @@ export async function hasNpmScripts(): Promise<boolean> { async function detectNpmScripts(context: ExtensionContext, showWarning: boolean): Promise<ITaskWithLocation[]> { - let emptyTasks: ITaskWithLocation[] = []; - let allTasks: ITaskWithLocation[] = []; - let visitedPackageJsonFiles: Set<string> = new Set(); + const emptyTasks: ITaskWithLocation[] = []; + const allTasks: ITaskWithLocation[] = []; + const visitedPackageJsonFiles: Set<string> = new Set(); - let folders = workspace.workspaceFolders; + const folders = workspace.workspaceFolders; if (!folders) { return emptyTasks; } try { for (const folder of folders) { if (isAutoDetectionEnabled(folder)) { - let relativePattern = new RelativePattern(folder, '**/package.json'); - let paths = await workspace.findFiles(relativePattern, '**/{node_modules,.vscode-test}/**'); + const relativePattern = new RelativePattern(folder, '**/package.json'); + const paths = await workspace.findFiles(relativePattern, '**/{node_modules,.vscode-test}/**'); for (const path of paths) { if (!isExcluded(folder, path) && !visitedPackageJsonFiles.has(path.fsPath)) { - let tasks = await provideNpmScriptsForFolder(context, path, showWarning); + const tasks = await provideNpmScriptsForFolder(context, path, showWarning); visitedPackageJsonFiles.add(path.fsPath); allTasks.push(...tasks); } @@ -203,16 +203,16 @@ async function detectNpmScripts(context: ExtensionContext, showWarning: boolean) export async function detectNpmScriptsForFolder(context: ExtensionContext, folder: Uri): Promise<IFolderTaskItem[]> { - let folderTasks: IFolderTaskItem[] = []; + const folderTasks: IFolderTaskItem[] = []; try { - let relativePattern = new RelativePattern(folder.fsPath, '**/package.json'); - let paths = await workspace.findFiles(relativePattern, '**/node_modules/**'); + const relativePattern = new RelativePattern(folder.fsPath, '**/package.json'); + const paths = await workspace.findFiles(relativePattern, '**/node_modules/**'); - let visitedPackageJsonFiles: Set<string> = new Set(); + const visitedPackageJsonFiles: Set<string> = new Set(); for (const path of paths) { if (!visitedPackageJsonFiles.has(path.fsPath)) { - let tasks = await provideNpmScriptsForFolder(context, path, true); + const tasks = await provideNpmScriptsForFolder(context, path, true); visitedPackageJsonFiles.add(path.fsPath); folderTasks.push(...tasks.map(t => ({ label: t.task.name, task: t.task }))); } @@ -239,12 +239,12 @@ function isExcluded(folder: WorkspaceFolder, packageJsonUri: Uri) { return minimatch(path, pattern, { dot: true }); } - let exclude = workspace.getConfiguration('npm', folder.uri).get<string | string[]>('exclude'); - let packageJsonFolder = path.dirname(packageJsonUri.fsPath); + const exclude = workspace.getConfiguration('npm', folder.uri).get<string | string[]>('exclude'); + const packageJsonFolder = path.dirname(packageJsonUri.fsPath); if (exclude) { if (Array.isArray(exclude)) { - for (let pattern of exclude) { + for (const pattern of exclude) { if (testForExclusionPattern(packageJsonFolder, pattern)) { return true; } @@ -257,18 +257,18 @@ function isExcluded(folder: WorkspaceFolder, packageJsonUri: Uri) { } function isDebugScript(script: string): boolean { - let match = script.match(/--(inspect|debug)(-brk)?(=((\[[0-9a-fA-F:]*\]|[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+|[a-zA-Z0-9\.]*):)?(\d+))?/); + const match = script.match(/--(inspect|debug)(-brk)?(=((\[[0-9a-fA-F:]*\]|[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+|[a-zA-Z0-9\.]*):)?(\d+))?/); return match !== null; } async function provideNpmScriptsForFolder(context: ExtensionContext, packageJsonUri: Uri, showWarning: boolean): Promise<ITaskWithLocation[]> { - let emptyTasks: ITaskWithLocation[] = []; + const emptyTasks: ITaskWithLocation[] = []; - let folder = workspace.getWorkspaceFolder(packageJsonUri); + const folder = workspace.getWorkspaceFolder(packageJsonUri); if (!folder) { return emptyTasks; } - let scripts = await getScripts(packageJsonUri); + const scripts = await getScripts(packageJsonUri); if (!scripts) { return emptyTasks; } @@ -318,17 +318,17 @@ export async function createTask(packageManager: string, script: INpmTaskDefinit } function getRelativePath(packageJsonUri: Uri): string { - let rootUri = folder.uri; - let absolutePath = packageJsonUri.path.substring(0, packageJsonUri.path.length - 'package.json'.length); + const rootUri = folder.uri; + const absolutePath = packageJsonUri.path.substring(0, packageJsonUri.path.length - 'package.json'.length); return absolutePath.substring(rootUri.path.length + 1); } - let relativePackageJson = getRelativePath(packageJsonUri); + const relativePackageJson = getRelativePath(packageJsonUri); if (relativePackageJson.length && !kind.path) { kind.path = relativePackageJson.substring(0, relativePackageJson.length - 1); } - let taskName = getTaskName(kind.script, relativePackageJson); - let cwd = path.dirname(packageJsonUri.fsPath); + const taskName = getTaskName(kind.script, relativePackageJson); + const cwd = path.dirname(packageJsonUri.fsPath); const task = new Task(kind, folder, taskName, 'npm', new ShellExecution(packageManager, getCommandLine(cmd), { cwd: cwd }), matcher); task.detail = scriptValue; @@ -368,13 +368,13 @@ export async function hasPackageJson(): Promise<boolean> { } async function hasRootPackageJson(): Promise<boolean> { - let folders = workspace.workspaceFolders; + const folders = workspace.workspaceFolders; if (!folders) { return false; } for (const folder of folders) { if (folder.uri.scheme === 'file') { - let packageJson = path.join(folder.uri.fsPath, 'package.json'); + const packageJson = path.join(folder.uri.fsPath, 'package.json'); if (await exists(packageJson)) { return true; } @@ -392,8 +392,8 @@ async function exists(file: string): Promise<boolean> { } export async function runScript(context: ExtensionContext, script: string, document: TextDocument) { - let uri = document.uri; - let folder = workspace.getWorkspaceFolder(uri); + const uri = document.uri; + const folder = workspace.getWorkspaceFolder(uri); if (folder) { const task = await createTask(await getPackageManager(context, folder.uri), script, ['run', script], folder, uri); tasks.executeTask(task); @@ -432,7 +432,7 @@ export async function getScripts(packageJsonUri: Uri) { return undefined; } - let packageJson = packageJsonUri.fsPath; + const packageJson = packageJsonUri.fsPath; if (!await exists(packageJson)) { return undefined; } @@ -441,7 +441,7 @@ export async function getScripts(packageJsonUri: Uri) { const document: TextDocument = await workspace.openTextDocument(packageJsonUri); return readScripts(document); } catch (e) { - let localizedParseError = localize('npm.parseError', 'Npm task detection: failed to parse the file {0}', packageJsonUri.fsPath); + const localizedParseError = localize('npm.parseError', 'Npm task detection: failed to parse the file {0}', packageJsonUri.fsPath); throw new Error(localizedParseError); } } diff --git a/extensions/php-language-features/src/features/completionItemProvider.ts b/extensions/php-language-features/src/features/completionItemProvider.ts index c57085c3fc8..205c59d77b8 100644 --- a/extensions/php-language-features/src/features/completionItemProvider.ts +++ b/extensions/php-language-features/src/features/completionItemProvider.ts @@ -10,15 +10,15 @@ import phpGlobalFunctions = require('./phpGlobalFunctions'); export default class PHPCompletionItemProvider implements CompletionItemProvider { public provideCompletionItems(document: TextDocument, position: Position, _token: CancellationToken, context: CompletionContext): Promise<CompletionItem[]> { - let result: CompletionItem[] = []; + const result: CompletionItem[] = []; - let shouldProvideCompletionItems = workspace.getConfiguration('php').get<boolean>('suggest.basic', true); + const shouldProvideCompletionItems = workspace.getConfiguration('php').get<boolean>('suggest.basic', true); if (!shouldProvideCompletionItems) { return Promise.resolve(result); } let range = document.getWordRangeAtPosition(position); - let prefix = range ? document.getText(range) : ''; + const prefix = range ? document.getText(range) : ''; if (!range) { range = new Range(position, position); } @@ -31,9 +31,9 @@ export default class PHPCompletionItemProvider implements CompletionItemProvider } } - let added: any = {}; - let createNewProposal = function (kind: CompletionItemKind, name: string, entry: phpGlobals.IEntry | null): CompletionItem { - let proposal: CompletionItem = new CompletionItem(name); + const added: any = {}; + const createNewProposal = function (kind: CompletionItemKind, name: string, entry: phpGlobals.IEntry | null): CompletionItem { + const proposal: CompletionItem = new CompletionItem(name); proposal.kind = kind; if (entry) { if (entry.description) { @@ -46,63 +46,63 @@ export default class PHPCompletionItemProvider implements CompletionItemProvider return proposal; }; - let matches = (name: string) => { + const matches = (name: string) => { return prefix.length === 0 || name.length >= prefix.length && name.substr(0, prefix.length) === prefix; }; if (matches('php') && range.start.character >= 2) { - let twoBeforePosition = new Position(range.start.line, range.start.character - 2); - let beforeWord = document.getText(new Range(twoBeforePosition, range.start)); + const twoBeforePosition = new Position(range.start.line, range.start.character - 2); + const beforeWord = document.getText(new Range(twoBeforePosition, range.start)); if (beforeWord === '<?') { - let proposal = createNewProposal(CompletionItemKind.Class, '<?php', null); + const proposal = createNewProposal(CompletionItemKind.Class, '<?php', null); proposal.textEdit = new TextEdit(new Range(twoBeforePosition, position), '<?php'); result.push(proposal); return Promise.resolve(result); } } - for (let globalvariables in phpGlobals.globalvariables) { + for (const globalvariables in phpGlobals.globalvariables) { if (phpGlobals.globalvariables.hasOwnProperty(globalvariables) && matches(globalvariables)) { added[globalvariables] = true; result.push(createNewProposal(CompletionItemKind.Variable, globalvariables, phpGlobals.globalvariables[globalvariables])); } } - for (let globalfunctions in phpGlobalFunctions.globalfunctions) { + for (const globalfunctions in phpGlobalFunctions.globalfunctions) { if (phpGlobalFunctions.globalfunctions.hasOwnProperty(globalfunctions) && matches(globalfunctions)) { added[globalfunctions] = true; result.push(createNewProposal(CompletionItemKind.Function, globalfunctions, phpGlobalFunctions.globalfunctions[globalfunctions])); } } - for (let compiletimeconstants in phpGlobals.compiletimeconstants) { + for (const compiletimeconstants in phpGlobals.compiletimeconstants) { if (phpGlobals.compiletimeconstants.hasOwnProperty(compiletimeconstants) && matches(compiletimeconstants)) { added[compiletimeconstants] = true; result.push(createNewProposal(CompletionItemKind.Field, compiletimeconstants, phpGlobals.compiletimeconstants[compiletimeconstants])); } } - for (let keywords in phpGlobals.keywords) { + for (const keywords in phpGlobals.keywords) { if (phpGlobals.keywords.hasOwnProperty(keywords) && matches(keywords)) { added[keywords] = true; result.push(createNewProposal(CompletionItemKind.Keyword, keywords, phpGlobals.keywords[keywords])); } } - let text = document.getText(); + const text = document.getText(); if (prefix[0] === '$') { - let variableMatch = /\$([a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*)/g; + const variableMatch = /\$([a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*)/g; let match: RegExpExecArray | null = null; while (match = variableMatch.exec(text)) { - let word = match[0]; + const word = match[0]; if (!added[word]) { added[word] = true; result.push(createNewProposal(CompletionItemKind.Variable, word, null)); } } } - let functionMatch = /function\s+([a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*)\s*\(/g; + const functionMatch = /function\s+([a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*)\s*\(/g; let match2: RegExpExecArray | null = null; while (match2 = functionMatch.exec(text)) { - let word2 = match2[1]; + const word2 = match2[1]; if (!added[word2]) { added[word2] = true; result.push(createNewProposal(CompletionItemKind.Function, word2, null)); diff --git a/extensions/php-language-features/src/features/hoverProvider.ts b/extensions/php-language-features/src/features/hoverProvider.ts index a79da4073a9..fdf489187e1 100644 --- a/extensions/php-language-features/src/features/hoverProvider.ts +++ b/extensions/php-language-features/src/features/hoverProvider.ts @@ -11,22 +11,22 @@ import phpGlobalFunctions = require('./phpGlobalFunctions'); export default class PHPHoverProvider implements HoverProvider { public provideHover(document: TextDocument, position: Position, _token: CancellationToken): Hover | undefined { - let enable = workspace.getConfiguration('php').get<boolean>('suggest.basic', true); + const enable = workspace.getConfiguration('php').get<boolean>('suggest.basic', true); if (!enable) { return undefined; } - let wordRange = document.getWordRangeAtPosition(position); + const wordRange = document.getWordRangeAtPosition(position); if (!wordRange) { return undefined; } - let name = document.getText(wordRange); + const name = document.getText(wordRange); - let entry = phpGlobalFunctions.globalfunctions[name] || phpGlobals.compiletimeconstants[name] || phpGlobals.globalvariables[name] || phpGlobals.keywords[name]; + const entry = phpGlobalFunctions.globalfunctions[name] || phpGlobals.compiletimeconstants[name] || phpGlobals.globalvariables[name] || phpGlobals.keywords[name]; if (entry && entry.description) { - let signature = name + (entry.signature || ''); - let contents: MarkedString[] = [textToMarkedString(entry.description), { language: 'php', value: signature }]; + const signature = name + (entry.signature || ''); + const contents: MarkedString[] = [textToMarkedString(entry.description), { language: 'php', value: signature }]; return new Hover(contents, wordRange); } diff --git a/extensions/php-language-features/src/features/signatureHelpProvider.ts b/extensions/php-language-features/src/features/signatureHelpProvider.ts index 09db65929da..bf56516caf0 100644 --- a/extensions/php-language-features/src/features/signatureHelpProvider.ts +++ b/extensions/php-language-features/src/features/signatureHelpProvider.ts @@ -58,7 +58,7 @@ class BackwardIterator { this.lineNumber = -1; return BOF; } - let ch = this.line.charCodeAt(this.offset); + const ch = this.line.charCodeAt(this.offset); this.offset--; return ch; } @@ -69,36 +69,36 @@ class BackwardIterator { export default class PHPSignatureHelpProvider implements SignatureHelpProvider { public provideSignatureHelp(document: TextDocument, position: Position, _token: CancellationToken): Promise<SignatureHelp> | null { - let enable = workspace.getConfiguration('php').get<boolean>('suggest.basic', true); + const enable = workspace.getConfiguration('php').get<boolean>('suggest.basic', true); if (!enable) { return null; } - let iterator = new BackwardIterator(document, position.character - 1, position.line); + const iterator = new BackwardIterator(document, position.character - 1, position.line); - let paramCount = this.readArguments(iterator); + const paramCount = this.readArguments(iterator); if (paramCount < 0) { return null; } - let ident = this.readIdent(iterator); + const ident = this.readIdent(iterator); if (!ident) { return null; } - let entry = phpGlobalFunctions.globalfunctions[ident] || phpGlobals.keywords[ident]; + const entry = phpGlobalFunctions.globalfunctions[ident] || phpGlobals.keywords[ident]; if (!entry || !entry.signature) { return null; } - let paramsString = entry.signature.substring(0, entry.signature.lastIndexOf(')') + 1); - let signatureInfo = new SignatureInformation(ident + paramsString, entry.description); + const paramsString = entry.signature.substring(0, entry.signature.lastIndexOf(')') + 1); + const signatureInfo = new SignatureInformation(ident + paramsString, entry.description); - let re = /\w*\s+\&?\$[\w_\.]+|void/g; + const re = /\w*\s+\&?\$[\w_\.]+|void/g; let match: RegExpExecArray | null = null; while ((match = re.exec(paramsString)) !== null) { signatureInfo.parameters.push({ label: match[0], documentation: '' }); } - let ret = new SignatureHelp(); + const ret = new SignatureHelp(); ret.signatures.push(signatureInfo); ret.activeSignature = 0; ret.activeParameter = Math.min(paramCount, signatureInfo.parameters.length - 1); @@ -111,7 +111,7 @@ export default class PHPSignatureHelpProvider implements SignatureHelpProvider { let curlyNesting = 0; let paramCount = 0; while (iterator.hasNext()) { - let ch = iterator.next(); + const ch = iterator.next(); switch (ch) { case _LParent: parentNesting--; @@ -156,7 +156,7 @@ export default class PHPSignatureHelpProvider implements SignatureHelpProvider { let identStarted = false; let ident = ''; while (iterator.hasNext()) { - let ch = iterator.next(); + const ch = iterator.next(); if (!identStarted && (ch === _WSB || ch === _TAB || ch === _NL)) { continue; } diff --git a/extensions/php-language-features/src/features/utils/async.ts b/extensions/php-language-features/src/features/utils/async.ts index 7364553e081..84a54c4fcd1 100644 --- a/extensions/php-language-features/src/features/utils/async.ts +++ b/extensions/php-language-features/src/features/utils/async.ts @@ -44,10 +44,10 @@ export class Throttler<T> { this.queuedPromiseFactory = promiseFactory; if (!this.queuedPromise) { - let onComplete = () => { + const onComplete = () => { this.queuedPromise = null; - let result = this.queue(this.queuedPromiseFactory!); + const result = this.queue(this.queuedPromiseFactory!); this.queuedPromiseFactory = null; return result; @@ -127,7 +127,7 @@ export class Delayer<T> { this.completionPromise = null; this.onResolve = null; - let result = this.task!(); + const result = this.task!(); this.task = null; return result; diff --git a/extensions/php-language-features/src/features/validationProvider.ts b/extensions/php-language-features/src/features/validationProvider.ts index 6a494b3231a..b50e2e8e779 100644 --- a/extensions/php-language-features/src/features/validationProvider.ts +++ b/extensions/php-language-features/src/features/validationProvider.ts @@ -10,7 +10,7 @@ import * as path from 'path'; import * as vscode from 'vscode'; import { ThrottledDelayer } from './utils/async'; import * as nls from 'vscode-nls'; -let localize = nls.loadMessageBundle(); +const localize = nls.loadMessageBundle(); const enum Setting { Run = 'php.validate.run', @@ -28,8 +28,8 @@ export class LineDecoder { } public write(buffer: Buffer): string[] { - let result: string[] = []; - let value = this.remaining + const result: string[] = []; + const value = this.remaining ? this.remaining + this.stringDecoder.write(buffer) : this.stringDecoder.write(buffer); @@ -70,11 +70,11 @@ enum RunTrigger { } namespace RunTrigger { - export let strings = { + export const strings = { onSave: 'onSave', onType: 'onType' }; - export let from = function (value: string): RunTrigger { + export const from = function (value: string): RunTrigger { if (value === 'onType') { return RunTrigger.onType; } else { @@ -165,7 +165,7 @@ export default class PHPValidationProvider { } if (vscode.workspace.isTrusted) { - let key = textDocument.uri.toString(); + const key = textDocument.uri.toString(); let delayer = this.delayers![key]; if (!delayer) { delayer = new ThrottledDelayer<void>(this.config?.trigger === RunTrigger.onType ? 250 : 0); @@ -191,14 +191,14 @@ export default class PHPValidationProvider { return; } - let decoder = new LineDecoder(); - let diagnostics: vscode.Diagnostic[] = []; - let processLine = (line: string) => { - let matches = line.match(PHPValidationProvider.MatchExpression); + const decoder = new LineDecoder(); + const diagnostics: vscode.Diagnostic[] = []; + const processLine = (line: string) => { + const matches = line.match(PHPValidationProvider.MatchExpression); if (matches) { - let message = matches[1]; - let line = parseInt(matches[3]) - 1; - let diagnostic: vscode.Diagnostic = new vscode.Diagnostic( + const message = matches[1]; + const line = parseInt(matches[3]) - 1; + const diagnostic: vscode.Diagnostic = new vscode.Diagnostic( new vscode.Range(line, 0, line, Number.MAX_VALUE), message ); @@ -206,7 +206,7 @@ export default class PHPValidationProvider { } }; - let options = (vscode.workspace.workspaceFolders && vscode.workspace.workspaceFolders[0]) ? { cwd: vscode.workspace.workspaceFolders[0].uri.fsPath } : undefined; + const options = (vscode.workspace.workspaceFolders && vscode.workspace.workspaceFolders[0]) ? { cwd: vscode.workspace.workspaceFolders[0].uri.fsPath } : undefined; let args: string[]; if (this.config!.trigger === RunTrigger.onSave) { args = PHPValidationProvider.FileArgs.slice(0); @@ -215,7 +215,7 @@ export default class PHPValidationProvider { args = PHPValidationProvider.BufferArgs; } try { - let childProcess = cp.spawn(executable, args, options); + const childProcess = cp.spawn(executable, args, options); childProcess.on('error', (error: Error) => { if (this.pauseValidation) { resolve(); @@ -234,7 +234,7 @@ export default class PHPValidationProvider { decoder.write(data).forEach(processLine); }); childProcess.stdout.on('end', () => { - let line = decoder.end(); + const line = decoder.end(); if (line) { processLine(line); } diff --git a/extensions/php-language-features/src/phpMain.ts b/extensions/php-language-features/src/phpMain.ts index 554b2f6613b..b35d523b350 100644 --- a/extensions/php-language-features/src/phpMain.ts +++ b/extensions/php-language-features/src/phpMain.ts @@ -12,7 +12,7 @@ import PHPValidationProvider from './features/validationProvider'; export function activate(context: vscode.ExtensionContext): any { - let validator = new PHPValidationProvider(); + const validator = new PHPValidationProvider(); validator.activate(context.subscriptions); // add providers diff --git a/extensions/references-view/src/references/model.ts b/extensions/references-view/src/references/model.ts index 9814f3ec32f..d9716d72dd6 100644 --- a/extensions/references-view/src/references/model.ts +++ b/extensions/references-view/src/references/model.ts @@ -78,8 +78,8 @@ export class ReferencesModel implements SymbolItemNavigation<FileItem | Referenc } private static _compareUriIgnoreFragment(a: vscode.Uri, b: vscode.Uri): number { - let aStr = a.with({ fragment: '' }).toString(); - let bStr = b.with({ fragment: '' }).toString(); + const aStr = a.with({ fragment: '' }).toString(); + const bStr = b.with({ fragment: '' }).toString(); if (aStr < bStr) { return -1; } else if (aStr > bStr) { @@ -89,16 +89,16 @@ export class ReferencesModel implements SymbolItemNavigation<FileItem | Referenc } private static _compareLocations(a: vscode.Location | vscode.LocationLink, b: vscode.Location | vscode.LocationLink): number { - let aUri = a instanceof vscode.Location ? a.uri : a.targetUri; - let bUri = b instanceof vscode.Location ? b.uri : b.targetUri; + const aUri = a instanceof vscode.Location ? a.uri : a.targetUri; + const bUri = b instanceof vscode.Location ? b.uri : b.targetUri; if (aUri.toString() < bUri.toString()) { return -1; } else if (aUri.toString() > bUri.toString()) { return 1; } - let aRange = a instanceof vscode.Location ? a.range : a.targetRange; - let bRange = b instanceof vscode.Location ? b.range : b.targetRange; + const aRange = a instanceof vscode.Location ? a.range : a.targetRange; + const bRange = b instanceof vscode.Location ? b.range : b.targetRange; if (aRange.start.isBefore(bRange.start)) { return -1; } else if (aRange.start.isAfter(bRange.start)) { @@ -163,10 +163,10 @@ export class ReferencesModel implements SymbolItemNavigation<FileItem | Referenc // (3) pick the file with the longest common prefix let best = 0; - let bestValue = ReferencesModel._prefixLen(this.items[best].toString(), uri.toString()); + const bestValue = ReferencesModel._prefixLen(this.items[best].toString(), uri.toString()); for (let i = 1; i < this.items.length; i++) { - let value = ReferencesModel._prefixLen(this.items[i].uri.toString(), uri.toString()); + const value = ReferencesModel._prefixLen(this.items[i].uri.toString(), uri.toString()); if (value > bestValue) { best = i; } @@ -340,7 +340,7 @@ export class FileItem { async asCopyText() { let result = `${vscode.workspace.asRelativePath(this.uri)}\n`; - for (let ref of this.references) { + for (const ref of this.references) { result += ` ${await ref.asCopyText()}\n`; } return result; @@ -379,8 +379,8 @@ export class ReferenceItem { } async asCopyText() { - let doc = await this.getDocument(); - let chunks = getPreviewChunks(doc, this.location.range, 21, false); + const doc = await this.getDocument(); + const chunks = getPreviewChunks(doc, this.location.range, 21, false); return `${this.location.range.start.line + 1}, ${this.location.range.start.character + 1}: ${chunks.before + chunks.inside + chunks.after}`; } } diff --git a/extensions/references-view/src/tree.ts b/extensions/references-view/src/tree.ts index 8eb533cc5da..df38d11407e 100644 --- a/extensions/references-view/src/tree.ts +++ b/extensions/references-view/src/tree.ts @@ -206,7 +206,7 @@ class TreeDndDelegate implements vscode.TreeDragAndDropController<undefined> { handleDrag(source: undefined[], data: vscode.DataTransfer) { if (this._delegate) { const urls: string[] = []; - for (let item of source) { + for (const item of source) { const uri = this._delegate.getDragUri(item); if (uri) { urls.push(uri.toString()); diff --git a/extensions/references-view/src/utils.ts b/extensions/references-view/src/utils.ts index 2948aab0bc4..cd25e549e17 100644 --- a/extensions/references-view/src/utils.ts +++ b/extensions/references-view/src/utils.ts @@ -30,11 +30,11 @@ export async function isValidRequestPosition(uri: vscode.Uri, position: vscode.P } export function getPreviewChunks(doc: vscode.TextDocument, range: vscode.Range, beforeLen: number = 8, trim: boolean = true) { - let previewStart = range.start.with({ character: Math.max(0, range.start.character - beforeLen) }); - let wordRange = doc.getWordRangeAtPosition(previewStart); + const previewStart = range.start.with({ character: Math.max(0, range.start.character - beforeLen) }); + const wordRange = doc.getWordRangeAtPosition(previewStart); let before = doc.getText(new vscode.Range(wordRange ? wordRange.start : previewStart, range.start)); - let inside = doc.getText(range); - let previewEnd = range.end.translate(0, 331); + const inside = doc.getText(range); + const previewEnd = range.end.translate(0, 331); let after = doc.getText(new vscode.Range(range.end, previewEnd)); if (trim) { before = before.replace(/^\s*/g, ''); @@ -99,7 +99,7 @@ export class WordAnchor { line = startLine + i; if (line < this._doc.lineCount) { checked = true; - let ch = this._doc.lineAt(line).text.indexOf(this._word); + const ch = this._doc.lineAt(line).text.indexOf(this._word); if (ch >= 0) { return new vscode.Position(line, ch); } @@ -109,7 +109,7 @@ export class WordAnchor { line = startLine - i; if (line >= 0) { checked = true; - let ch = this._doc.lineAt(line).text.indexOf(this._word); + const ch = this._doc.lineAt(line).text.indexOf(this._word); if (ch >= 0) { return new vscode.Position(line, ch); } @@ -131,6 +131,6 @@ const _themeIconIds = [ ]; export function getThemeIcon(kind: vscode.SymbolKind): vscode.ThemeIcon | undefined { - let id = _themeIconIds[kind]; + const id = _themeIconIds[kind]; return id ? new vscode.ThemeIcon(id) : undefined; } diff --git a/extensions/search-result/src/extension.ts b/extensions/search-result/src/extension.ts index 3c397453d04..90443f16771 100644 --- a/extensions/search-result/src/extension.ts +++ b/extensions/search-result/src/extension.ts @@ -225,7 +225,7 @@ function parseSearchResults(document: vscode.TextDocument, token?: vscode.Cancel const metadataOffset = (indentation + _lineNumber + separator).length; const targetRange = new vscode.Range(Math.max(lineNumber - 3, 0), 0, lineNumber + 3, line.length); - let locations: Required<vscode.LocationLink>[] = []; + const locations: Required<vscode.LocationLink>[] = []; let lastEnd = metadataOffset; let offset = 0; @@ -256,7 +256,7 @@ function parseSearchResults(document: vscode.TextDocument, token?: vscode.Cancel } // Allow line number, indentation, etc to take you to definition as well. - let convenienceLocation: Required<vscode.LocationLink> = { + const convenienceLocation: Required<vscode.LocationLink> = { targetRange, targetSelectionRange: new vscode.Range(lineNumber, 0, lineNumber, 1), targetUri: currentTarget, diff --git a/extensions/shared.webpack.config.js b/extensions/shared.webpack.config.js index 3ebb9c62b52..a33fa89ce30 100644 --- a/extensions/shared.webpack.config.js +++ b/extensions/shared.webpack.config.js @@ -17,7 +17,7 @@ const { DefinePlugin } = require('webpack'); function withNodeDefaults(/**@type WebpackConfig*/extConfig) { /** @type WebpackConfig */ - let defaultConfig = { + const defaultConfig = { mode: 'none', // this leaves the source code as close as possible to the original (when packaging we set this to 'production') target: 'node', // extensions run in a node context node: { @@ -93,7 +93,7 @@ function nodePlugins(context) { function withBrowserDefaults(/**@type WebpackConfig*/extConfig, /** @type AdditionalBrowserConfig */ additionalOptions = {}) { /** @type WebpackConfig */ - let defaultConfig = { + const defaultConfig = { mode: 'none', // this leaves the source code as close as possible to the original (when packaging we set this to 'production') target: 'webworker', // extensions run in a webworker context resolve: { diff --git a/extensions/vscode-api-tests/src/memfs.ts b/extensions/vscode-api-tests/src/memfs.ts index 4f0129da6cb..b7392ae7195 100644 --- a/extensions/vscode-api-tests/src/memfs.ts +++ b/extensions/vscode-api-tests/src/memfs.ts @@ -65,7 +65,7 @@ export class TestFS implements vscode.FileSystemProvider { readDirectory(uri: vscode.Uri): [string, vscode.FileType][] { const entry = this._lookupAsDirectory(uri, false); - let result: [string, vscode.FileType][] = []; + const result: [string, vscode.FileType][] = []; for (const [name, child] of entry.entries) { result.push([name, child.type]); } @@ -83,8 +83,8 @@ export class TestFS implements vscode.FileSystemProvider { } writeFile(uri: vscode.Uri, content: Uint8Array, options: { create: boolean; overwrite: boolean }): void { - let basename = path.posix.basename(uri.path); - let parent = this._lookupParentDirectory(uri); + const basename = path.posix.basename(uri.path); + const parent = this._lookupParentDirectory(uri); let entry = parent.entries.get(basename); if (entry instanceof Directory) { throw vscode.FileSystemError.FileIsADirectory(uri); @@ -115,11 +115,11 @@ export class TestFS implements vscode.FileSystemProvider { throw vscode.FileSystemError.FileExists(newUri); } - let entry = this._lookup(oldUri, false); - let oldParent = this._lookupParentDirectory(oldUri); + const entry = this._lookup(oldUri, false); + const oldParent = this._lookupParentDirectory(oldUri); - let newParent = this._lookupParentDirectory(newUri); - let newName = path.posix.basename(newUri.path); + const newParent = this._lookupParentDirectory(newUri); + const newName = path.posix.basename(newUri.path); oldParent.entries.delete(entry.name); entry.name = newName; @@ -132,9 +132,9 @@ export class TestFS implements vscode.FileSystemProvider { } delete(uri: vscode.Uri): void { - let dirname = uri.with({ path: path.posix.dirname(uri.path) }); - let basename = path.posix.basename(uri.path); - let parent = this._lookupAsDirectory(dirname, false); + const dirname = uri.with({ path: path.posix.dirname(uri.path) }); + const basename = path.posix.basename(uri.path); + const parent = this._lookupAsDirectory(dirname, false); if (!parent.entries.has(basename)) { throw vscode.FileSystemError.FileNotFound(uri); } @@ -145,11 +145,11 @@ export class TestFS implements vscode.FileSystemProvider { } createDirectory(uri: vscode.Uri): void { - let basename = path.posix.basename(uri.path); - let dirname = uri.with({ path: path.posix.dirname(uri.path) }); - let parent = this._lookupAsDirectory(dirname, false); + const basename = path.posix.basename(uri.path); + const dirname = uri.with({ path: path.posix.dirname(uri.path) }); + const parent = this._lookupAsDirectory(dirname, false); - let entry = new Directory(basename); + const entry = new Directory(basename); parent.entries.set(entry.name, entry); parent.mtime = Date.now(); parent.size += 1; @@ -161,7 +161,7 @@ export class TestFS implements vscode.FileSystemProvider { private _lookup(uri: vscode.Uri, silent: false): Entry; private _lookup(uri: vscode.Uri, silent: boolean): Entry | undefined; private _lookup(uri: vscode.Uri, silent: boolean): Entry | undefined { - let parts = uri.path.split('/'); + const parts = uri.path.split('/'); let entry: Entry = this.root; for (const part of parts) { const partLow = part.toLowerCase(); @@ -173,7 +173,7 @@ export class TestFS implements vscode.FileSystemProvider { if (this.isCaseSensitive) { child = entry.entries.get(part); } else { - for (let [key, value] of entry.entries) { + for (const [key, value] of entry.entries) { if (key.toLowerCase() === partLow) { child = value; break; @@ -194,7 +194,7 @@ export class TestFS implements vscode.FileSystemProvider { } private _lookupAsDirectory(uri: vscode.Uri, silent: boolean): Directory { - let entry = this._lookup(uri, silent); + const entry = this._lookup(uri, silent); if (entry instanceof Directory) { return entry; } @@ -202,7 +202,7 @@ export class TestFS implements vscode.FileSystemProvider { } private _lookupAsFile(uri: vscode.Uri, silent: boolean): File { - let entry = this._lookup(uri, silent); + const entry = this._lookup(uri, silent); if (entry instanceof File) { return entry; } diff --git a/extensions/vscode-api-tests/src/singlefolder-tests/commands.test.ts b/extensions/vscode-api-tests/src/singlefolder-tests/commands.test.ts index b241b7170ec..874d69541e7 100644 --- a/extensions/vscode-api-tests/src/singlefolder-tests/commands.test.ts +++ b/extensions/vscode-api-tests/src/singlefolder-tests/commands.test.ts @@ -15,9 +15,9 @@ suite('vscode API - commands', () => { test('getCommands', function (done) { - let p1 = commands.getCommands().then(commands => { + const p1 = commands.getCommands().then(commands => { let hasOneWithUnderscore = false; - for (let command of commands) { + for (const command of commands) { if (command[0] === '_') { hasOneWithUnderscore = true; break; @@ -26,9 +26,9 @@ suite('vscode API - commands', () => { assert.ok(hasOneWithUnderscore); }, done); - let p2 = commands.getCommands(true).then(commands => { + const p2 = commands.getCommands(true).then(commands => { let hasOneWithUnderscore = false; - for (let command of commands) { + for (const command of commands) { if (command[0] === '_') { hasOneWithUnderscore = true; break; @@ -45,7 +45,7 @@ suite('vscode API - commands', () => { test('command with args', async function () { let args: IArguments; - let registration = commands.registerCommand('t1', function () { + const registration = commands.registerCommand('t1', function () { args = arguments; }); @@ -59,7 +59,7 @@ suite('vscode API - commands', () => { test('editorCommand with extra args', function () { let args: IArguments; - let registration = commands.registerTextEditorCommand('t1', function () { + const registration = commands.registerTextEditorCommand('t1', function () { args = arguments; }); @@ -79,36 +79,36 @@ suite('vscode API - commands', () => { test('api-command: vscode.diff', function () { - let registration = workspace.registerTextDocumentContentProvider('sc', { + const registration = workspace.registerTextDocumentContentProvider('sc', { provideTextDocumentContent(uri) { return `content of URI <b>${uri.toString()}</b>#${Math.random()}`; } }); - let a = commands.executeCommand('vscode.diff', Uri.parse('sc:a'), Uri.parse('sc:b'), 'DIFF').then(value => { + const a = commands.executeCommand('vscode.diff', Uri.parse('sc:a'), Uri.parse('sc:b'), 'DIFF').then(value => { assert.ok(value === undefined); registration.dispose(); }); - let b = commands.executeCommand('vscode.diff', Uri.parse('sc:a'), Uri.parse('sc:b')).then(value => { + const b = commands.executeCommand('vscode.diff', Uri.parse('sc:a'), Uri.parse('sc:b')).then(value => { assert.ok(value === undefined); registration.dispose(); }); - let c = commands.executeCommand('vscode.diff', Uri.parse('sc:a'), Uri.parse('sc:b'), 'Title', { selection: new Range(new Position(1, 1), new Position(1, 2)) }).then(value => { + const c = commands.executeCommand('vscode.diff', Uri.parse('sc:a'), Uri.parse('sc:b'), 'Title', { selection: new Range(new Position(1, 1), new Position(1, 2)) }).then(value => { assert.ok(value === undefined); registration.dispose(); }); - let d = commands.executeCommand('vscode.diff').then(() => assert.ok(false), () => assert.ok(true)); - let e = commands.executeCommand('vscode.diff', 1, 2, 3).then(() => assert.ok(false), () => assert.ok(true)); + const d = commands.executeCommand('vscode.diff').then(() => assert.ok(false), () => assert.ok(true)); + const e = commands.executeCommand('vscode.diff', 1, 2, 3).then(() => assert.ok(false), () => assert.ok(true)); return Promise.all([a, b, c, d, e]); }); test('api-command: vscode.open', async function () { - let uri = Uri.parse(workspace.workspaceFolders![0].uri.toString() + '/far.js'); + const uri = Uri.parse(workspace.workspaceFolders![0].uri.toString() + '/far.js'); await commands.executeCommand('vscode.open', uri); assert.strictEqual(window.activeTextEditor?.viewColumn, ViewColumn.One); @@ -151,7 +151,7 @@ suite('vscode API - commands', () => { }); test('api-command: vscode.open with untitled supports associated resource (#138925)', async function () { - let uri = Uri.parse(workspace.workspaceFolders![0].uri.toString() + '/untitled-file.txt').with({ scheme: 'untitled' }); + const uri = Uri.parse(workspace.workspaceFolders![0].uri.toString() + '/untitled-file.txt').with({ scheme: 'untitled' }); await commands.executeCommand('vscode.open', uri).then(() => assert.ok(true), () => assert.ok(false)); // untitled with associated resource are dirty from the beginning diff --git a/extensions/vscode-api-tests/src/singlefolder-tests/languages.test.ts b/extensions/vscode-api-tests/src/singlefolder-tests/languages.test.ts index d0594904374..16a000969fb 100644 --- a/extensions/vscode-api-tests/src/singlefolder-tests/languages.test.ts +++ b/extensions/vscode-api-tests/src/singlefolder-tests/languages.test.ts @@ -33,7 +33,7 @@ suite('vscode API - languages', () => { let clock = 0; const disposables: vscode.Disposable[] = []; - let close = new Promise<void>(resolve => { + const close = new Promise<void>(resolve => { disposables.push(vscode.workspace.onDidCloseTextDocument(e => { if (e === doc) { assert.strictEqual(doc.languageId, langIdNow); @@ -43,7 +43,7 @@ suite('vscode API - languages', () => { } })); }); - let open = new Promise<void>(resolve => { + const open = new Promise<void>(resolve => { disposables.push(vscode.workspace.onDidOpenTextDocument(e => { if (e === doc) { // same instance! assert.strictEqual(doc.languageId, 'json'); @@ -53,7 +53,7 @@ suite('vscode API - languages', () => { } })); }); - let change = vscode.languages.setTextDocumentLanguage(doc, 'json'); + const change = vscode.languages.setTextDocumentLanguage(doc, 'json'); await Promise.all([change, close, open]); assert.strictEqual(clock, 2); assert.strictEqual(doc.languageId, 'json'); @@ -74,19 +74,19 @@ suite('vscode API - languages', () => { }); test('diagnostics, read & event', function () { - let uri = vscode.Uri.file('/foo/bar.txt'); - let col1 = vscode.languages.createDiagnosticCollection('foo1'); + const uri = vscode.Uri.file('/foo/bar.txt'); + const col1 = vscode.languages.createDiagnosticCollection('foo1'); col1.set(uri, [new vscode.Diagnostic(new vscode.Range(0, 0, 0, 12), 'error1')]); - let col2 = vscode.languages.createDiagnosticCollection('foo2'); + const col2 = vscode.languages.createDiagnosticCollection('foo2'); col2.set(uri, [new vscode.Diagnostic(new vscode.Range(0, 0, 0, 12), 'error1')]); - let diag = vscode.languages.getDiagnostics(uri); + const diag = vscode.languages.getDiagnostics(uri); assert.strictEqual(diag.length, 2); - let tuples = vscode.languages.getDiagnostics(); + const tuples = vscode.languages.getDiagnostics(); let found = false; - for (let [thisUri,] of tuples) { + for (const [thisUri,] of tuples) { if (thisUri.toString() === uri.toString()) { found = true; break; @@ -114,7 +114,7 @@ suite('vscode API - languages', () => { const links = await vscode.commands.executeCommand<vscode.DocumentLink[]>('vscode.executeLinkProvider', doc.uri); assert.strictEqual(links && links.length, 2, links.map(l => !l.target).join(', ')); - let [link1, link2] = links!.sort((l1, l2) => l1.range.start.compareTo(l2.range.start)); + const [link1, link2] = links!.sort((l1, l2) => l1.range.start.compareTo(l2.range.start)); assert.strictEqual(link1.target && link1.target.toString(), target.toString()); assertEqualRange(link1.range, range); @@ -132,17 +132,17 @@ suite('vscode API - languages', () => { } } - let diag1 = new vscode.Diagnostic(new vscode.Range(0, 0, 0, 5), 'montag'); - let diag2 = new D2(); + const diag1 = new vscode.Diagnostic(new vscode.Range(0, 0, 0, 5), 'montag'); + const diag2 = new D2(); let ran = false; - let uri = vscode.Uri.parse('ttt:path.far'); + const uri = vscode.Uri.parse('ttt:path.far'); - let r1 = vscode.languages.registerCodeActionsProvider({ pattern: '*.far', scheme: 'ttt' }, { + const r1 = vscode.languages.registerCodeActionsProvider({ pattern: '*.far', scheme: 'ttt' }, { provideCodeActions(_document, _range, ctx): vscode.Command[] { assert.strictEqual(ctx.diagnostics.length, 2); - let [first, second] = ctx.diagnostics; + const [first, second] = ctx.diagnostics; assert.ok(first === diag1); assert.ok(second === diag2); assert.ok(diag2 instanceof D2); @@ -151,16 +151,16 @@ suite('vscode API - languages', () => { } }); - let r2 = vscode.workspace.registerTextDocumentContentProvider('ttt', { + const r2 = vscode.workspace.registerTextDocumentContentProvider('ttt', { provideTextDocumentContent() { return 'this is some text'; } }); - let r3 = vscode.languages.createDiagnosticCollection(); + const r3 = vscode.languages.createDiagnosticCollection(); r3.set(uri, [diag1]); - let r4 = vscode.languages.createDiagnosticCollection(); + const r4 = vscode.languages.createDiagnosticCollection(); r4.set(uri, [diag2]); await vscode.workspace.openTextDocument(uri); @@ -171,13 +171,13 @@ suite('vscode API - languages', () => { test('completions with document filters', async function () { let ran = false; - let uri = vscode.Uri.file(join(vscode.workspace.rootPath || '', './bower.json')); + const uri = vscode.Uri.file(join(vscode.workspace.rootPath || '', './bower.json')); - let jsonDocumentFilter = [{ language: 'json', pattern: '**/package.json' }, { language: 'json', pattern: '**/bower.json' }, { language: 'json', pattern: '**/.bower.json' }]; + const jsonDocumentFilter = [{ language: 'json', pattern: '**/package.json' }, { language: 'json', pattern: '**/bower.json' }, { language: 'json', pattern: '**/.bower.json' }]; - let r1 = vscode.languages.registerCompletionItemProvider(jsonDocumentFilter, { + const r1 = vscode.languages.registerCompletionItemProvider(jsonDocumentFilter, { provideCompletionItems: (_document: vscode.TextDocument, _position: vscode.Position, _token: vscode.CancellationToken): vscode.CompletionItem[] => { - let proposal = new vscode.CompletionItem('foo'); + const proposal = new vscode.CompletionItem('foo'); proposal.kind = vscode.CompletionItemKind.Property; ran = true; return [proposal]; diff --git a/extensions/vscode-api-tests/src/singlefolder-tests/notebook.document.test.ts b/extensions/vscode-api-tests/src/singlefolder-tests/notebook.document.test.ts index a35824f058b..9fb4248687e 100644 --- a/extensions/vscode-api-tests/src/singlefolder-tests/notebook.document.test.ts +++ b/extensions/vscode-api-tests/src/singlefolder-tests/notebook.document.test.ts @@ -124,7 +124,7 @@ suite.skip('Notebook Document', function () { const p = utils.asPromise(vscode.workspace.onDidOpenNotebookDocument).then(notebook => { for (let i = 0; i < notebook.cellCount; i++) { - let cell = notebook.cellAt(i); + const cell = notebook.cellAt(i); const doc = vscode.workspace.textDocuments.find(doc => doc.uri.toString() === cell.document.uri.toString()); assert.ok(doc); diff --git a/extensions/vscode-api-tests/src/singlefolder-tests/notebook.editor.test.ts b/extensions/vscode-api-tests/src/singlefolder-tests/notebook.editor.test.ts index eeffb282f91..21b798dfbfd 100644 --- a/extensions/vscode-api-tests/src/singlefolder-tests/notebook.editor.test.ts +++ b/extensions/vscode-api-tests/src/singlefolder-tests/notebook.editor.test.ts @@ -51,7 +51,7 @@ import * as utils from '../utils'; utils.disposeAll(disposables); disposables.length = 0; - for (let doc of vscode.workspace.notebookDocuments) { + for (const doc of vscode.workspace.notebookDocuments) { assert.strictEqual(doc.isDirty, false, doc.uri.toString()); } }); diff --git a/extensions/vscode-api-tests/src/singlefolder-tests/terminal.test.ts b/extensions/vscode-api-tests/src/singlefolder-tests/terminal.test.ts index e1bf968ada9..3fa4ed05599 100644 --- a/extensions/vscode-api-tests/src/singlefolder-tests/terminal.test.ts +++ b/extensions/vscode-api-tests/src/singlefolder-tests/terminal.test.ts @@ -30,7 +30,7 @@ import { assertNoRpc, poll } from '../utils'; }); suite('Terminal', () => { - let disposables: Disposable[] = []; + const disposables: Disposable[] = []; teardown(async () => { assertNoRpc(); @@ -132,7 +132,7 @@ import { assertNoRpc, poll } from '../utils'; })); }); equal(result, terminal); - let pid = await result.processId; + const pid = await result.processId; equal(true, pid && pid > 0); await new Promise<void>(r => { disposables.push(window.onDidCloseTerminal(t => { diff --git a/extensions/vscode-api-tests/src/singlefolder-tests/window.test.ts b/extensions/vscode-api-tests/src/singlefolder-tests/window.test.ts index 5d004bb6db7..fd3c9a0d226 100644 --- a/extensions/vscode-api-tests/src/singlefolder-tests/window.test.ts +++ b/extensions/vscode-api-tests/src/singlefolder-tests/window.test.ts @@ -40,13 +40,13 @@ suite('vscode API - window', () => { test('editor, assign and check view columns', async () => { const doc = await workspace.openTextDocument(join(workspace.rootPath || '', './far.js')); - let p1 = window.showTextDocument(doc, ViewColumn.One).then(editor => { + const p1 = window.showTextDocument(doc, ViewColumn.One).then(editor => { assert.strictEqual(editor.viewColumn, ViewColumn.One); }); - let p2 = window.showTextDocument(doc, ViewColumn.Two).then(editor_1 => { + const p2 = window.showTextDocument(doc, ViewColumn.Two).then(editor_1 => { assert.strictEqual(editor_1.viewColumn, ViewColumn.Two); }); - let p3 = window.showTextDocument(doc, ViewColumn.Three).then(editor_2 => { + const p3 = window.showTextDocument(doc, ViewColumn.Three).then(editor_2 => { assert.strictEqual(editor_2.viewColumn, ViewColumn.Three); }); return Promise.all([p1, p2, p3]); @@ -54,7 +54,7 @@ suite('vscode API - window', () => { test('editor, onDidChangeVisibleTextEditors', async () => { let eventCounter = 0; - let reg = window.onDidChangeVisibleTextEditors(_editor => { + const reg = window.onDidChangeVisibleTextEditors(_editor => { eventCounter += 1; }); @@ -75,7 +75,7 @@ suite('vscode API - window', () => { let actualEvent: TextEditorViewColumnChangeEvent; - let registration1 = workspace.registerTextDocumentContentProvider('bikes', { + const registration1 = workspace.registerTextDocumentContentProvider('bikes', { provideTextDocumentContent() { return 'mountainbiking,roadcycling'; } @@ -86,10 +86,10 @@ suite('vscode API - window', () => { workspace.openTextDocument(Uri.parse('bikes://testing/two')).then(doc => window.showTextDocument(doc, ViewColumn.Two)) ]).then(async editors => { - let [one, two] = editors; + const [one, two] = editors; await new Promise<void>(resolve => { - let registration2 = window.onDidChangeTextEditorViewColumn(event => { + const registration2 = window.onDidChangeTextEditorViewColumn(event => { actualEvent = event; registration2.dispose(); resolve(); @@ -107,9 +107,9 @@ suite('vscode API - window', () => { test('editor, onDidChangeTextEditorViewColumn (move editor group)', () => { - let actualEvents: TextEditorViewColumnChangeEvent[] = []; + const actualEvents: TextEditorViewColumnChangeEvent[] = []; - let registration1 = workspace.registerTextDocumentContentProvider('bikes', { + const registration1 = workspace.registerTextDocumentContentProvider('bikes', { provideTextDocumentContent() { return 'mountainbiking,roadcycling'; } @@ -120,12 +120,12 @@ suite('vscode API - window', () => { workspace.openTextDocument(Uri.parse('bikes://testing/two')).then(doc => window.showTextDocument(doc, ViewColumn.Two)) ]).then(editors => { - let [, two] = editors; + const [, two] = editors; two.show(); return new Promise<void>(resolve => { - let registration2 = window.onDidChangeTextEditorViewColumn(event => { + const registration2 = window.onDidChangeTextEditorViewColumn(event => { actualEvents.push(event); if (actualEvents.length === 2) { @@ -182,10 +182,10 @@ suite('vscode API - window', () => { workspace.openTextDocument(randomFile2) ]); for (let c = 0; c < 4; c++) { - let editorA = await window.showTextDocument(docA, ViewColumn.One); + const editorA = await window.showTextDocument(docA, ViewColumn.One); assertActiveEditor(editorA); - let editorB = await window.showTextDocument(docB, ViewColumn.Two); + const editorB = await window.showTextDocument(docB, ViewColumn.Two); assertActiveEditor(editorB); } }); @@ -311,7 +311,7 @@ suite('vscode API - window', () => { const file30Path = join(workspace.rootPath || '', './30linefile.ts'); let finished = false; - let failOncePlease = (err: Error) => { + const failOncePlease = (err: Error) => { if (finished) { return; } @@ -319,7 +319,7 @@ suite('vscode API - window', () => { done(err); }; - let passOncePlease = () => { + const passOncePlease = () => { if (finished) { return; } @@ -327,10 +327,10 @@ suite('vscode API - window', () => { done(null); }; - let subscription = window.onDidChangeTextEditorSelection((e) => { - let lineCount = e.textEditor.document.lineCount; - let pos1 = e.textEditor.selections[0].active.line; - let pos2 = e.selections[0].active.line; + const subscription = window.onDidChangeTextEditorSelection((e) => { + const lineCount = e.textEditor.document.lineCount; + const pos1 = e.textEditor.selections[0].active.line; + const pos2 = e.selections[0].active.line; if (pos1 !== pos2) { failOncePlease(new Error('received invalid selection changed event!')); @@ -714,7 +714,7 @@ suite('vscode API - window', () => { test('#7013 - input without options', function () { const source = new CancellationTokenSource(); - let p = window.showInputBox(undefined, source.token); + const p = window.showInputBox(undefined, source.token); assert.ok(typeof p === 'object'); source.dispose(); }); @@ -990,7 +990,7 @@ suite('vscode API - window', () => { return new Promise<void>((resolve, _reject) => { - let subscription = window.onDidChangeTextEditorSelection(e => { + const subscription = window.onDidChangeTextEditorSelection(e => { assert.ok(e.textEditor === editor); assert.strictEqual(e.kind, TextEditorSelectionChangeKind.Command); diff --git a/extensions/vscode-api-tests/src/singlefolder-tests/workspace.tasks.test.ts b/extensions/vscode-api-tests/src/singlefolder-tests/workspace.tasks.test.ts index 4167e15ce00..2f99cd84a07 100644 --- a/extensions/vscode-api-tests/src/singlefolder-tests/workspace.tasks.test.ts +++ b/extensions/vscode-api-tests/src/singlefolder-tests/workspace.tasks.test.ts @@ -24,7 +24,7 @@ import { assertNoRpc } from '../utils'; }); suite('Tasks', () => { - let disposables: Disposable[] = []; + const disposables: Disposable[] = []; teardown(() => { assertNoRpc(); diff --git a/extensions/vscode-api-tests/src/singlefolder-tests/workspace.test.ts b/extensions/vscode-api-tests/src/singlefolder-tests/workspace.test.ts index 4337e8043c8..a055cf45520 100644 --- a/extensions/vscode-api-tests/src/singlefolder-tests/workspace.test.ts +++ b/extensions/vscode-api-tests/src/singlefolder-tests/workspace.test.ts @@ -132,7 +132,7 @@ suite('vscode API - workspace', () => { assert.ok(doc.isDirty); let closed: vscode.TextDocument; - let d0 = vscode.workspace.onDidCloseTextDocument(e => closed = e); + const d0 = vscode.workspace.onDidCloseTextDocument(e => closed = e); return vscode.window.showTextDocument(doc).then(() => { return doc.save().then((didSave: boolean) => { @@ -153,7 +153,7 @@ suite('vscode API - workspace', () => { test('openTextDocument, uri scheme/auth/path', function () { - let registration = vscode.workspace.registerTextDocumentContentProvider('sc', { + const registration = vscode.workspace.registerTextDocumentContentProvider('sc', { provideTextDocumentContent() { return 'SC'; } @@ -182,28 +182,28 @@ suite('vscode API - workspace', () => { const fs = new TestFS('this-fs', false); const reg = vscode.workspace.registerFileSystemProvider(fs.scheme, fs, { isCaseSensitive: fs.isCaseSensitive }); - let uriOne = vscode.Uri.parse('this-fs:/one'); - let uriTwo = vscode.Uri.parse('this-fs:/two'); - let uriONE = vscode.Uri.parse('this-fs:/ONE'); // same resource, different uri - let uriTWO = vscode.Uri.parse('this-fs:/TWO'); + const uriOne = vscode.Uri.parse('this-fs:/one'); + const uriTwo = vscode.Uri.parse('this-fs:/two'); + const uriONE = vscode.Uri.parse('this-fs:/ONE'); // same resource, different uri + const uriTWO = vscode.Uri.parse('this-fs:/TWO'); fs.writeFile(uriOne, Buffer.from('one'), { create: true, overwrite: true }); fs.writeFile(uriTwo, Buffer.from('two'), { create: true, overwrite: true }); // lower case (actual case) comes first - let docOne = await vscode.workspace.openTextDocument(uriOne); + const docOne = await vscode.workspace.openTextDocument(uriOne); assert.strictEqual(docOne.uri.toString(), uriOne.toString()); - let docONE = await vscode.workspace.openTextDocument(uriONE); + const docONE = await vscode.workspace.openTextDocument(uriONE); assert.strictEqual(docONE === docOne, true); assert.strictEqual(docONE.uri.toString(), uriOne.toString()); assert.strictEqual(docONE.uri.toString() !== uriONE.toString(), true); // yep // upper case (NOT the actual case) comes first - let docTWO = await vscode.workspace.openTextDocument(uriTWO); + const docTWO = await vscode.workspace.openTextDocument(uriTWO); assert.strictEqual(docTWO.uri.toString(), uriTWO.toString()); - let docTwo = await vscode.workspace.openTextDocument(uriTwo); + const docTwo = await vscode.workspace.openTextDocument(uriTwo); assert.strictEqual(docTWO === docTwo, true); assert.strictEqual(docTwo.uri.toString(), uriTWO.toString()); assert.strictEqual(docTwo.uri.toString() !== uriTwo.toString(), true); // yep @@ -264,7 +264,7 @@ suite('vscode API - workspace', () => { test('eol, change via onWillSave', async function () { let called = false; - let sub = vscode.workspace.onWillSaveTextDocument(e => { + const sub = vscode.workspace.onWillSaveTextDocument(e => { called = true; e.waitUntil(Promise.resolve([vscode.TextEdit.setEndOfLine(vscode.EndOfLine.LF)])); }); @@ -292,11 +292,11 @@ suite('vscode API - workspace', () => { test('events: onDidOpenTextDocument, onDidChangeTextDocument, onDidSaveTextDocument', async () => { const file = await createRandomFile(); - let disposables: vscode.Disposable[] = []; + const disposables: vscode.Disposable[] = []; await revertAllDirty(); // needed for a clean state for `onDidSaveTextDocument` (#102365) - let pendingAsserts: Function[] = []; + const pendingAsserts: Function[] = []; let onDidOpenTextDocument = false; disposables.push(vscode.workspace.onDidOpenTextDocument(e => { pendingAsserts.push(() => assertEqualPath(e.uri.fsPath, file.fsPath)); @@ -333,8 +333,8 @@ suite('vscode API - workspace', () => { test('events: onDidSaveTextDocument fires even for non dirty file when saved', async () => { const file = await createRandomFile(); - let disposables: vscode.Disposable[] = []; - let pendingAsserts: Function[] = []; + const disposables: vscode.Disposable[] = []; + const pendingAsserts: Function[] = []; await revertAllDirty(); // needed for a clean state for `onDidSaveTextDocument` (#102365) @@ -369,7 +369,7 @@ suite('vscode API - workspace', () => { test('registerTextDocumentContentProvider, simple', function () { - let registration = vscode.workspace.registerTextDocumentContentProvider('foo', { + const registration = vscode.workspace.registerTextDocumentContentProvider('foo', { provideTextDocumentContent(uri) { return uri.toString(); } @@ -406,7 +406,7 @@ suite('vscode API - workspace', () => { test('registerTextDocumentContentProvider, multiple', function () { // duplicate registration - let registration1 = vscode.workspace.registerTextDocumentContentProvider('foo', { + const registration1 = vscode.workspace.registerTextDocumentContentProvider('foo', { provideTextDocumentContent(uri) { if (uri.authority === 'foo') { return '1'; @@ -414,7 +414,7 @@ suite('vscode API - workspace', () => { return undefined; } }); - let registration2 = vscode.workspace.registerTextDocumentContentProvider('foo', { + const registration2 = vscode.workspace.registerTextDocumentContentProvider('foo', { provideTextDocumentContent(uri) { if (uri.authority === 'bar') { return '2'; @@ -435,12 +435,12 @@ suite('vscode API - workspace', () => { test('registerTextDocumentContentProvider, evil provider', function () { // duplicate registration - let registration1 = vscode.workspace.registerTextDocumentContentProvider('foo', { + const registration1 = vscode.workspace.registerTextDocumentContentProvider('foo', { provideTextDocumentContent(_uri) { return '1'; } }); - let registration2 = vscode.workspace.registerTextDocumentContentProvider('foo', { + const registration2 = vscode.workspace.registerTextDocumentContentProvider('foo', { provideTextDocumentContent(_uri): string { throw new Error('fail'); } @@ -455,7 +455,7 @@ suite('vscode API - workspace', () => { test('registerTextDocumentContentProvider, invalid text', function () { - let registration = vscode.workspace.registerTextDocumentContentProvider('foo', { + const registration = vscode.workspace.registerTextDocumentContentProvider('foo', { provideTextDocumentContent(_uri) { return <any>123; } @@ -470,7 +470,7 @@ suite('vscode API - workspace', () => { test('registerTextDocumentContentProvider, show virtual document', function () { - let registration = vscode.workspace.registerTextDocumentContentProvider('foo', { + const registration = vscode.workspace.registerTextDocumentContentProvider('foo', { provideTextDocumentContent(_uri) { return 'I am virtual'; } @@ -489,7 +489,7 @@ suite('vscode API - workspace', () => { test('registerTextDocumentContentProvider, open/open document', function () { let callCount = 0; - let registration = vscode.workspace.registerTextDocumentContentProvider('foo', { + const registration = vscode.workspace.registerTextDocumentContentProvider('foo', { provideTextDocumentContent(_uri) { callCount += 1; return 'I am virtual'; @@ -499,7 +499,7 @@ suite('vscode API - workspace', () => { const uri = vscode.Uri.parse('foo://testing/path'); return Promise.all([vscode.workspace.openTextDocument(uri), vscode.workspace.openTextDocument(uri)]).then(docs => { - let [first, second] = docs; + const [first, second] = docs; assert.ok(first === second); assert.ok(vscode.workspace.textDocuments.some(doc => doc.uri.toString() === uri.toString())); assert.strictEqual(callCount, 1); @@ -509,7 +509,7 @@ suite('vscode API - workspace', () => { test('registerTextDocumentContentProvider, empty doc', function () { - let registration = vscode.workspace.registerTextDocumentContentProvider('foo', { + const registration = vscode.workspace.registerTextDocumentContentProvider('foo', { provideTextDocumentContent(_uri) { return ''; } @@ -527,9 +527,9 @@ suite('vscode API - workspace', () => { test('registerTextDocumentContentProvider, change event', async function () { let callCount = 0; - let emitter = new vscode.EventEmitter<vscode.Uri>(); + const emitter = new vscode.EventEmitter<vscode.Uri>(); - let registration = vscode.workspace.registerTextDocumentContentProvider('foo', { + const registration = vscode.workspace.registerTextDocumentContentProvider('foo', { onDidChange: emitter.event, provideTextDocumentContent(_uri) { return 'call' + (callCount++); @@ -544,7 +544,7 @@ suite('vscode API - workspace', () => { return new Promise<void>(resolve => { - let subscription = vscode.workspace.onDidChangeTextDocument(event => { + const subscription = vscode.workspace.onDidChangeTextDocument(event => { assert.ok(event.document === doc); assert.strictEqual(event.document.getText(), 'call1'); subscription.dispose(); @@ -635,10 +635,10 @@ suite('vscode API - workspace', () => { test('applyEdit', async () => { const doc = await vscode.workspace.openTextDocument(vscode.Uri.parse('untitled:' + join(vscode.workspace.rootPath || '', './new2.txt'))); - let edit = new vscode.WorkspaceEdit(); + const edit = new vscode.WorkspaceEdit(); edit.insert(doc.uri, new vscode.Position(0, 0), new Array(1000).join('Hello World')); - let success = await vscode.workspace.applyEdit(edit); + const success = await vscode.workspace.applyEdit(edit); assert.strictEqual(success, true); assert.strictEqual(doc.isDirty, true); }); @@ -650,7 +650,7 @@ suite('vscode API - workspace', () => { edit.deleteFile(resource); edit.insert(resource, new vscode.Position(0, 0), ''); - let success = await vscode.workspace.applyEdit(edit); + const success = await vscode.workspace.applyEdit(edit); assert.strictEqual(success, false); })); @@ -661,7 +661,7 @@ suite('vscode API - workspace', () => { edit.deleteFile(resource); edit.renameFile(resource, resource); - let success = await vscode.workspace.applyEdit(edit); + const success = await vscode.workspace.applyEdit(edit); assert.strictEqual(success, false); })); @@ -672,7 +672,7 @@ suite('vscode API - workspace', () => { edit.renameFile(resource, newResource); edit.insert(resource, new vscode.Position(0, 0), ''); - let success = await vscode.workspace.applyEdit(edit); + const success = await vscode.workspace.applyEdit(edit); assert.strictEqual(success, false); })); @@ -698,7 +698,7 @@ suite('vscode API - workspace', () => { assert.ok(await vscode.workspace.applyEdit(edit)); - let doc = await vscode.workspace.openTextDocument(newUri); + const doc = await vscode.workspace.openTextDocument(newUri); assert.strictEqual(doc.getText(), 'AFTERBEFORE'); assert.strictEqual(doc.isDirty, true); } @@ -708,25 +708,25 @@ suite('vscode API - workspace', () => { } test('WorkspaceEdit: applying edits before and after rename duplicates resource #42633', withLogDisabled(async function () { - let docUri = await createRandomFile(); - let newUri = nameWithUnderscore(docUri); + const docUri = await createRandomFile(); + const newUri = nameWithUnderscore(docUri); - let we = new vscode.WorkspaceEdit(); + const we = new vscode.WorkspaceEdit(); we.insert(docUri, new vscode.Position(0, 0), 'Hello'); we.insert(docUri, new vscode.Position(0, 0), 'Foo'); we.renameFile(docUri, newUri); we.insert(newUri, new vscode.Position(0, 0), 'Bar'); assert.ok(await vscode.workspace.applyEdit(we)); - let doc = await vscode.workspace.openTextDocument(newUri); + const doc = await vscode.workspace.openTextDocument(newUri); assert.strictEqual(doc.getText(), 'BarHelloFoo'); })); test('WorkspaceEdit: Problem recreating a renamed resource #42634', withLogDisabled(async function () { - let docUri = await createRandomFile(); - let newUri = nameWithUnderscore(docUri); + const docUri = await createRandomFile(); + const newUri = nameWithUnderscore(docUri); - let we = new vscode.WorkspaceEdit(); + const we = new vscode.WorkspaceEdit(); we.insert(docUri, new vscode.Position(0, 0), 'Hello'); we.insert(docUri, new vscode.Position(0, 0), 'Foo'); we.renameFile(docUri, newUri); @@ -736,15 +736,15 @@ suite('vscode API - workspace', () => { assert.ok(await vscode.workspace.applyEdit(we)); - let newDoc = await vscode.workspace.openTextDocument(newUri); + const newDoc = await vscode.workspace.openTextDocument(newUri); assert.strictEqual(newDoc.getText(), 'HelloFoo'); - let doc = await vscode.workspace.openTextDocument(docUri); + const doc = await vscode.workspace.openTextDocument(docUri); assert.strictEqual(doc.getText(), 'Bar'); })); test('WorkspaceEdit api - after saving a deleted file, it still shows up as deleted. #42667', withLogDisabled(async function () { - let docUri = await createRandomFile(); - let we = new vscode.WorkspaceEdit(); + const docUri = await createRandomFile(); + const we = new vscode.WorkspaceEdit(); we.deleteFile(docUri); we.insert(docUri, new vscode.Position(0, 0), 'InsertText'); @@ -759,14 +759,14 @@ suite('vscode API - workspace', () => { test('WorkspaceEdit: edit and rename parent folder duplicates resource #42641', async function () { - let dir = vscode.Uri.parse(`${testFs.scheme}:/before-${rndName()}`); + const dir = vscode.Uri.parse(`${testFs.scheme}:/before-${rndName()}`); await testFs.createDirectory(dir); - let docUri = await createRandomFile('', dir); - let docParent = docUri.with({ path: posix.dirname(docUri.path) }); - let newParent = nameWithUnderscore(docParent); + const docUri = await createRandomFile('', dir); + const docParent = docUri.with({ path: posix.dirname(docUri.path) }); + const newParent = nameWithUnderscore(docParent); - let we = new vscode.WorkspaceEdit(); + const we = new vscode.WorkspaceEdit(); we.insert(docUri, new vscode.Position(0, 0), 'Hello'); we.renameFile(docParent, newParent); @@ -779,30 +779,30 @@ suite('vscode API - workspace', () => { assert.ok(true); } - let newUri = newParent.with({ path: posix.join(newParent.path, posix.basename(docUri.path)) }); - let doc = await vscode.workspace.openTextDocument(newUri); + const newUri = newParent.with({ path: posix.join(newParent.path, posix.basename(docUri.path)) }); + const doc = await vscode.workspace.openTextDocument(newUri); assert.ok(doc); assert.strictEqual(doc.getText(), 'Hello'); }); test('WorkspaceEdit: rename resource followed by edit does not work #42638', withLogDisabled(async function () { - let docUri = await createRandomFile(); - let newUri = nameWithUnderscore(docUri); + const docUri = await createRandomFile(); + const newUri = nameWithUnderscore(docUri); - let we = new vscode.WorkspaceEdit(); + const we = new vscode.WorkspaceEdit(); we.renameFile(docUri, newUri); we.insert(newUri, new vscode.Position(0, 0), 'Hello'); assert.ok(await vscode.workspace.applyEdit(we)); - let doc = await vscode.workspace.openTextDocument(newUri); + const doc = await vscode.workspace.openTextDocument(newUri); assert.strictEqual(doc.getText(), 'Hello'); })); test('WorkspaceEdit: create & override', withLogDisabled(async function () { - let docUri = await createRandomFile('before'); + const docUri = await createRandomFile('before'); let we = new vscode.WorkspaceEdit(); we.createFile(docUri); @@ -816,7 +816,7 @@ suite('vscode API - workspace', () => { })); test('WorkspaceEdit: create & ignoreIfExists', withLogDisabled(async function () { - let docUri = await createRandomFile('before'); + const docUri = await createRandomFile('before'); let we = new vscode.WorkspaceEdit(); we.createFile(docUri, { ignoreIfExists: true }); @@ -830,8 +830,8 @@ suite('vscode API - workspace', () => { })); test('WorkspaceEdit: rename & ignoreIfExists', withLogDisabled(async function () { - let aUri = await createRandomFile('aaa'); - let bUri = await createRandomFile('bbb'); + const aUri = await createRandomFile('aaa'); + const bUri = await createRandomFile('bbb'); let we = new vscode.WorkspaceEdit(); we.renameFile(aUri, bUri); @@ -852,7 +852,7 @@ suite('vscode API - workspace', () => { test('WorkspaceEdit: delete & ignoreIfNotExists', withLogDisabled(async function () { - let docUri = await createRandomFile(); + const docUri = await createRandomFile(); let we = new vscode.WorkspaceEdit(); we.deleteFile(docUri, { ignoreIfNotExists: false }); assert.ok(await vscode.workspace.applyEdit(we)); @@ -868,14 +868,14 @@ suite('vscode API - workspace', () => { test('WorkspaceEdit: insert & rename multiple', async function () { - let [f1, f2, f3] = await Promise.all([createRandomFile(), createRandomFile(), createRandomFile()]); + const [f1, f2, f3] = await Promise.all([createRandomFile(), createRandomFile(), createRandomFile()]); - let we = new vscode.WorkspaceEdit(); + const we = new vscode.WorkspaceEdit(); we.insert(f1, new vscode.Position(0, 0), 'f1'); we.insert(f2, new vscode.Position(0, 0), 'f2'); we.insert(f3, new vscode.Position(0, 0), 'f3'); - let f1_ = nameWithUnderscore(f1); + const f1_ = nameWithUnderscore(f1); we.renameFile(f1, f1_); assert.ok(await vscode.workspace.applyEdit(we)); @@ -911,7 +911,7 @@ suite('vscode API - workspace', () => { } for (let i = 0; i < 4; i++) { - let we = new vscode.WorkspaceEdit(); + const we = new vscode.WorkspaceEdit(); let oldUri: vscode.Uri; let newUri: vscode.Uri; let expected: string; @@ -946,7 +946,7 @@ suite('vscode API - workspace', () => { test('The api workspace.applyEdit failed for some case of mixing resourceChange and textEdit #80688', async function () { const file1 = await createRandomFile(); const file2 = await createRandomFile(); - let we = new vscode.WorkspaceEdit(); + const we = new vscode.WorkspaceEdit(); we.insert(file1, new vscode.Position(0, 0), 'import1;'); const file2Name = basename(file2.fsPath); @@ -965,7 +965,7 @@ suite('vscode API - workspace', () => { test('The api workspace.applyEdit failed for some case of mixing resourceChange and textEdit #80688', async function () { const file1 = await createRandomFile(); const file2 = await createRandomFile(); - let we = new vscode.WorkspaceEdit(); + const we = new vscode.WorkspaceEdit(); we.insert(file1, new vscode.Position(0, 0), 'import1;'); we.insert(file1, new vscode.Position(0, 0), 'import2;'); @@ -990,7 +990,7 @@ suite('vscode API - workspace', () => { const file2New = await createRandomFile(); const event = new Promise<vscode.FileWillRenameEvent>(resolve => { - let sub = vscode.workspace.onWillRenameFiles(e => { + const sub = vscode.workspace.onWillRenameFiles(e => { sub.dispose(); resolve(e); }); @@ -1035,7 +1035,7 @@ suite('vscode API - workspace', () => { test('Should send a single FileWillRenameEvent instead of separate events when moving multiple files at once#111867, 2/3', async function () { const event = new Promise<vscode.FileWillCreateEvent>(resolve => { - let sub = vscode.workspace.onWillCreateFiles(e => { + const sub = vscode.workspace.onWillCreateFiles(e => { sub.dispose(); resolve(e); }); @@ -1062,7 +1062,7 @@ suite('vscode API - workspace', () => { const file2 = await createRandomFile(); const event = new Promise<vscode.FileWillDeleteEvent>(resolve => { - let sub = vscode.workspace.onWillDeleteFiles(e => { + const sub = vscode.workspace.onWillDeleteFiles(e => { sub.dispose(); resolve(e); }); diff --git a/extensions/vscode-colorize-tests/src/colorizer.test.ts b/extensions/vscode-colorize-tests/src/colorizer.test.ts index b2cc751f8b0..0ba416b5f87 100644 --- a/extensions/vscode-colorize-tests/src/colorizer.test.ts +++ b/extensions/vscode-colorize-tests/src/colorizer.test.ts @@ -17,17 +17,17 @@ function assertUnchangedTokens(fixturesPath: string, resultsPath: string, fixtur if (!fs.existsSync(resultsPath)) { fs.mkdirSync(resultsPath); } - let resultPath = join(resultsPath, fixture.replace('.', '_') + '.json'); + const resultPath = join(resultsPath, fixture.replace('.', '_') + '.json'); if (fs.existsSync(resultPath)) { - let previousData = JSON.parse(fs.readFileSync(resultPath).toString()); + const previousData = JSON.parse(fs.readFileSync(resultPath).toString()); try { assert.deepStrictEqual(data, previousData); } catch (e) { fs.writeFileSync(resultPath, JSON.stringify(data, null, '\t'), { flag: 'w' }); if (Array.isArray(data) && Array.isArray(previousData) && data.length === previousData.length) { for (let i = 0; i < data.length; i++) { - let d = data[i]; - let p = previousData[i]; + const d = data[i]; + const p = previousData[i]; if (d.c !== p.c || hasThemeChange(d.r, p.r)) { throw e; } @@ -48,8 +48,8 @@ function assertUnchangedTokens(fixturesPath: string, resultsPath: string, fixtur } function hasThemeChange(d: any, p: any): boolean { - let keys = Object.keys(d); - for (let key of keys) { + const keys = Object.keys(d); + for (const key of keys) { if (d[key] !== p[key]) { return true; } diff --git a/extensions/vscode-test-resolver/src/extension.ts b/extensions/vscode-test-resolver/src/extension.ts index 9f6fc9efc18..05fd267d2bc 100644 --- a/extensions/vscode-test-resolver/src/extension.ts +++ b/extensions/vscode-test-resolver/src/extension.ts @@ -25,7 +25,7 @@ let outputChannel: vscode.OutputChannel; export function activate(context: vscode.ExtensionContext) { let connectionPaused = false; - let connectionPausedEvent = new vscode.EventEmitter<boolean>(); + const connectionPausedEvent = new vscode.EventEmitter<boolean>(); function doResolve(_authority: string, progress: vscode.Progress<{ message?: string; increment?: number }>): Promise<vscode.ResolvedAuthority> { if (connectionPaused) { @@ -159,7 +159,7 @@ export function activate(context: vscode.ExtensionContext) { let isDisconnected = false; const handleConnectionPause = () => { - let newIsDisconnected = connectionPaused; + const newIsDisconnected = connectionPaused; if (isDisconnected !== newIsDisconnected) { outputChannel.appendLine(`Connection state: ${newIsDisconnected ? 'open' : 'paused'}`); isDisconnected = newIsDisconnected; |