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
)之后使用剪贴板只是为了使各种可能性易于演示。另请参阅snippet transform to CamelCase
关于visual-studio-code - 创建VSCode代码段时,如何将变量转换为标题大小写(如TitleCase)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52874954/