首页 > 解决方案 > 如何在 vscode 片段中对用户输入应用正则表达式

问题描述

我正在使用反应钩子。我使用带减速器的全局上下文。而不是在函数内部编写每个casereducer 函数。我想在文件中分开。我的文件示例如下

export type SetDrawingDataAction = {"set-drawing-data": Data};
export function setDrawingData(state : IGlobalState, data: number) : IGlobalState{

}

在上面的文件中,您可以知道我SetDrawingData在三个地方使用了这个名称,但格式不同。

目前我的片段如下所示,但它没有赚钱setDrawingDataAction

"Generate Action file": {
  "prefix": "actd",
  "body": [
     "export type ${1/(.*)/${1:/capitalize}/} = {\"\": Data}",
     "export function $1(state : IGlobalState, data: Data) : IGlobalState {",
     "  $2",
     "}"
  ],
  "description": "Generate action file witn data"
} 

请回答如何仅使用单个输入来更改格式。第一个是大写 can 第二个需要是更改camelCasecamel-case

标签: visual-studio-codecode-snippetsvscode-snippets

解决方案


假设您的输入是setDrawingData尝试此代码段:

"Generate Action file": {
  "prefix": "actd",
  "body": [
     "export type ${1/(.*)/${1:/capitalize}/}Action = {\"${1/(.*)([A-Z][^[A-Z]*)([A-Z][^[A-Z]*)/$1-${2:/downcase}-${3:/downcase}/}\": Data}",
     "export function $1(state : IGlobalState, data: Data) : IGlobalState {",
     "  $2",
     "}"
  ],
  "description": "Generate action file witn data"
}

这是该片段的输出:

export type SetDrawingDataAction = {"set-drawing-data": Data}
export function setDrawingData(state : IGlobalState, data: Data) : IGlobalState {

}

片段演示


推荐阅读