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

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

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

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

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

Я помню, что visual studio может это сделать, но какой самый безопасный и элегантный способ сделать это в linux?

6 ответов


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

  1. убедитесь, что все ваши модульные тесты работы.
  2. сохранить все в систему управления версиями.
  3. глобально заменить var на XXXvarXXX (серьезно)
    а. Или, может, просто файлов вы думаете, что нужно для редактирования.
  4. попробуйте скомпилировать. Все, что не компилируется, легко отменить, просто удалите XXX.
  5. при компиляции запустите модульные тесты.
  6. когда модульные тесты работы. Do a global замените XXXvarXXX на новое имя.
  7. убедитесь, что модульные тесты все еще работают
  8. сохранить все в системе контроля версий.

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


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


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

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


$400 в Ф-Н-копии, но здесь вы идете: http://www.xref.sk/xrefactory/download.html

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


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

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


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