Самый безопасный способ изменить имена переменных в проекте - PullRequest
7 голосов
/ 12 января 2011

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

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

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

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

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

Ответы [ 6 ]

6 голосов
/ 12 января 2011

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

5 голосов
/ 12 января 2011

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

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

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

1 голос
/ 12 января 2011

400 долларов за копию, но вот, пожалуйста: http://www.xref.sk/xrefactory/download.html

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

1 голос
/ 12 января 2011

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

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

0 голосов
/ 12 января 2011

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

0 голосов
/ 12 января 2011

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

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

...