Самый надежный способ изменения имен переменных в проекте

Итак, я сам работал над относительно большим проектом, и я понял, что некоторые из имен переменных ранее были... менее идеальными.

Но как легко изменить имена переменных в проекте? Есть ли такой инструмент, который может проходить через каталог проекта, анализировать все файлы и затем заменять имена переменных на требуемый? Он должен быть достаточно умным, чтобы понять язык, который я себе представляю.

Я думал об использовании инструментов regexp (sed/awk on linux?), чтобы просто заменить имя переменной, но было много раз, когда моя конкретная переменная также включалась как часть строк.

Также возникает проблема смены содержимого в пространстве имен С++, потому что в моем проекте есть два класса, которые имеют одно и то же имя, но находятся в разных пространствах имен.

Я помню визуальную студию, способную это сделать, но какой самый безопасный и самый элегантный способ сделать это на Linux?

6 ответов

Безопасный (неавтоматизированный способ) способ:

  • Убедитесь, что все ваши модульные тесты работают.
  • Сохраните все в исходное управление.
  • Глобально заменить var на XXXvarXXX (серьезно) а. Или, может быть, просто файлы, которые, по вашему мнению, нуждаются в редактировании.
  • Попробуйте и скомпилируйте. Все, что не компилируется, легко отменить, просто удалите XXX.
  • Когда он компилируется, запускайте модульные тесты.
  • Когда тесты модуля работают. Сделайте глобальную замену XXXvarXXX на новое имя.
  • Убедитесь, что тесты устройства все еще работают.
  • Сохраните все в исходном управлении.

Язык только наполовину в щеке.: -)


Он вызвал рефакторинг, но я не помню, есть ли отличный способ сделать это на С++ - я думаю, возможно, Eclipse С++ Это; может стоить взглянуть.


$400 копия f'n, но здесь вы идете: http://www.xref.sk/xrefactory/download.html

Я, конечно, никогда не использовал его.


Я помню визуальный stuio, способный это сделать, но какой самый безопасный и самый элегантный способ сделать это на Linux?

Вы можете сделать то, что вы делали в визуальной студии в Eclipse, используя инструменты повторного факторинга, доступные для Linux.


Я знаю, что С# и визуальная студия имеют отличный переменный чейнджер, но он работает через все документы, а не уверен. Я знаю, когда вы меняете переменную в С#, она появляется в тексте Variable. Change All

Однако вы можете придерживаться единственного варианта. Измените переменные и посмотрите, где компилятор идет не так. Однако он не идеален, но может быть вашим единственным выбором


используйте частные переменные, переименуйте переменную и очевидное использование, исправьте ошибки компилятора.

licensed under cc by-sa 3.0 with attribution.