VSCode 片段使用正则表达式转换为内联大写

问题描述 投票:0回答:1

我有以下 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
。如何针对与正则表达式内联的正则表达式转换执行大写?

javascript visual-studio-code storybook code-snippets
1个回答
0
投票

啊,我非常接近。结果是:

'${RELATIVE_FILEPATH/(([a-zA-Z]*)\\/)*([0-9]+-([a-zA-Z]*))\\/(.*)/${4:/pascalcase}/}'
© www.soinside.com 2019 - 2024. All rights reserved.