片段:从snake_case到PascalCase的transorm TM_DIRECTORY base dir



我正在尝试从TM_DIRECTORY变量(提供完整路径(中获取"基目录"以转换为PascalCase(在snake_case中(。

所以,为了/this/is/path/to/base_dir,我想得到BaseDir

这是我到目前为止得到的:

${TM_DIRECTORY/(^.+\/(.*)$)/${2:/capitalize}/g}由此而来

这给了我:

/this/is/path/to/base_dirBase_dir

我觉得我必须以某种方式合并${TM_DIRECTORY/((^[a-z])|_([a-z]))/${2:/upcase}${3:/upcase}/g}但不知道如何。

使用这个:

"${TM_DIRECTORY/(^.+\/(.*)$)/${2:/pascalcase}/}",

不幸的是,pascalcase选项没有记录在案。

如果该选项不可用,我会建议这样做:

"${TM_DIRECTORY/.*\/(.*)_(.*)$/${1:/capitalize}${2:/capitalize}/}",

这个想法是获取两个捕获组中的最后一个目录,将每个捕获组大写并忽略下划线分隔符(即,它不会出现在转换部分中(。

概括地说,如果您的目录名称中除了下划线之外还有其他名称分隔符,则可以在该中间部分使用此[_-]- 只需包含其他可能的分隔符。

最新更新