如何统一处理VS Code的TM_FILENAME_BASE:移除关键词并转大驼峰
解决方案
可以通过两种简洁的方式实现需求,既支持移除指定关键词(存在时),又能统一转为大驼峰格式,同时兼容不含关键词的文件名:
方式1:优化正则分支匹配
用分支正则同时覆盖含/不含component的场景,确保所有情况都能捕获有效内容并转换:
${TM_FILENAME_BASE/(.*?)\bcomponent\b(.*)|(.+)/${1:/pascalcase}${2:/pascalcase}${3:/pascalcase}/}
- 分支
(.*?)\bcomponent\b(.*)匹配含component的文件名,分别捕获关键词前后内容并转大驼峰 - 分支
(.+)匹配不含component的文件名,直接捕获整个文件名转大驼峰
方式2:嵌套变量替换(更简洁)
先移除所有component子串,再对结果整体应用大驼峰转换:
${${TM_FILENAME_BASE/\bcomponent\b//g}:/pascalcase}
- 内层
${TM_FILENAME_BASE/\bcomponent\b//g}负责移除所有匹配的component关键词 - 外层
${...:/pascalcase}将处理后的文件名统一转为大驼峰格式
效果验证
- 输入
prefix-component.suffix.ts→ 输出PrefixSuffix - 输入
prefix-suffix.ts→ 输出PrefixSuffix
内容的提问来源于stack exchange,提问作者James Morris
相关产品推荐
相关产品推荐

