visual-studio-code - 创建 VSCode 片段时,如何将变量转换为标题大小写(如 TitleCase)?
问题描述
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 转换。
添加了演示,在第一个文件名大小写 ( ) 之后使用剪贴板test-bed-snippets.xxx
只是为了使各种可能性易于演示。
推荐阅读
- javascript - 如何在 vue2-daterange-picker 中只显示 1 个日历?
- python - PySimpleGUI 组合值返回(Python GUI)
- javascript - 未定义不是对象(评估“navigation.toggleDrawer”)
- android - android studio APK logcat 问题
- javascript - 如何访问存储在数据库中的数组
- c# - C# 和 FileSystemWatcher
- r - 图例散点图
- python - 如何在 VLC 或 PYTHON OPENCV 中流式传输 WEB RTC WOWZA 的视频捕获,
- javascript - Ionic + React.js:警告:列表中的每个孩子都应该有一个唯一的“关键”道具
- python - Moto 警告:使用 ec2_backend.describe_images() 为您的测试找到合适的图像