片段:将 TM_DIRECTORY basedir 从 snake_case 转换为 PascalCase
Snippet: transorm TM_DIRECTORY base dir from snake_case to PascalCase
我正在尝试从 TM_DIRECTORY 变量(提供完整路径)中获取 "base directory" 以转换为 PascalCase(在 snake_case 中)。
所以,对于 /this/is/path/to/base_dir
,我想得到 BaseDir
这是我目前得到的:
${TM_DIRECTORY/(^.+\/(.*)$)/${2:/capitalize}/g}
来自
这给了我:
Base_dir
对于 /this/is/path/to/base_dir
我觉得我必须以某种方式合并 ${TM_DIRECTORY/((^[a-z])|_([a-z]))/${2:/upcase}${3:/upcase}/g}
但不知道如何。
使用这个:
"${TM_DIRECTORY/(^.+\/(.*)$)/${2:/pascalcase}/}",
不幸的是,pascalcase
选项没有记录。
如果该选项不可用,我建议这样做:
"${TM_DIRECTORY/.*\/(.*)_(.*)$/${1:/capitalize}${2:/capitalize}/}",
想法是获取两个捕获组中的最后一个目录,将每个目录都大写并忽略下划线分隔符(即,它不会出现在转换部分)。
概括地说,如果您的目录名称中除了下划线之外还有其他名称分隔符,您可以在中间部分使用此 [_-]
- 只需包括其他可能的分隔符。
我正在尝试从 TM_DIRECTORY 变量(提供完整路径)中获取 "base directory" 以转换为 PascalCase(在 snake_case 中)。
所以,对于 /this/is/path/to/base_dir
,我想得到 BaseDir
这是我目前得到的:
${TM_DIRECTORY/(^.+\/(.*)$)/${2:/capitalize}/g}
来自
这给了我:
Base_dir
对于 /this/is/path/to/base_dir
我觉得我必须以某种方式合并 ${TM_DIRECTORY/((^[a-z])|_([a-z]))/${2:/upcase}${3:/upcase}/g}
但不知道如何。
使用这个:
"${TM_DIRECTORY/(^.+\/(.*)$)/${2:/pascalcase}/}",
不幸的是,pascalcase
选项没有记录。
如果该选项不可用,我建议这样做:
"${TM_DIRECTORY/.*\/(.*)_(.*)$/${1:/capitalize}${2:/capitalize}/}",
想法是获取两个捕获组中的最后一个目录,将每个目录都大写并忽略下划线分隔符(即,它不会出现在转换部分)。
概括地说,如果您的目录名称中除了下划线之外还有其他名称分隔符,您可以在中间部分使用此 [_-]
- 只需包括其他可能的分隔符。