VSCode代码段的多种转换

时间:2018-10-11 21:20:15

标签: regex visual-studio-code

我已经按照需要设置了一些代码片段,并且可以正常工作,但是我很难让一个代码片段在我认为需要进行多次转换的地方工作?

基本上,我为我的一个组件定义了TypeScript接口。

IRadioButtonListProps.ts文件夹中的InterfacesInterfaces文件夹有一个名为Theme的同级文件夹,其中包含一个名为IRadioButtonListTheme.ts

的接口

IRadioButtonListProps内,我试图将整个接口都保留下来。我当前拥有的代码段存有类似...的界面

import * as React from 'react';
import IRadioButtonListPropsTheme from '../Theme/IRadioButtonListPropsTheme';

export interface IRadioButtonListPropsProps {
    ...props...
}

export default IRadioButtonListPropsProps;

代码段内的导入行是...

"import I${TM_FILENAME_BASE/(.*)\\..+$/$1/}Props from './Interfaces/I${TM_FILENAME_BASE/(.*)\\..+$/$1/}Props';"

我试图发生的事情并且似乎无法弄清的是如何也删除“道具”一词。因此,我将获得import IRadioButtonListPropsTheme...而不是import IRadioButtonListTheme...

同时,我要删除所有扩展名,包括* .abc.abc(“两个”扩展名)和* .abc(一个简单扩展名)形式的扩展名。

这可能吗?

1 个答案:

答案 0 :(得分:1)

不清楚您要做什么,但请尝试:

"import ${TM_FILENAME/((\\w*)Props)*?(\\..*)/$2/}Theme from './Interfaces/${TM_FILENAME/((\\w*)Props)*?(\\..*)/$2/}Theme';"

结果为:

import IRadioButtonListTheme from './Interfaces/IRadioButtonListTheme';

来自IRadioButtonListProps.ts

import CheckboxListTheme from './Interfaces/CheckboxListTheme';

来自CheckboxListProps.test.tsx

[编辑]这是一个我认为也可以使用的简单版本:

 "import ${TM_FILENAME/(Props)*?(\\..*)//}Theme from './Interfaces/${TM_FILENAME/(Props)*?(\\..*)//}Theme';"
  1. 匹配任何“道具”(如果有的话),将其替换为空。
  2. 与第一个\匹配。到文件名末尾,不作任何替换。