C# 如何编写宏来添加宏;到VisualStudio中的每一行

C# 如何编写宏来添加宏;到VisualStudio中的每一行,c#,vb.net,visual-studio-2010,macros,C#,Vb.net,Visual Studio 2010,Macros,我想构建一个宏,它添加一个到每一行尾,该行尾尚未得到一个且不是空的或不是一个{或} 我在VisualStudio2010 Professional中使用C#,所以我可能需要一个VB宏 我需要它,因为我必须将Unittest从VBS迁移到C(不要问为什么)。所以我得到了数千行,比如foo=“53”bazz=1337 我不在乎支持是否被取消,我应该在几周内完成。如果有一个投入太多,以后我仍会查看代码 我知道您要求使用宏,但搜索和替换正则表达式可以编写如下内容: Find: {[^\}\{\;]}[

我想构建一个宏,它添加一个
到每一行尾,该行尾尚未得到一个且不是空的或不是一个
{
}

我在VisualStudio2010 Professional中使用C#,所以我可能需要一个VB宏

我需要它,因为我必须将Unittest从VBS迁移到C(不要问为什么)。所以我得到了数千行,比如foo=“53”bazz=1337


我不在乎支持是否被取消,我应该在几周内完成。如果有一个
投入太多,以后我仍会查看代码

我知道您要求使用宏,但搜索和替换正则表达式可以编写如下内容:

Find: {[^\}\{\;]}[ \t]*$
Replace: \1;

Visual Studio有很好的选项可以“查看”当前文档、当前选择、所有打开的文档和整个解决方案…

我知道您要求使用宏,但搜索和替换正则表达式可以编写如下内容:

Find: {[^\}\{\;]}[ \t]*$
Replace: \1;

Visual Studio提供了很好的选项,可以“查看”当前文档、当前选择、所有打开的文档以及整个解决方案……

听起来您正在手动将单元测试代码从VBS重写为C,并希望自动添加分号。 我认为您应该编写一个脚本,将VB代码转换为C#;或者通过搜索和替换(如上面提到的正则表达式),然后将代码(或仅相关部分)复制到C#源代码中


没有理由把它变成宏。此外,类似于注释中提到的bug-
for(inti=0;i<2;i++)可能更难找到和/或更烦人

听起来像是手动将单元测试代码从VBS重写为C#,并希望自动添加分号。 我认为您应该编写一个脚本,将VB代码转换为C#;或者通过搜索和替换(如上面提到的正则表达式),然后将代码(或仅相关部分)复制到C#源代码中


没有理由把它变成宏。此外,类似于注释中提到的bug-
for(inti=0;i<2;i++)可能更难找到和/或更烦人

只是。。。。为什么?您还需要区分行、语句和表达式。。。这似乎是一个奇怪的要求(例如,LINQ通常跨越多行),因此您希望将(int i=0;i<10;++i)
更改为(int i=0;i<10;++i)?仅供参考:正在使用Visual Studio 11删除宏。我可能会重新思考您想要如何实现这一点(或者重新思考为什么您实际上需要像这样直接编辑源代码文件)。我需要它,因为我必须将Unittest从VBS迁移到C#(不要问为什么)。因此,我得到了数千行代码,如foo=“53”bazz=1337我不在乎是否会放弃支持,我应该在几周内完成^^^此外,如果有一行代码投入过多,我以后仍会查看代码。有一些工具可能会帮助您进行代码迁移。只是。。。。为什么?您还需要区分行、语句和表达式。。。这似乎是一个奇怪的要求(例如,LINQ通常跨越多行),因此您希望将(int i=0;i<10;++i)
更改为(int i=0;i<10;++i)?仅供参考:正在使用Visual Studio 11删除宏。我可能会重新思考您想要如何实现这一点(或者重新思考为什么您实际上需要像这样直接编辑源代码文件)。我需要它,因为我必须将Unittest从VBS迁移到C#(不要问为什么)。因此,我得到了数千行代码,如foo=“53”bazz=1337我不在乎是否会放弃支持,我应该在几周内完成^^^此外,如果有一行代码投入过多,我以后仍会查看代码。有一些工具可能会帮助您进行代码迁移。例如+1对于建设性答案,您可能也希望添加评论中的链接,因为它似乎对OP+1有帮助。对于建设性答案,您可能也希望添加评论中的链接,因为它似乎对OP有帮助