如何将多个转换应用于代码段变量
How to apply multiple transforms to snippet variable
我在一个名为 event-list.tsx
的文件中,我正在尝试创建一个代码段来编写以下代码:
const EventList: FC = () => {
return <div>
</div>;
};
export default EventList;
到目前为止,在 typescriptreact.json
中,我编写了以下片段设置,这导致代码看起来很尴尬(它输出 const event-list
而不是 const EventList
"react arrow func component": {
"prefix": "rafce",
"body": [
"const ${TM_FILENAME_BASE}: FC = () => {",
" return <div>",
" ",
" </div>;",
"};",
"",
"export default ${TM_FILENAME_BASE};",
""
]
},
我知道如何从代码段中删除连字符:
${TM_FILENAME_BASE/-//}
我还想出了如何将第一个字符大写:
${TM_FILENAME_BASE/(^.)/${1:/upcase}/}
但我不知道如何应用我想要的所有三个更改。我知道正则表达式需要将连字符后的每个字符大写(正后视),但我不知道如何在此处应用它。 documentation chapter 中没有任何内容暗示可以将多个转换相互链接。
试试下面的全局正则表达式
${TM_FILENAME_BASE/(.)([^-]*)-?/${1:/upcase}/g}
查找 -
之前的部分并将第一个字母大写,对整个字符串重复
"${TM_FILENAME_BASE/(\w+)-?/${1:/capitalize}/g}",
(\w+)-?
:如果使用 /capitalize
.
则只需要一个捕获组
连字符通过匹配 (-?
) 被删除,但不包括在输出中。
g
标志是保持匹配每个 (\w+)-?
实例并为每个实例执行转换所必需的。
并且由于您正在重用早期的转换,您可以像这样简化整个事情:
"react arrow func component": {
"prefix": "rafce",
"body": [
"const ${1:${TM_FILENAME_BASE/(\w*)-?/${1:/capitalize}/g}}: FC = () => {",
" return <div>",
" ",
" </div>;",
"};",
"",
"export default ;",
""
]
},
注意
${1:${TM_FILENAME_BASE/(\w*)-?/${1:/capitalize}/g}}
将该转换的结果存储在变量
中 - 可以稍后(或更早)单独使用它来输出相同的结果!
我在一个名为 event-list.tsx
的文件中,我正在尝试创建一个代码段来编写以下代码:
const EventList: FC = () => {
return <div>
</div>;
};
export default EventList;
到目前为止,在 typescriptreact.json
中,我编写了以下片段设置,这导致代码看起来很尴尬(它输出 const event-list
而不是 const EventList
"react arrow func component": {
"prefix": "rafce",
"body": [
"const ${TM_FILENAME_BASE}: FC = () => {",
" return <div>",
" ",
" </div>;",
"};",
"",
"export default ${TM_FILENAME_BASE};",
""
]
},
我知道如何从代码段中删除连字符:
${TM_FILENAME_BASE/-//}
我还想出了如何将第一个字符大写:
${TM_FILENAME_BASE/(^.)/${1:/upcase}/}
但我不知道如何应用我想要的所有三个更改。我知道正则表达式需要将连字符后的每个字符大写(正后视),但我不知道如何在此处应用它。 documentation chapter 中没有任何内容暗示可以将多个转换相互链接。
试试下面的全局正则表达式
${TM_FILENAME_BASE/(.)([^-]*)-?/${1:/upcase}/g}
查找 -
之前的部分并将第一个字母大写,对整个字符串重复
"${TM_FILENAME_BASE/(\w+)-?/${1:/capitalize}/g}",
(\w+)-?
:如果使用 /capitalize
.
连字符通过匹配 (-?
) 被删除,但不包括在输出中。
g
标志是保持匹配每个 (\w+)-?
实例并为每个实例执行转换所必需的。
并且由于您正在重用早期的转换,您可以像这样简化整个事情:
"react arrow func component": {
"prefix": "rafce",
"body": [
"const ${1:${TM_FILENAME_BASE/(\w*)-?/${1:/capitalize}/g}}: FC = () => {",
" return <div>",
" ",
" </div>;",
"};",
"",
"export default ;",
""
]
},
注意
${1:${TM_FILENAME_BASE/(\w*)-?/${1:/capitalize}/g}}
将该转换的结果存储在变量 中 - 可以稍后(或更早)单独使用它来输出相同的结果!