visual studio 代码的这个链接片段有什么问题?

what's wrong with this chained snippet for visual studio code?

我正在尝试制作一个片段来声明 bemit 组件,所以当我创建一个新组件时,我只需要写前缀“new-bemit-component”,然后例如使用文件“_c-indice” _ 表示部分元素,c- 表示组件,然后是名称,代码段将这样写:

/* ========================================================================================= */
/* COMPONENT - C INDICE */
/* ========================================================================================= */

.c-indice{
    
}

/* ========================================================================================= */
/* END COMPONENT - C INDICE */
/* ========================================================================================= */

我已经完成了代码段所写的内容

/* =========================================== ============================================== / / COMPONENT - C 指数 / / ============================================ ===============================================*/

.c-指数{

}

/* =========================================== ============================================== / / 结束组件 - C 索引 / / ============================================ ===============================================*/

使用

"body": [
          "/* ========================================================================================= */",
          "/* COMPONENT - C ${TM_FILENAME_BASE/_c-//} */",
          "/* ========================================================================================= */",
          "",
          ".${TM_FILENAME_BASE/[\\_]//}{",
          "",
          "}",
          "",
          "/* ========================================================================================= */",
          "/* END COMPONENT - C ${TM_FILENAME_BASE/_c-//} */",
          "/* ========================================================================================= */"
        ],

但现在我正在尝试链接另一个正则表达式,因此结果以大写结尾,使用这个

"body": [
          "/* ========================================================================================= */",
          "/* COMPONENT - C ${TM_FILENAME_BASE/(_c-)(\(?!_\w\b)\b\w+)/${1:+ }/g ${2:/capitalize/}} */",
          "/* ========================================================================================= */",
          "",
          ".${TM_FILENAME_BASE/[\\_]//}{",
          "",
          "}",
          "",
          "/* ========================================================================================= */",
          "/* END COMPONENT - C ${TM_FILENAME_BASE/_c-//} */",
          "/* ========================================================================================= */"
        ],

就像他们在这里所做的那样

但是正则表达式一定有问题,我明白了:

/* ========================================================================================= */
/* COMPONENT - C ${TM_FILENAME_BASE/(_c-)(\(?!_\w)\w+)/+ /g /capitalize/} */
/* ========================================================================================= */

.c-indice{

}

/* ========================================================================================= */
/* END COMPONENT - C indice */
/* ========================================================================================= */

我用 https://regex101.com

测试了正则表达式

您只需要捕获 _c- 之后的部分并将其大写:

${TM_FILENAME_BASE/_c-(.*)/${1:/upcase}/}

TM_FILENAME_BASE变量中的_c-会被匹配,其余的会被抓到第1组

然后,所有匹配的文本将被替换(一次,没有 g 标志)第 1 组的内容变成大写 upcase