【问题标题】:VSCode Code-Snippets transform: downcase and capitalize at the same timeVSCode Code-Snippets 转换:同时小写和大写
【发布时间】:2018-07-10 19:43:35
【问题描述】:

我有这个:

${1/([A-Z]*)(?:_)([A-Z]+)*/${1:/downcase}${2:/downcase}/g}

如何在同一个(2)组中使用downcasecapitalize

${1/([A-Z]*)(?:_)([A-Z]+)*/${1:/downcase}${2:/downcase/capitalize}/g}

我想将ZXC_ASD 转换为zxcAsd

【问题讨论】:

    标签: regex visual-studio-code code-snippets vscode-snippets


    【解决方案1】:

    试试这样:

    "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}/

    【讨论】:

      【解决方案2】:

      显然来到 vscode v1.58 的是 /camelcase 修饰符。所以你的案子很简单

      "${1/(.*)/${1:/camelcase}/}"
      

      在 Insiders Build 中测试。见Add a camelCase transform for Snippet variables。另一个例子请参见https://stackoverflow.com/a/51228186/836330


      旧答案:

      使用未记录的(参见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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2018-08-17
        • 1970-01-01
        • 2013-01-25
        • 2011-01-23
        • 1970-01-01
        • 1970-01-01
        • 2017-06-30
        相关资源
        最近更新 更多