我有这个:
${1/([A-Z]*)(?:_)([A-Z]+)*/${1:/downcase}${2:/downcase}/g}
如何使用downcase和capitalize在同一(2)组?
${1/([A-Z]*)(?:_)([A-Z]+)*/${1:/downcase}${2:/downcase/capitalize}/g}
我想转换ZXC_ASD为zxcAsd.
我有这个:
${1/([A-Z]*)(?:_)([A-Z]+)*/${1:/downcase}${2:/downcase}/g}
如何使用downcase和capitalize在同一(2)组?
${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]+))*,一个用于驼峰式大小写的字母和其余字母,我在替换/转换部分中提到:/downcase}${2:/capitalize}${3:/downcase}/
显然来到 vscode v1.58 是一个/camelcase修饰符。所以你的案子很简单
"${1/(.*)/${1:/camelcase}/}"
在 Insiders Build 中测试。请参阅为片段变量添加 camelCase 变换。另请参阅https://stackoverflow.com/a/51228186/836330以获取另一个示例。
老答案:
使用未记录的(参见片段正则表达式:匹配任意数量的组并转换为 CamelCase)/pascalcase转换,这很容易:
"${1/([A-Z]*)(?:_)([A-Z]+)*/${1:/downcase}${2:/pascalcase}/g}"
就像/pascalcase意志同时做的/capitalize那样/downcase。