从变量名中删除m_前缀

时间:2011-06-15 09:00:35

标签: regex visual-studio-2010 macros

最初,我们计划使用具有类变量的m_前缀的旧约定。但现在要求将所有m_VaribaleName替换为this.variableName,即删除m_并在m_ lowercase之后创建第一个字符。

我可以用这个来搜索和替换m_。但是这不会将变量的第一个字符重命名为小写。搜索和替换之后,如果我使用重新分解工具将VariableName重命名为variableName,则还会使用VariableName重命名已存在的属性。

我想知道是否有任何正则表达式,工具,宏来使这项任务自动化。

2 个答案:

答案 0 :(得分:0)

Resharper将突出显示解决方案中的所有此类错误,并单独修复它们,但我认为它不能通过单个命令修复所有错误。不过,它很容易在它找到的错误之间导航。

答案 1 :(得分:0)

您可以在emacs中执行此操作。

打开您的文件(C-x C-f)并执行M-x replace-regexp。 假设变量的名称为Variable

您的正则表达式查询会替换\(V\)ariable的{​​{1}}。

\,(downcase \1)ariable告诉emacs以下语句是lisp表达式。

此外,如果您想同时替换m_,可以替换\,的{​​{1}}。

同时处理文件中的所有实例,emacs会记住您上次的replace-regexp查询,因此您无需为多个文件重新键入它。此外,有一种方法可以使用DIRED模式同时对多个文件执行replace-regexp。

在DIRED模式(m_\(V\)ariable)上打开一个目录,通过按\,(downcase \1)ariable标记您想要的文件(您可以使用C-x C-f DIR_NAMEn进行导航) }。一旦您要处理的文件被标记,请按p(大写字母)。您将获得与单个文件相同的正则表达式提示,输入正则表达式,m,替换和Q。它将一次打开每个文件,按RET为每个文件替换该文件中的所有reg-exp。

之后,您仍然需要保存文件。您可以使用RET然后!进行操作。