diff --git a/source-control-sample/src/extension.ts b/source-control-sample/src/extension.ts index 55c07378..a9bf1636 100644 --- a/source-control-sample/src/extension.ts +++ b/source-control-sample/src/extension.ts @@ -32,28 +32,28 @@ export function activate(context: vscode.ExtensionContext) { context.subscriptions.push(vscode.commands.registerCommand("extension.source-control.refresh", async () => { let sourceControl = await pickSourceControl(); - if (sourceControl) sourceControl.refresh(); + if (sourceControl) { sourceControl.refresh(); } })); context.subscriptions.push(vscode.commands.registerCommand("extension.source-control.discard", async () => { let sourceControl = await pickSourceControl(); - if (sourceControl) sourceControl.resetFilesToCheckedOutVersion(); + if (sourceControl) { sourceControl.resetFilesToCheckedOutVersion(); } })); context.subscriptions.push(vscode.commands.registerCommand("extension.source-control.commit", async () => { let sourceControl = await pickSourceControl(); - if (sourceControl) sourceControl.commitAll(); + if (sourceControl) { sourceControl.commitAll(); } })); context.subscriptions.push(vscode.commands.registerCommand("extension.source-control.checkout", async (sourceControl: FiddleSourceControl, newVersion?: number) => { sourceControl = sourceControl || await pickSourceControl(); - if (sourceControl) sourceControl.tryCheckout(newVersion); + if (sourceControl) { sourceControl.tryCheckout(newVersion); } })); } async function pickSourceControl(): Promise { // todo: when/if the SourceControl exposes a 'selected' property, use that instead - if (fiddleSourceControlRegister.size == 0) return undefined; - else if (fiddleSourceControlRegister.size == 1) return [...fiddleSourceControlRegister.values()][0]; + if (fiddleSourceControlRegister.size === 0) { return undefined; } + else if (fiddleSourceControlRegister.size === 1) { return [...fiddleSourceControlRegister.values()][0]; } else { let picks = [...fiddleSourceControlRegister.values()].map(fsc => new RepositoryPick(fsc)); @@ -85,7 +85,7 @@ async function tryOpenFiddle(context: vscode.ExtensionContext, fiddleId?: string } async function openFiddle(context: vscode.ExtensionContext, fiddleId?: string, workspaceUri?: vscode.Uri) { - if (workspaceUri && fiddleSourceControlRegister.has(workspaceUri)) vscode.window.showErrorMessage("Another Fiddle was already open in this workspace. Open a new workspace first."); + if (workspaceUri && fiddleSourceControlRegister.has(workspaceUri)) { vscode.window.showErrorMessage("Another Fiddle was already open in this workspace. Open a new workspace first."); } if (!fiddleId) { fiddleId = (await vscode.window.showInputBox({ prompt: 'Paste JSFiddle ID and optionally version', placeHolder: 'slug or slug/version, e.g. u8B29/1', value: 'demo' })) || ''; @@ -97,7 +97,7 @@ async function openFiddle(context: vscode.ExtensionContext, fiddleId?: string, w await selectWorkspaceFolder(context, fiddleId); workspaceFolder = await clearWorkspaceFolder(workspaceFolder); - if (!workspaceFolder) return; // canceled by user + if (!workspaceFolder) { return; } // canceled by user // show the file explorer with the three new files vscode.commands.executeCommand("workbench.view.explorer"); @@ -132,14 +132,14 @@ function registerFiddleSourceControl(fiddleSourceControl: FiddleSourceControl, c } function initializeFromConfigurationFile(context: vscode.ExtensionContext): void { - if (!vscode.workspace.workspaceFolders) return; + if (!vscode.workspace.workspaceFolders) { return; } vscode.workspace.workspaceFolders.forEach(folder => { const configurationPath = path.join(folder.uri.fsPath, CONFIGURATION_FILE); exists(configurationPath, configFileExists => { if (configFileExists) { readFile(configurationPath, { flag: 'r' }, async (err, data) => { - if (err) vscode.window.showErrorMessage(err.message); + if (err) { vscode.window.showErrorMessage(err.message); } try { let fiddleSourceControl = await FiddleSourceControl.fromConfiguration(JSON.parse(data.toString("utf-8")), folder, context, false); registerFiddleSourceControl(fiddleSourceControl, context); @@ -161,7 +161,7 @@ async function selectWorkspaceFolder(context: vscode.ExtensionContext, fiddleId: if (vscode.workspace.workspaceFolders && vscode.workspace.workspaceFolders.length > 1) { selectedFolder = await vscode.window.showWorkspaceFolderPick({ placeHolder: 'Pick workspace folder to create files in.' }); - if (!selectedFolder) return undefined; + if (!selectedFolder) { return undefined; } workspaceFolderIndex = selectedFolder.index; workspaceFolderUri = selectedFolder.uri; @@ -186,7 +186,7 @@ async function selectWorkspaceFolder(context: vscode.ExtensionContext, fiddleId: } let workSpacesToReplace = typeof workspaceFolderIndex === 'number' && workspaceFolderIndex > -1 ? 1 : 0; - if (workspaceFolderIndex === undefined || workspaceFolderIndex < 0) workspaceFolderIndex = 0; + if (workspaceFolderIndex === undefined || workspaceFolderIndex < 0) { workspaceFolderIndex = 0; } // replace or insert the workspace if (workspaceFolderUri) { @@ -198,14 +198,14 @@ async function selectWorkspaceFolder(context: vscode.ExtensionContext, fiddleId: async function clearWorkspaceFolder(workspaceFolder?: vscode.WorkspaceFolder): Promise { - if (!workspaceFolder) return undefined; + if (!workspaceFolder) { return undefined; } // check if the workspace is empty, or clear it let existingWorkspaceFiles = readdirSync(workspaceFolder.uri.fsPath); if (existingWorkspaceFiles.length > 0) { let answer = await vscode.window.showQuickPick(["Yes", "No"], { placeHolder: `Remove ${existingWorkspaceFiles.length} file(s) from the workspace before cloning the remote repository?` }); - if (answer === undefined) return undefined; + if (answer === undefined) { return undefined; } if (answer === "Yes") { existingWorkspaceFiles diff --git a/source-control-sample/src/fiddleDocumentContentProvider.ts b/source-control-sample/src/fiddleDocumentContentProvider.ts index 9368fbf7..bb0d6e05 100644 --- a/source-control-sample/src/fiddleDocumentContentProvider.ts +++ b/source-control-sample/src/fiddleDocumentContentProvider.ts @@ -28,7 +28,7 @@ export class JSFiddleDocumentContentProvider implements TextDocumentContentProvi } provideTextDocumentContent(uri: Uri, token: CancellationToken): ProviderResult { - if (token.isCancellationRequested) return "Canceled"; + if (token.isCancellationRequested) { return "Canceled"; } let fiddleSlug = basename(uri.fsPath); // strip off the file extension @@ -36,7 +36,7 @@ export class JSFiddleDocumentContentProvider implements TextDocumentContentProvi let fiddlePart = toExtension(uri); let fiddle = this.fiddles.get(fiddleSlug); - if (!fiddle) return "Resource not found: " + uri.toString(); + if (!fiddle) { return "Resource not found: " + uri.toString(); } return fiddle.data[fiddlePart]; } diff --git a/source-control-sample/src/fiddleRepository.ts b/source-control-sample/src/fiddleRepository.ts index b3ed1963..288e5164 100644 --- a/source-control-sample/src/fiddleRepository.ts +++ b/source-control-sample/src/fiddleRepository.ts @@ -15,9 +15,9 @@ export interface FiddleData { } export function areIdentical(first: FiddleData, second: FiddleData): boolean { - return first.html == second.html - && first.css == second.css - && first.js == second.js; + return first.html === second.html + && first.css === second.css + && first.js === second.js; } export const JSFIDDLE_SCHEME = 'jsfiddle'; @@ -69,10 +69,10 @@ export async function downloadFiddle(slug: string, version: number | undefined): if (slug === "demo") { // use mock fiddle - if (demoVersionOffset === undefined && version === undefined) version = 0; - if (demoVersionOffset === undefined) demoVersionOffset = version; + if (demoVersionOffset === undefined && version === undefined) { version = 0; } + if (demoVersionOffset === undefined) { demoVersionOffset = version; } let maxDemoVersion = DEMO.length - 1 + demoVersionOffset; - if (version === undefined) version = maxDemoVersion; + if (version === undefined) { version = maxDemoVersion; } if (version >= 0 && version <= maxDemoVersion) { // mock all versions committed in previous sessions by the first version @@ -81,7 +81,7 @@ export async function downloadFiddle(slug: string, version: number | undefined): return new Fiddle(slug, version, fiddleData); } else { - throw "Invalid demo fiddle version."; + throw new Error("Invalid demo fiddle version."); } } @@ -90,7 +90,7 @@ export async function downloadFiddle(slug: string, version: number | undefined): return new Promise((resolve, reject) => { JSFiddle.getFiddle(id, (err: any, fiddleData: any) => { // handle error - if (err) reject(err); + if (err) { reject(err); } let fiddle = new Fiddle(slug, version, fiddleData); diff --git a/source-control-sample/src/fiddleSourceControl.ts b/source-control-sample/src/fiddleSourceControl.ts index 623a028d..d6a181ee 100644 --- a/source-control-sample/src/fiddleSourceControl.ts +++ b/source-control-sample/src/fiddleSourceControl.ts @@ -82,7 +82,7 @@ export class FiddleSourceControl implements vscode.Disposable { // here we assume nobody updated the Fiddle on the server since we refreshed the list of versions try { let newFiddle = await uploadFiddle(this.fiddle.slug, this.fiddle.version + 1, html, js, css); - if (!newFiddle) return; + if (!newFiddle) { return; } this.setFiddle(newFiddle, false); this.jsFiddleScm.inputBox.value = ''; } catch (ex) { @@ -112,11 +112,11 @@ export class FiddleSourceControl implements vscode.Disposable { } async tryCheckout(newVersion: number | undefined): Promise { - if (!Number.isFinite(this.latestFiddleVersion)) return; + if (!Number.isFinite(this.latestFiddleVersion)) { return; } if (newVersion === undefined) { let allVersions = [...Array(this.latestFiddleVersion + 1).keys()] - .map(ver => new VersionQuickPickItem(ver, ver == this.fiddle.version)); + .map(ver => new VersionQuickPickItem(ver, ver === this.fiddle.version)); let newVersionPick = await vscode.window.showQuickPick(allVersions, { canPickMany: false, placeHolder: 'Select a version...' }); if (newVersionPick) { newVersion = newVersionPick.version; @@ -126,7 +126,7 @@ export class FiddleSourceControl implements vscode.Disposable { } } - if (newVersion === this.fiddle.version) return; // the same version was selected + if (newVersion === this.fiddle.version) { return; } // the same version was selected if (this.changedResources.resourceStates.length) { let changedResourcesCount = this.changedResources.resourceStates.length; @@ -143,9 +143,9 @@ export class FiddleSourceControl implements vscode.Disposable { } private setFiddle(newFiddle: Fiddle, overwrite: boolean) { - if (newFiddle.version > this.latestFiddleVersion) this.latestFiddleVersion = newFiddle.version; + if (newFiddle.version > this.latestFiddleVersion) { this.latestFiddleVersion = newFiddle.version; } this.fiddle = newFiddle; - if (overwrite) this.resetFilesToCheckedOutVersion(); // overwrite local file content + if (overwrite) { this.resetFilesToCheckedOutVersion(); } // overwrite local file content this._onRepositoryChange.fire(this.fiddle); this.refreshStatusBar(); @@ -240,7 +240,7 @@ export class FiddleSourceControl implements vscode.Disposable { } onResourceChange(_uri: vscode.Uri): void { - if (this.timeout) clearTimeout(this.timeout); + if (this.timeout) { clearTimeout(this.timeout); } this.timeout = setTimeout(() => this.tryUpdateChangedGroup(), 500); } @@ -285,7 +285,7 @@ export class FiddleSourceControl implements vscode.Disposable { /** Determines whether the resource is different, regardless of line endings. */ isDirty(doc: vscode.TextDocument): boolean { let originalText = this.fiddle.data[toExtension(doc.uri)]; - return originalText.replace('\r', '') != doc.getText().replace('\r', ''); + return originalText.replace('\r', '') !== doc.getText().replace('\r', ''); } toSourceControlResourceState(docUri: vscode.Uri, deleted: boolean): vscode.SourceControlResourceState { diff --git a/source-control-sample/tslint.json b/source-control-sample/tslint.json index 522458b3..2bd680db 100644 --- a/source-control-sample/tslint.json +++ b/source-control-sample/tslint.json @@ -1,12 +1,15 @@ { "rules": { - "indent": [ - true, - "tabs" - ], + "no-string-throw": true, + "no-unused-expression": true, + "no-duplicate-variable": true, + "curly": true, + "class-name": true, "semicolon": [ true, "always" - ] - } + ], + "triple-equals": true + }, + "defaultSeverity": "warning" } \ No newline at end of file