在创建VSCode片段时,如何将变量转换为title-case(如TitleCase)?

问题描述 投票:1回答:1

https://code.visualstudio.com/docs/editor/userdefinedsnippets#_placeholdertransform

我的目标是在插入的代码段的上下文中自动设置类名。 VSCode本身不支持类或方法名称,但它支持文件名。

我的文件名非常类似于类名:

foo-bar.tsclass FooBar

这是我目前的代码片段,其中我可以使用VSCode提供的原生“大写”语法将"foo-bar"转换为"Foo-bar"TM_FILENAME_BASE是一个本机变量,它提取没有扩展名的文件名:

"My Snippet": {
    "scope": "typescript",
    "prefix": "snippet",
    "body": [
        "${1}() {",
        "\treturn this.get(${TM_FILENAME_BASE/(.*)/${1:/capitalize}/}.FIELD.${3});",
        "}",
        "",
        "$0"
    ],
    "description": "Creates a function wrapper for a model's attribute."
}

我想将“foo-bar”改为“FooBar”。

visual-studio-code code-snippets
1个回答
4
投票

试试这个:

  "My Snippet": {
    "scope": "typescript",
    "prefix": "snippet",
    "body": [
      "${1}() {",
      "\treturn this.get(${TM_FILENAME_BASE/([a-z]*)-*([a-z]*)/${1:/capitalize}${2:/capitalize}/g}.FIELD.${3});",
      "}",
      "",
      "$0"
    ],
    "description": "Creates a function wrapper for a model's attribute."
  }

如果您的文件长度为两个或更多段,如foo-bar.ts或foo-bar-zoo.ts等,则可以正常工作。

另见snippet transform to CamelCase

© www.soinside.com 2019 - 2024. All rights reserved.