除了使用 TM_FILENAME_BASE 之外,还有其他方法可以修剪 TM_FILENAME 吗?

2024-02-13

我正在尝试为 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';
...

正如您所看到的,它没有省略文件扩展名。


这两者都有效:

  "import { ${TM_FILENAME/^([^.]+).*/${1:/pascalcase}/}Component } from './${TM_FILENAME/^([^.]+).*/$1/}.component';",

  "import { ${TM_FILENAME/(.*?)\\..+/${1:/pascalcase}/}Component } from './${TM_FILENAME/(.*?)\\..+/$1/}.component';"

如果您愿意,可以使用 vscode 片段进行转换exclude根据需要删除变量的一部分.component.js从文件名,那么变量的那部分必须在正则表达式中考虑 - 因此(.*?)\\..+.

否则变量的“看不见的”部分就会通过。

所以你的正则表达式^([^.]+)准确地捕获了第一个之前的文件名部分.但变量的其余部分是“通过”未修改的。

通过这个例子你可以更清楚地看到这一点:

"import { ${TM_FILENAME//${1:/pascalcase}/}Component }

产生:

import { fun-thing.component.jsComponent }

因此,尽管没有捕获任何文件名,但整个文件名都会被传递。

${someVariable/everything To Be Transformed/what To Do To the previous/}

如果它不在“一切都将被改变”部分,那么它什么也不会发生。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

除了使用 TM_FILENAME_BASE 之外,还有其他方法可以修剪 TM_FILENAME 吗? 的相关文章

随机推荐

  • Objective-C 中的类别用法

    我看到我继承的一些代码如下所示 interface SomeClass private 这是在SomeClass m 实施文件 有一个附带的头文件 它并不表明该类正在使用类别 是 private 在这种情况下 只是给一个类别起了一个糟糕的名
  • 在 R Studio 的 R 中以 Markdown 形式生成代码块括号的键盘快捷键

    是否有键盘快捷键可以在 Rmarkdown 中生成代码块括号 r on pc in RStudion it s Ctrl Alt i
  • 具有级联 DropDownList 的 Kendo UI 网格

    我的 Razor 布局上有一个 Kendo UI 网格 它从控制器获取数据 在此网格中 我希望有一组 3 个 DropDownList 它们是 ProductGroups Products Services 我希望实现的行为是 当我向网格添
  • 使用 Java 从大整数数组中删除重复项

    您是否知道使用 Java 从非常大的整数数组中删除重复值的省时方法 数组的大小取决于登录的用户 但始终会超过 1500000 个未排序的值 并有一些重复项 每个整数都包含 100000 到 9999999 之间的数字 我尝试将其转换为列表
  • 使用 Fluent nhibernate 映射实体 oneToMany

    问题似乎很简单 但是我在尝试映射这个实体时遇到了很多麻烦 我只是看不出我做错了什么 你们能帮我吗 我有课Cliente public class Cliente public Cliente public virtual int Clien
  • 在进程之间共享类实例的方法

    我编写了一个 C 类 我需要在至少两个 Windows 进程之间共享一个实例 有哪些不同的方法可以做到这一点 最初我调查了 pragma data seg http msdn microsoft com en us library h90d
  • R Shiny 应用程序中的安全性

    我想发布一个 R Shiny Web 应用程序 http www rstudio com shiny http www rstudio com shiny 在网络上 但我想用密码保护它 以便只有拥有凭据的人才能查看我发布的内容 做这个的最好
  • 如何在 JavaScript 中将通配符元素名称与“querySelector()”或“querySelectorAll()”匹配?

    有没有办法使用通配符元素名称匹配querySelector or querySelectorAll 我试图解析的 XML 文档基本上是一个简单的属性列表 我需要找到名称中包含某些字符串的元素 我看到属性查询中支持通配符 但不支持元素本身 除
  • Node.js 中固定位置命令提示符

    有没有办法让命令提示符 只是一个question http nodejs org api readline html readline rl question query callback提示符或类似的东西 固定在终端的底部 并使用它来记录
  • AWS Glue:爬网程序无法识别 CSV 格式的时间戳列

    运行 AWS Glue 爬网程序时 它无法识别时间戳列 我已在 CSV 文件中正确设置 ISO8601 时间戳的格式 首先 我希望 Glue 能够自动将它们分类为时间戳 但事实并非如此 我还尝试从此链接中使用自定义时间戳分类器https d
  • 有没有办法将 Ruby Net::HTTP 请求附加到特定的 IP 地址/网络接口?

    我正在寻找一种方法 通过标准 Net HTTP 库为每个 GET 请求使用不同的 IP 地址 服务器有 5 个 IP 地址 并假设当达到每个 IP 的请求限制时 某些 API 会阻止访问 因此 唯一的方法是使用另一台服务器 我在 ruby
  • Python 中的 N-curses:如何捕获并打印非 ASCII 字符?

    我想用 ncurses python 制作一个小程序 并且能够使用 输入法语和日语 我知道我应该设置区域设置并使用 unicode 标准 但是如何处理 screen getch 的结果呢 我想在 ncurses 窗口中显示键入的字符 而不管
  • 刷新 Azure AD B2C 中的令牌撤销

    在我的 AD B2C 应用程序中 我需要撤销 AD B2C 为用户提供的所有刷新令牌 当用户帐户登录多个应用程序并且在一个应用程序中用户更改了密码时 这是一项需要实施的要求 更改密码后 我已撤销给予其他应用程序的所有刷新令牌 怎么做 Upd
  • 找不到 weblogic maven 插件

    我按照这个教程安装 weblogic 插件 http docs oracle com cd E21764 01 web 1111 e13702 maven deployer htm http docs oracle com cd E2176
  • 缺少 Firebase app_update 事件

    我看到了巨大的差异app updateFirebase 自动发送的事件以及用户群在发布时真正转换为新版本的情况 例如新版本发布期间的 5 天 120 个事件 VS 3k 用户 x20 差异 我确实检查了另一个 alpha 更新 其中数据导出
  • Pandas GroupBy 日期范围取决于每行

    我想做以下事情 对于如下所示的数据框 df pd DataFrame ID A A C B B date 06 24 2014 06 25 2014 06 23 2014 07 02 1999 07 02 1999 value 3 5 1
  • 致命错误:在非对象上调用成员函数 fetch_assoc() [重复]

    这个问题在这里已经有答案了 我正在尝试执行一些查询来获取有关某些图像的信息页面 我写了一个函数 function get recent highs view deleted images false lower this gt databa
  • 如何使用flask_sqlalchemy反映现有表

    我注意到一个方法 db reflect bind all app app 但我想知道如何使用它 如果您能提供帮助 我将不胜感激 from flask import Flask from flask sqlalchemy import SQL
  • 从不同的函数访问变量

    我有以下 HTML 代码 它创建一个按钮 单击该按钮时会在我的页面中创建一些问题 工作正常
  • 除了使用 TM_FILENAME_BASE 之外,还有其他方法可以修剪 TM_FILENAME 吗?

    我正在尝试为 redux 容器文件创建一个片段 该文件导入一些具有相同基本名称的反应文件 TM FILENAME BASE 非常适合从文件名中删除 js 但在本例中 我的组件文件的扩展名是 fun thing component js 容器