diff --git a/.gitignore b/.gitignore index 5fe00fea..86466ec5 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,4 @@ out node_modules .vscode-test/ *.vsix +.DS_Store diff --git a/README.md b/README.md index 09a33ace..d6db9bc9 100644 --- a/README.md +++ b/README.md @@ -36,6 +36,8 @@ Properties: - turboConsoleLog.logMessagePrefix (string): The prefix of the log message (default one is 🚀 ). +- turboConsoleLog.logMessageSuffix (string): The suffix of the log message (default one is `:` ). + - turboConsoleLog.addSemicolonInTheEnd (boolean): Whether to put a semicolon in the end of the log message or not. - turboConsoleLog.insertEnclosingClass (boolean): Whether to insert or not the enclosing class of the selected variable in the log message. @@ -48,7 +50,11 @@ Properties: - turboConsoleLog.delimiterInsideMessage (string): The delimiter that will separate the different log message elements (file name, line number, class, function and variable) -- turboConsoleLog.includeFileNameAndLineNum (boolean): Whether to include the file name and the line number of the log message. +- turboConsoleLog.includeLogMessageLineNumber (boolean): Whether to include the `console.log` line number. + +- turboConsoleLog.includeFileNam (boolean): Whether to include the file name in the log message. + +- turboConsoleLog.includeLineNumber (boolean): Whether to include the line number in the log message. - turboConsoleLog.quote (enum): Double quotes (""), single quotes ('') or backtick(``). @@ -129,6 +135,17 @@ Initial release of Turbo Console Log - Support arrow function transformation +### 2.6.0 + +- ? + +### 2.7.0 + +- Support adding log message suffix +- Fixed line number of the variable to be logged +- `File Name` and `Line Number` are separated +- Support showing `console.log` command line number + ## Participate --- diff --git a/package-lock.json b/package-lock.json index 08704eaa..79f59755 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "turbo-console-log", - "version": "2.5.6", + "version": "2.7.0", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "turbo-console-log", - "version": "2.5.6", + "version": "2.7.0", "license": "SEE LICENSE IN LICENSE.txt", "dependencies": { "lodash": "^4.17.21" diff --git a/package.json b/package.json index a847018e..a8bf4704 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "turbo-console-log", "displayName": "Turbo Console Log", "description": "Automating the process of writing meaningful log messages.", - "version": "2.6.2", + "version": "2.7.1", "publisher": "ChakrounAnas", "engines": { "vscode": "^1.50.0" @@ -28,15 +28,35 @@ "default": false, "description": "Determine if the log message should be wrapped or not." }, + "turboConsoleLog.LineBreak": { + "type": "boolean", + "default": false, + "description": "Determine if the target variable should to be printed in the next line or not." + }, "turboConsoleLog.logMessagePrefix": { "type": "string", "default": "🚀", "description": "The prefix of the log message." }, - "turboConsoleLog.includeFileNameAndLineNum": { + "turboConsoleLog.logMessageSuffix": { + "type": "string", + "default": ":", + "description": "The suffix of the log message." + }, + "turboConsoleLog.includeLogMessageLineNumber": { + "type": "boolean", + "default": false, + "description": "`console.log` command line number" + }, + "turboConsoleLog.includeFileName": { + "type": "boolean", + "default": true, + "description": "Whether to include the file name in the log message." + }, + "turboConsoleLog.includeLineNumber": { "type": "boolean", "default": true, - "description": "Whether to include the file name and the line number of the log message." + "description": "Whether to include the line number of in log message." }, "turboConsoleLog.addSemicolonInTheEnd": { "type": "boolean", @@ -183,4 +203,4 @@ "dependencies": { "lodash": "^4.17.21" } -} +} \ No newline at end of file diff --git a/src/debug-message/js/JSDebugMessage.ts b/src/debug-message/js/JSDebugMessage.ts index 9b9dfda9..d9db21d2 100644 --- a/src/debug-message/js/JSDebugMessage.ts +++ b/src/debug-message/js/JSDebugMessage.ts @@ -89,7 +89,7 @@ export class JSDebugMessage extends DebugMessage { lineOfLogMsg: number, extensionProperties: Omit< ExtensionProperties, - 'wrapLogMessage' | 'insertEmptyLineAfterLogMessage' + 'insertEmptyLineAfterLogMessage' >, ): string { const fileName = document.fileName.includes('/') @@ -108,22 +108,29 @@ export class JSDebugMessage extends DebugMessage { const semicolon: string = extensionProperties.addSemicolonInTheEnd ? ';' : ''; + + const lineBreak: string = extensionProperties.LineBreak ? '\\n' : ''; + return `${ extensionProperties.logFunction !== 'log' ? extensionProperties.logFunction : `console.${extensionProperties.logType}` - }(${extensionProperties.quote}${extensionProperties.logMessagePrefix}${ + }(${extensionProperties.quote}${extensionProperties.logMessagePrefix} ${ + extensionProperties.includeLogMessageLineNumber ? `logMsgLine:${lineOfLogMsg + (extensionProperties.insertEmptyLineBeforeLogMessage && extensionProperties.wrapLogMessage ? 3 : extensionProperties.insertEmptyLineBeforeLogMessage || extensionProperties.wrapLogMessage ? 2 : 1)}` + : '' + }${ extensionProperties.logMessagePrefix.length !== 0 && extensionProperties.logMessagePrefix !== `${extensionProperties.delimiterInsideMessage} ` ? ` ${extensionProperties.delimiterInsideMessage} ` : '' }${ - extensionProperties.includeFileNameAndLineNum - ? `file: ${fileName}:${ - lineOfLogMsg + - (extensionProperties.insertEmptyLineBeforeLogMessage ? 2 : 1) - } ${extensionProperties.delimiterInsideMessage} ` + extensionProperties.includeFileName + ? `file: ${fileName} ${extensionProperties.delimiterInsideMessage} ` + : '' + }${ + extensionProperties.includeLineNumber + ? `Line:${lineOfSelectedVar + 1} ${extensionProperties.delimiterInsideMessage} ` : '' }${ extensionProperties.insertEnclosingClass @@ -137,7 +144,7 @@ export class JSDebugMessage extends DebugMessage { ? `${funcThatEncloseTheVar} ${extensionProperties.delimiterInsideMessage} ` : '' : '' - }${selectedVar}${extensionProperties.quote}, ${selectedVar})${semicolon}`; + }${selectedVar}${extensionProperties.logMessageSuffix}${lineBreak}${extensionProperties.quote}, ${selectedVar})${semicolon}`; } private emptyBlockDebuggingMsg( @@ -194,8 +201,7 @@ export class JSDebugMessage extends DebugMessage { lineOfSelectedVar, lineOfLogMsg, omit(extensionProperties, [ - 'wrapLogMessage', - 'insertEmptyLineAfterLogMessage', + 'insertEmptyLineAfterLogMessage' ]), ); const debuggingMsg: string = this.constructDebuggingMsg( diff --git a/src/entities/extensionProperties.ts b/src/entities/extensionProperties.ts index 82599a95..b9ab87aa 100644 --- a/src/entities/extensionProperties.ts +++ b/src/entities/extensionProperties.ts @@ -1,13 +1,17 @@ export type ExtensionProperties = { wrapLogMessage: boolean; logMessagePrefix: string; + logMessageSuffix: string; + LineBreak: boolean; addSemicolonInTheEnd: boolean; insertEnclosingClass: boolean; insertEnclosingFunction: boolean; insertEmptyLineBeforeLogMessage: boolean; insertEmptyLineAfterLogMessage: boolean; delimiterInsideMessage: string; - includeFileNameAndLineNum: boolean; + includeFileName: boolean; + includeLineNumber: boolean; + includeLogMessageLineNumber: boolean; quote: string; logType: enumLogType; logFunction: string; diff --git a/src/extension.ts b/src/extension.ts index 61ac94f0..aea0efe8 100644 --- a/src/extension.ts +++ b/src/extension.ts @@ -178,6 +178,8 @@ function getExtensionProperties( return { wrapLogMessage: workspaceConfig.wrapLogMessage ?? false, logMessagePrefix: workspaceConfig.logMessagePrefix ?? '', + logMessageSuffix: workspaceConfig.logMessageSuffix ?? '', + LineBreak: workspaceConfig.LineBreak ?? false, addSemicolonInTheEnd: workspaceConfig.addSemicolonInTheEnd ?? false, insertEnclosingClass: workspaceConfig.insertEnclosingClass ?? true, insertEnclosingFunction: workspaceConfig.insertEnclosingFunction ?? true, @@ -187,8 +189,12 @@ function getExtensionProperties( workspaceConfig.insertEmptyLineAfterLogMessage ?? false, quote: workspaceConfig.quote ?? '"', delimiterInsideMessage: workspaceConfig.delimiterInsideMessage ?? '~', - includeFileNameAndLineNum: - workspaceConfig.includeFileNameAndLineNum ?? false, + includeFileName: + workspaceConfig.includeFileName ?? false, + includeLineNumber: + workspaceConfig.includeLineNumber ?? false, + includeLogMessageLineNumber: + workspaceConfig.includeLogMessageLineNumber ?? false, logType: workspaceConfig.logType ?? 'log', logFunction: workspaceConfig.logFunction ?? 'log', };