我有以下 javascript 片段,用于在文件中创建 React Storybook 故事:
"Create React Storybook Story": {
"prefix": "rss",
"body": [
"import { ${TM_FILENAME_BASE/(.*)\\.stories$/$1/} } from '../../components/${RELATIVE_FILEPATH/(([a-zA-Z0-9-]*)\\/)*(.*)\\.stories\\.js/$2/}/${TM_FILENAME_BASE/(.*)\\.stories$/$1/}';",
"",
"export default {",
" title: '${RELATIVE_FILEPATH/(([a-zA-Z]*)\\/)*([0-9]+-([a-zA-Z]*))\\/(.*)/$4/}/${TM_FILENAME_BASE/(.*)\\.stories$/$1/}',",
" component: ${TM_FILENAME_BASE/(.*)\\.stories$/$1/},",
" parameters: {",
" layout: 'centered',",
" },",
" tags: ['autodocs'],"
" argTypes: {},",
"};",
"",
"export const Default = {",
" args: {",
" }"
"};",
],
"description": "Create a story for a react storybook component."
}
正如可能可以解释的那样,我的故事组织如下:
- src/
- stories/
- 01-atoms/
- Something.stories.js
当我插入片段时,我希望这个故事的标题是
Atoms
,而不是atoms
。正则表达式转换为:${RELATIVE_FILEPATH/(([a-zA-Z]*)\\/)*([0-9]+-([a-zA-Z]*))\\/(.*)/$4/}
,但这会导致第一个字母小写,因为这就是文件名中的内容。
我尝试将
/uppercase
添加到正则表达式的末尾,但无济于事。我也尝试过添加 \u$4
,但这实际上只是输出文字 \uatoms
。如何针对与正则表达式内联的正则表达式转换执行大写?
啊,我非常接近。结果是:
'${RELATIVE_FILEPATH/(([a-zA-Z]*)\\/)*([0-9]+-([a-zA-Z]*))\\/(.*)/${4:/pascalcase}/}'