visual-studio-code - 创建VSCode代码段时,如何将变量转换为标题大小写(如TitleCase)?

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

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

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

我的文件名非常类似于类名:
foo-bar.ts代表class FooBar

这是我当前的代码片段,其中我可以使用VSCode提供的 native “大写”语法将"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”。

最佳答案

试试这个:

  "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});",

      "\treturn this.get(${TM_FILENAME_BASE/(.*)/${1:/pascalcase}/g}.FIELD.${3});",

      "}",
      "",
      "$0"
    ],
    "description": "Creates a function wrapper for a model's attribute."
  }

编辑:在2018年10月,\pascalcase转换已添加到vscode-请参见
commit,但尚未添加到文档中(截至此编辑之日)。我在上面添加了更简单的变换来完成PascalCase变换。

演示已添加,在第一个文件名大小写(test-bed-snippets.xxx)之后使用剪贴板只是为了使各种可能性易于演示。

pascalCase snippet demo

另请参阅snippet transform to CamelCase

关于visual-studio-code - 创建VSCode代码段时,如何将变量转换为标题大小写(如TitleCase)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52874954/

相关文章:

reactjs - 是否有用于 VS Code 的 JSX emmet 在 {} 中而不是引号中围绕 className

C# - 快速分配所有字段/属性的代码片段或模板?

visual-studio-code - 如何在 VSCode 中禁用代码片段的 Enter 按钮

visual-studio-code - VSCode 代码片段中的转换和正则表达式 - 文档

java - 'javac' 不是内部或外部命令,也不是可运行的程序或批处理文件。在 VS Code 中,使用 Code Runner 扩展

c# - 我可以在 Visual Studio/Code 中测试/运行 Unity C# 吗?

amazon-web-services - 设置 AWS 凭证以使用 MFA 并能够通过 VScode 中的 AWS Toolkit 担任指定配置文件的角色的正确方法是什么?

wpf - 如何为 VSE 2013 桌面安装 MVVMLight 片段

f# - 方便的 F# 片段

visual-studio-code - 具有多个转换的 VS Code 片段