Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature/line break for print variable #195

Open
wants to merge 15 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -2,3 +2,4 @@ out
node_modules
.vscode-test/
*.vsix
.DS_Store
19 changes: 18 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand All @@ -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(``).

Expand Down Expand Up @@ -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

---
Expand Down
4 changes: 2 additions & 2 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

28 changes: 24 additions & 4 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand All @@ -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",
Expand Down Expand Up @@ -183,4 +203,4 @@
"dependencies": {
"lodash": "^4.17.21"
}
}
}
26 changes: 16 additions & 10 deletions src/debug-message/js/JSDebugMessage.ts
Original file line number Diff line number Diff line change
Expand Up @@ -89,7 +89,7 @@ export class JSDebugMessage extends DebugMessage {
lineOfLogMsg: number,
extensionProperties: Omit<
ExtensionProperties,
'wrapLogMessage' | 'insertEmptyLineAfterLogMessage'
'insertEmptyLineAfterLogMessage'
>,
): string {
const fileName = document.fileName.includes('/')
Expand All @@ -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
Expand All @@ -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(
Expand Down Expand Up @@ -194,8 +201,7 @@ export class JSDebugMessage extends DebugMessage {
lineOfSelectedVar,
lineOfLogMsg,
omit(extensionProperties, [
'wrapLogMessage',
'insertEmptyLineAfterLogMessage',
'insertEmptyLineAfterLogMessage'
]),
);
const debuggingMsg: string = this.constructDebuggingMsg(
Expand Down
6 changes: 5 additions & 1 deletion src/entities/extensionProperties.ts
Original file line number Diff line number Diff line change
@@ -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;
Expand Down
10 changes: 8 additions & 2 deletions src/extension.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand All @@ -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',
};
Expand Down