VSCode 代码片段转换:同时小写和大写
VSCode Code-Snippets transform: downcase and capitalize at the same time
我有这个:
${1/([A-Z]*)(?:_)([A-Z]+)*/${1:/downcase}${2:/downcase}/g}
如何在同一 (2) 个组中使用 downcase
和 capitalize
?
${1/([A-Z]*)(?:_)([A-Z]+)*/${1:/downcase}${2:/downcase/capitalize}/g}
我想将 ZXC_ASD
转换为 zxcAsd
。
像这样尝试:
"camelCaseSnail": {
"scope": "javascript,typescript",
"prefix": "log",
"body": "${1/([A-Z]*)(?:_)(?:([A-Z])([A-Z]+))*/${1:/downcase}${2:/capitalize}${3:/downcase}/g}"
}
基本上,我已将第二个捕获组 ([A-Z]+)*
更改为具有两个内部捕获组 (?:([A-Z])([A-Z]+))*
的非捕获组,单个字母用于驼峰式大小写,其余的,我在 replace/transform 部分提到:/downcase}${2:/capitalize}${3:/downcase}/
显然 vscode v1.58 是一个 /camelcase
修饰符。所以你的情况就像
一样简单
"${1/(.*)/${1:/camelcase}/}"
已在 Insiders Build 中测试。另一个例子见 Add a camelCase transform for Snippet variables. See also 。
旧答案:
使用未记录的(参见Snippet regex: match arbitrary number of groups and transform to CamelCase)/pascalcase
转换,非常简单:
"${1/([A-Z]*)(?:_)([A-Z]+)*/${1:/downcase}${2:/pascalcase}/g}"
因为 /pascalcase
会同时执行 /capitalize
和 /downcase
。
我有这个:
${1/([A-Z]*)(?:_)([A-Z]+)*/${1:/downcase}${2:/downcase}/g}
如何在同一 (2) 个组中使用 downcase
和 capitalize
?
${1/([A-Z]*)(?:_)([A-Z]+)*/${1:/downcase}${2:/downcase/capitalize}/g}
我想将 ZXC_ASD
转换为 zxcAsd
。
像这样尝试:
"camelCaseSnail": {
"scope": "javascript,typescript",
"prefix": "log",
"body": "${1/([A-Z]*)(?:_)(?:([A-Z])([A-Z]+))*/${1:/downcase}${2:/capitalize}${3:/downcase}/g}"
}
基本上,我已将第二个捕获组 ([A-Z]+)*
更改为具有两个内部捕获组 (?:([A-Z])([A-Z]+))*
的非捕获组,单个字母用于驼峰式大小写,其余的,我在 replace/transform 部分提到:/downcase}${2:/capitalize}${3:/downcase}/
显然 vscode v1.58 是一个 /camelcase
修饰符。所以你的情况就像
"${1/(.*)/${1:/camelcase}/}"
已在 Insiders Build 中测试。另一个例子见 Add a camelCase transform for Snippet variables. See also 。
旧答案:
使用未记录的(参见Snippet regex: match arbitrary number of groups and transform to CamelCase)/pascalcase
转换,非常简单:
"${1/([A-Z]*)(?:_)([A-Z]+)*/${1:/downcase}${2:/pascalcase}/g}"
因为 /pascalcase
会同时执行 /capitalize
和 /downcase
。