通过 ifdef 关注启用代码替换文本

Replace text by focus on enable code by ifdef

是否存在任何方法来仅替换由 C 预处理器宏启用的文本,例如 Visual Studio 中的 #if/#ifdef

如果你问是否内置了这样的功能,答案是 "no."

如果你问是否有可能创造一种方法,那么答案是"maybe." 显然,编辑器知道源文件中预处理器启用了哪些代码,因为扫描程序在其上运行,使用当前项目设置找出定义了哪些预处理器符号。着色器使用该信息为源文件着色。然而,标准的搜索和替换功能会忽略该信息(以及任何其他不是基本文本的信息)。如果你非常想,你可以使用 Visual Studio SDK 编写一个扩展来实现你自己的搜索和替换功能,并让它使用扫描仪输出(或者可能,由着色器创建的文本装饰集合) 来指导在源文件的哪些部分中进行搜索和替换。这将是很多工作,可能比任何手动搜索和替换过程都要多得多。另一方面,也许您可​​以在 VS Gallery 中出售生成的扩展。

做你想做的最简单的方法是用现有的工具进行搜索和替换,一次搜索一个(F3 是你的朋友),并且只有当文本是 "enabled"颜色。