https://code.visualstudio.com/docs/editor/userdefinedsnippets#_placeholdertransform
我的目的是在要插入的代码段的上下文中自动设置类名称。VSCode本身不支持类名或方法名,但支持文件名。
我的文件名非常类似于类名:
foo-bar.ts
为class FooBar
。
这是我当前的代码片段,其中我可以转换"foo-bar"
为"Foo-bar"
使用VSCode提供的本机“大写”语法。
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变换。
另请参阅将片段转换为CamelCase