diff --git a/CHANGELOG.md b/CHANGELOG.md index 4394dd1..7784065 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,3 +13,7 @@ All notable changes to the "custom-vscode-linter" extension will be documented i ## 0.5.0 - Added more checks ever since 0.1.0, such as reminders for SQL encryption, console.log, and testing in IE. + +## 0.6.0 + +- Added check for `Number(someID)` diff --git a/README.md b/README.md index cdd1539..e7b6235 100644 --- a/README.md +++ b/README.md @@ -20,6 +20,7 @@ Install it on VS Code: https://marketplace.visualstudio.com/items?itemName=hchia BEGIN -- comment: sp_password ``` +- `Number(someID)` would evaluate to 0 if someID is empty. ## Future work / Suggestions: diff --git a/package-lock.json b/package-lock.json index 5623836..a3f0ea5 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "custom-vscode-linter", - "version": "0.5.1", + "version": "0.6.0", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index 55980fc..388c14a 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "custom-vscode-linter", "displayName": "custom-vscode-linter", "description": "Custom VSCode Linter!", - "version": "0.5.1", + "version": "0.6.0", "publisher": "hchiam", "repository": { "type": "git", diff --git a/src/extension.ts b/src/extension.ts index 7a3ed9c..0243c32 100644 --- a/src/extension.ts +++ b/src/extension.ts @@ -56,6 +56,7 @@ export function activate(context: vscode.ExtensionContext) { check_rowCountSQL(rangesToDecorate); check_encryptedSQL(rangesToDecorate); check_consoleLog(rangesToDecorate); + check_numberOfId(rangesToDecorate); activeEditor.setDecorations(decorationType, rangesToDecorate); } @@ -108,6 +109,13 @@ export function activate(context: vscode.ExtensionContext) { genericCheck(regex, hoverMessage, popupMessage, rangesToDecorate); } + function check_numberOfId(rangesToDecorate: vscode.DecorationOptions[]) { + let regex = /Number\((.+)?I(d|D)\)/g; + let hoverMessage = 'If ${match[1]} is an ID but is empty, then Number(${match[1]}) evaluates to 0.'; + let popupMessage = 'Number(${match[1]}) evaluates to 0 if ID is empty.'; + genericCheck(regex, hoverMessage, popupMessage, rangesToDecorate); + } + function genericCheck(regex: RegExp = /^$/, hoverMessage: string = '', popupMessage: string = '', rangesToDecorate: vscode.DecorationOptions[] = []) { if (!activeEditor) { return; diff --git a/visually-check-this.js b/visually-check-this.js index 42529c0..5e5994e 100644 --- a/visually-check-this.js +++ b/visually-check-this.js @@ -81,3 +81,7 @@ AS--WITH ENCRYPTION BEGIN -- comment: sp_password // NO +Number(someOkThing); // NO +Number(someID); // YES +Number(something.someId); // YES +Number(something.someID); // YES