【问题标题】:what's wrong with this chained snippet for visual studio code?这个 Visual Studio 代码的链式片段有什么问题?
【发布时间】:2021-09-29 11:58:52
【问题描述】:

我正在尝试创建一个 sn-p 来声明 bemit 组件,因此当我创建一个新组件时,我只需要编写前缀“new-bemit-component”,然后例如使用文件“_c-indice” _ 代表部分元素,c- 代表组件,然后是名称,sn-p 会这样写:

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

.c-indice{
    
}

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

我已经完成了 sn-p 写的操作

/* ============================================== ==============================================/ / 组件 - C 指数 / / ============================================== =============================================*/

.c-索引{

}

/* ============================================== ==============================================/ / END COMPONENT - 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-//} */",
          "/* ========================================================================================= */"
        ],

就像他们在这里做的那样VSCode chaining regex transforms in a snippet

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

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

.c-indice{

}

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

我用https://regex101.com测试了正则表达式

【问题讨论】:

    标签: regex vscode-snippets


    【解决方案1】:

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

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

    TM_FILENAME_BASE 变量中的_c- 将被匹配,其余的将被捕获到第 1 组中。

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

    【讨论】:

      猜你喜欢
      • 2012-08-04
      • 1970-01-01
      • 2015-04-25
      • 2018-09-09
      相关资源
      最近更新 更多