diff --git a/package.json b/package.json index 018a891..65fa9e1 100644 --- a/package.json +++ b/package.json @@ -6,7 +6,7 @@ "type": "git", "url": "https://github.com/midnightsyntax/vscode-wrap-console-log" }, - "version": "1.7.3", + "version": "1.7.4", "publisher": "midnightsyntax", "icon": "images/icon.png", "engines": { @@ -109,6 +109,16 @@ "markdownDescription": "Enables custom control of the prefix log string. Use `$func` to specify the function name defined by [`Wrap Function Name`](#wrap-console-log.format.text.prefixFunctionName) and `$var` to specify the variable/text to log. `$var` can be specified **one** or **multible** times. ", "type": "string", "default": "$func('$var:', $var)" + }, + "wrap-console-log.format.wrap.prefixStringLanguages": { + "markdownDescription": "Enables custom prefix string based on language identifier. Default to `wrap-console-log.format.wrap.prefixString` if language identifier is not specified.", + "type": "object", + "default": { + "shellscript": "echo '$var:' $$var", + "rust": "println!(\"$var: {}\", $var);", + "ruby": "puts \"$name: #{$name}\"", + "go": "fmt.Println(\"$var:\", $var)" + } } } }, diff --git a/src/extension.ts b/src/extension.ts index 6bc91d1..e6105ae 100644 --- a/src/extension.ts +++ b/src/extension.ts @@ -75,6 +75,7 @@ function handle(target: Wrap, prefix?: boolean, input?: boolean, formatAs?: Form } ; prefix = prefix || getSetting("alwaysUsePrefix") ? true : false + const prefixString = getSetting("format.wrap.prefixStringLanguages")[doc.languageId] || getSetting('format.wrap.prefixString'); if (prefix) { if (getSetting("alwaysInputBoxOnPrefix") == true || input) { @@ -85,7 +86,7 @@ function handle(target: Wrap, prefix?: boolean, input?: boolean, formatAs?: Form } else reject('INPUT_CANCEL'); }) } else { - wrapData.txt = getSetting('format.wrap.prefixString').replace('$func', + wrapData.txt = prefixString.replace('$func', getSetting('format.wrap.prefixFunctionName')).replace(/[$]var/g, wrapData.item); resolve(wrapData);