【问题标题】:How to change naming conventions in large bodies of existing code?如何更改大量现有代码中的命名约定?
【发布时间】:2011-05-13 23:56:02
【问题描述】:

我需要将现有代码库从命名约定 X 更改为类似 Camel Case。

它在 Visual Studio 2008 中。几十万行代码。其中一些是 C#。其中一些是非托管 C++。

我开始手动重构这个。但是,它非常机械。我在想一个产品可以在几秒钟内完成我手工需要几周时间的事情。

客户对自己的命名约定非常挑剔。所以,如果我使用一种产品,它必须可以按照他们的标准进行定制。

我什至在考虑编写一个 Visual Studio 插件来实现它。

任何人都知道任何可能适用于此的产品吗? 我真的不在乎它是否在 Visual Studio 中运行。

谢谢!

【问题讨论】:

  • 给定一个符号 x,你能提取出它的驼峰式约定吗?
  • 您为此获得了多少报酬?目标更高。
  • 我的回答是“不要”。 “不要为小事出汗。” - 萨特
  • 考虑under_scores而不是camelCase,它更容易阅读

标签: c# c++ naming-conventions renaming


【解决方案1】:

我知道有几种基于词法/语义分析的重命名工具,但我认为没有可用于您的特定“命名约定 X”的转换工具。

虽然编写 VS 插件不是一个坏主意,但我建议您使用自己喜欢的脚本语言编写脚本。 (例如 Perl、Python、Ruby 或其他)

【讨论】:

【解决方案2】:

ReSharper's renaming refactoring:

重命名重构允许您重命名任何符号,包括:命名空间、类型、方法、参数、局部变量、属性、字段和事件。它会自动查找并更正对符号的所有引用。重命名重构可以直接从编辑器调用,有时也可以从其他视图(类视图、对象浏览器)调用。

重命名适用于所有受支持的语言和技术 - 即 C#、VB.NET、ASP.NET、XML、XAML 和构建脚本。

当您使用重命名重构时,自动引用更正完全扩展到 XAML 标记。此外,命名空间别名和资源等特定 XAML 符号可以轻松重命名:

它还可以检测不符合您指定命名约定的变量。

我不确定它与托管 C++ 的集成情况如何,但是一旦您开始将 ReSharper 与 C# 结合使用,您会想知道没有它您是如何生活的。

【讨论】:

  • 谢谢,但不是我的情况。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-11-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多