必须使用一个巨大的代码库,其中数据通过多层和三个框架进行传输,并且通常需要找到那些特定的.cpp文件和行,其中自定义类或结构的实例实际上是"创建"的(抱歉缺少更好的词(。 在IDE(在我的例子中是VSCode(中使用"搜索所有引用"会产生太多其他结果。
相当于我在 Java 中寻找的只是"新CLASS_NAME",因为这是在 Java 中实例化类的唯一语法。但C++更复杂...
有什么办法可以做到这一点吗?当通过非标准容器创建实例时,它也可以工作吗?
我做了一个正则表达式,用于在C++中查找不同可能类型的实例化;
(^|s?)ClassName(s?)+(|(^|s?)ClassName(s+)([a-zA-Z_][a-zA-Z0-9_]{0,31})(s+)=( ?|s+)|(^|s?)ClassName(s+)([a-zA-Z_][a-zA-Z0-9_]{0,31})(s?)+;|new(s+)ClassName|(^|s?)ClassName(s+)([a-zA-Z_][a-zA-Z0-9_]{0,31})(s?)+(|(^|s?)ClassName<
正则表达式查找以下字符串,我在 VSCode 中针对"类名"类名"类对其进行了测试,并一起使用正则表达式和匹配大小写;
- 类名(
- 类名变量名;
- 类名变量名 =
- 新类名
- 类名变量名(
- 类名<(模板(
我不太确定这是否会涵盖类实例化的所有情况(如果您找到它们,只需更新正则表达式(,但我认为它应该适用于使用类名或其构造函数的那些情况。
这看起来像什么样子的例子。