将文本格式化为 Visual Studio 中的 CamelCase

Formatting text as CamelCase in Visual Studio

我想从这样的行中得到:

#define FACILITY_USERMODE_HYPERVISOR  53

到这样一行,用于枚举:

zFacilityUsermodeHypervisor = FACILITY_USERMODE_HYPERVISOR,

快速替换正则表达式就成功了一半,有没有快速获得完整结果的方法?

Regex:   #define (FACILITY_\w+)\s+(\d+)
Replace:  = ,

这让我

FACILITY_USERMODE_HYPERVISOR = FACILITY_USERMODE_HYPERVISOR,

如何将第一部分转换为 CamelCase?

用不支持\l / \u\L / \U ... \E 的VS S&R 肯定是太难实现了替换模式中的运算符。

我建议在 Notepad++ 中用 3 个步骤实现它:

  • 使用 #define (FACILITY_\w+)(?=\s+\d+) 正则表达式 (see demo) 复制您需要转换为 CaMeL 大小写的标识符。你的 #define FACILITY_USERMODE_HYPERVISOR 53 会变成 #define FACILITY_USERMODE_HYPERVISOR %%% FACILITY_USERMODE_HYPERVISOR 53.
  • 使用 (?:#define\s+|(?!^)\G)\K_?([A-Za-z])([^\W_]*)_?(?=[\w\s]*%%%) 正则表达式和 \u\L\E 替换,在 #define 之后第一次出现标识符时应用 CaMeL 大小写。所以,#define FACILITY_USERMODE_HYPERVISOR %%% FACILITY_USERMODE_HYPERVISOR 53 会变成 #define FacilityUsermodeHypervisor %%% FACILITY_USERMODE_HYPERVISOR 53.

  • 最后一步只是获得所需的输出:删除不需要的内容并添加等号:使用 #define (Facility\w*)\s+%%%\s+(\w+)\s+\d+ 正则表达式和 z = , 替换 (see demo)。