我正在尝试为 redux 容器文件创建一个片段,该文件导入一些具有相同基本名称的反应文件。 TM_FILENAME_BASE 非常适合从文件名中删除 .js,但在本例中,我的组件文件的扩展名是 fun-thing.component.js,容器也会采用 fun-thing.container.js 扩展名。
我用来选择第一个周期之前的所有内容的正则表达式是^([^.]+)
"Redux Container": {
"prefix": "rc",
"body": [
"// @flow",
"import { connect } from 'react-redux';",
"import { ${TM_FILENAME/^([^.]+)/${1:/pascalcase}/}Component } from './${TM_FILENAME/^([^.]+)/$1/}.component';",
"",
"const mapStateToProps = (state) => ({});",
"",
"const mapDispatchToProps = {};",
"",
"export const ${TM_FILENAME/^([^.]+)/${1:/pascalcase}/} = connect(",
" mapStateToProps,",
" mapDispatchToProps",
")(${TM_FILENAME/^([^.]+)/${1:/pascalcase}/}Component);"
],
"description": "Creates a normal container for a normal component"
}
expected
// @flow
import { connect } from 'react-redux';
import { FunThingComponent } from './fun-thing.component';
...
actual
// @flow
import { connect } from 'react-redux';
import { FunThing.container.jsComponent } from './FunThing.container.js.component';
...
正如您所看到的,它没有省略文件扩展名。