【问题标题】:VsCode Snippet PlaceHolder default value File_Name_Base + uppercaseVsCode Snippet PlaceHolder 默认值 File_Name_Base + 大写
【发布时间】:2020-05-13 16:01:53
【问题描述】:

为了在未来获得一些时间,我正在尝试为 VsCode 创建一些 sn-ps。

有上下文。我有一个tmp.hpp 文件,我想在其中拥有

#ifndef TMP_HPP_
    #define TMP_HPP

#endif

我的问题是,我希望能够随意修改TMP。为此,我希望它成为默认值 最后,如果我决定将TMP 修改为WHATEVER,我想强制WHATEVER 大写。

更准确地说,我希望我的${1} 具有默认值:${TM_FILE_BASE},我还希望${1} 和/或我的${TM_FILE_BASE} 成为${/upper}

这是我目前得到的:

"Creates a ifndef": {
    "prefix": "ifndef",
    "body": [
      "#ifndef ${${1:TM_FILENAME_BASE/(.*)/${1:/upcase}/}}_HPP_",
      "  #define ${${1:TM_FILENAME_BASE/(.*)/${1:/upcase}/}_HPP_",
      "",
      "#endif"
    ],
    "description": "Creates a basic ifndef"
}

谢谢

【问题讨论】:

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


    【解决方案1】:

    你需要使用嵌套变量:

    "Creates a ifndef": {
        "prefix": "ifndef",
        "body": [
          "#ifndef ${1:${TM_FILENAME_BASE/(.*)/${1:/upcase}/}}_HPP_",
          "  #define ${1:${TM_FILENAME_BASE/(.*)/${1:/upcase}/}}_HPP_",
          "",
          "#endif"
        ],
        "description": "Creates a basic ifndef"
    }
    

    注意${1:${TM_FILENAME_BASE/(.*)/${1:/upcase}/}} 部分。这里,${1:...} 是占位符的语法,其中的 thr ${TM_FILENAME_BASE/(.*)/${1:/upcase}/} 指定使用基于正则表达式的替换修改的变量(所有内容都匹配并使用 /(.*)/ 捕获到组 1 并替换为使用 ${1:/upcase}/} 的大写变体(这里,$1 是 Group 1 值占位符)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-12-07
      • 2023-03-24
      • 2017-08-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-10
      • 2018-11-12
      相关资源
      最近更新 更多