1

一位同事正在编写一个 Perl 脚本来使用 C++ 源文件并在文件中的所有方法之上添加文本。他希望从头开始使用正则表达式开发代码,以检测方法的顶部:

void MyClass::MyMethod(int somethingOrOther)

尝试从头开始这样做充满了地雷,例如将方法标头与宏、注释、条件等区分开来。

这可能是真正非常困难的做事方式,因为 VS 2005 似乎能够准确地确定所有方法的开始和结束位置(以便我可以单击框以折叠方法源)。

在 VS 2005 IDE 中是否有一种简单的方法可以在解决方案范围内的每个方法上方添加一些文本?

4

1 回答 1

2

您可以进行正则表达式搜索和替换。由于您可以将新行放入替换框中,因此您可以发疯并做任何您想做的事情(提取参数除外)。示例即将发布。

搜索字符串:^:b*{:i}:b{:i}\:\:{:i}:b*{\(.*\)}
替换字符串:///Regex Example\n///Class: \2\n///Method: \3 returning \1\n\1 \2::\3\4

代码:

///Regex Example
///Class: Class
///Method: Foo returning void
void Class::Foo(int oneParam)
///Regex Example
///Class: Class
///Method: Bar returning void
void Class::Bar(int noParam)

我不知道挂钩到 Visual Studio 解析器的方法,除非您编写一个插件,这可能有点矫枉过正。

于 2010-01-14T03:21:42.790 回答