You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VS Code代码片段问题:文件名转PascalCase并移除Impl后缀失效

问题排查与解决方案

你的问题出在VS Code代码片段不支持嵌套变量转换语法——你试图先把TM_FILENAME_BASE转成PascalCase,再对这个结果做Impl后缀移除,但这种嵌套的${${...}/.../}写法不会被解析,导致替换表达式直接被输出成了字符串。

修改后的代码片段

把两步转换合并到单个正则替换中,直接对TM_FILENAME_BASE完成格式转换和后缀移除:

"body": [
    "class ${TM_FILENAME_BASE/(.*)/${1:/pascalcase}/g} implements ${TM_FILENAME_BASE/(.*)(Impl)$/${1:/pascalcase}/g} {",
    "  final ${2:RemoteDataSource} remoteDataSource;",
    "  ${TM_FILENAME_BASE/(.*)/${1:/pascalcase}/g}({required this.remoteDataSource});",
    "}"
],

关键修改说明

  • 对于implements后的部分,用正则(.*)(Impl)$匹配文件名的主体部分和末尾的Impl后缀,仅对捕获组$1应用pascalcase转换,直接跳过Impl后缀,一步到位得到目标名称。
  • 保留原有的${TM_FILENAME_BASE/(.*)/${1:/pascalcase}/g}用于类名(需要保留Impl后缀)。

测试验证

当文件名是home_repository_impl时,会输出预期结果:

class HomeRepositoryImpl implements HomeRepository {
  final RemoteDataSource remoteDataSource;
  HomeRepositoryImpl({required this.remoteDataSource});
}

内容的提问来源于stack exchange,提问作者Abdullah Mohamed

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 14:30:38