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

VSCode Flutter/Dart自定义代码片段:文件名转帕斯卡命名法求助

解决VS Code Flutter/Dart代码片段下划线转PascalCase的问题

我来帮你搞定这个代码片段的转换需求!你想要把文件名(TM_FILENAME_BASE)从下划线分隔格式(比如my_file_name)转成PascalCase(MyFileName),其实用VS Code的片段正则替换就能一步完成,不需要分开处理。

直接可用的转换代码

把这个表达式用到你的代码片段里就行:

${TM_FILENAME_BASE/(^|_)(.)/${2:/capitalize}/g}

比如当你的文件名是my_file_name.dart,TM_FILENAME_BASE是my_file_name,用上面的表达式后会输出MyFileName。

拆解一下这个正则的作用(帮你理解原理)

因为你说不熟悉正则,我把每部分拆解开讲:

  • (^|_):匹配两种情况——要么是字符串的开头(^),要么是下划线(_),这部分会被作为第一个捕获组,但我们后面不会用到它,目的只是定位需要大写的字符位置。
  • (.):匹配下划线后面的任意单个字符(或者字符串开头的第一个字符),作为第二个捕获组,这是我们要处理的核心字符。
  • ${2:/capitalize}:把第二个捕获组里的字符转换成大写,同时因为我们没有保留第一个捕获组的内容(下划线或者开头的空匹配),相当于自动去掉了下划线。
  • /g:全局匹配标志,告诉VS Code要处理所有符合条件的位置,而不是只处理第一个。

示例代码片段

如果你要生成一个类的代码片段,完整的json可以写成这样:

"Flutter PascalCase Class": {
  "prefix": "pascalclass",
  "body": [
    "class ${TM_FILENAME_BASE/(^|_)(.)/${2:/capitalize}/g} {",
    "  // 在这里写你的类代码",
    "}"
  ],
  "description": "根据文件名生成PascalCase命名的Flutter类"
}

这样你在.dart文件里输入pascalclass,就能自动生成以文件名转成PascalCase命名的类啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 08:26:43