Инструмент за промяна на име на единица и всички препратки към нея

Ако направя големи промени в единица, обичам да променя името й, за да стане ясно, че това е различна версия и да избегна объркване с други архивирани версии, например: CSVUtils.PAS става CsvUtilsNew.PAS

Но всички препратки към него от други единици трябва да се променят ръчно, напр.

Unit ManiForm

Uses
  CSVUtils 

става

Unit ManiForm

Uses
  CsvUtilsNew

Това става много трудоемко при сложни проекти.

Icarus е много добър в намирането на всички препратки, но не мога да намеря никакъв инструмент, който да актуализира автоматично всички останали единици.

Някой знае ли за някакви инструменти, които автоматично актуализират референтните единици?

Много благодаря


person Hamish_Fernsby    schedule 13.03.2012    source източник


Отговори (3)


Можете също така да дефинирате псевдоним на единица в опциите на вашия проект. напр. CSVUtils=CsvUtilsNew

person Ondrej Kelle    schedule 13.03.2012
comment
Със сигурност работи. Използвах тази функция, за да помогна за мигрирането от D6 към D2010. Въпросните модули бяха модулите за управление на темите XP на Майк Лишке, които бяха погълнати от Delphi в D7 и това доведе до промени в имената. Също така графичните единици png и gif, които имаха различни имена. Просто имах нужда от псевдонимите, докато исках кодът да се компилира и с двата компилатора. И псевдонимите на единиците работеха отлично. Все пак не бих ги разглеждал като дългосрочно решение. - person David Heffernan; 13.03.2012
comment
Псевдонимите на единици могат да бъдат правилното решение за доставчици на компоненти, които се нуждаят от един източник за компилиране във всички версии на delphi, но на ниво приложение (не на ниво доставчик на компоненти) бързо спира да има смисъл. - person Warren P; 13.03.2012
comment
Използваме List&Label като машина за отчети. Той има прекрасната функция да включва номера на версията си в имената на единиците - има l17.pas, cmbtLL17.pas и така нататък. Справихме се с това чрез псевдоним cmbtLLAlias=cmbtLL17;LLAlias=l17 и поставяне на ...имената на псевдонимите в uses клаузи. - person Uli Gerhardt; 13.03.2012
comment
Всичко това са много полезни съвети, винаги невероятно какво има, след като знаете какво да търсите!! Все още не съм приел нито един от 3-те отговора, тъй като подозирам, че и 3-те имат своите относителни достойнства, така че не исках да изразя предпочитание там, където не съществува, ще опитам предложените методи и ще видя кое работи най-добре за моето приложение, Брайън - person Hamish_Fernsby; 16.03.2012
comment
Това е добър трик CSVUtils=CsvUtilsNew, за който не знаех преди и който позволява проблемите да бъдат решавани бързо, но подозирам, че може би е най-добре да не се използва широко, най-вече защото, ако други работят по проекта, те може да не са наясно с това и може да предизвика объркване. Добра бърза корекция за отстраняване на грешки обаче? - person Hamish_Fernsby; 16.03.2012
comment
LIST & Label е интересен, може да е полезен за определени сценарии, при които в момента бих използвал t-диаграма или рейв отчети. - person Hamish_Fernsby; 16.03.2012

Бих използвал GExperts Grep Search and Replace.

person iamjoosy    schedule 13.03.2012
comment
Всеки grep ще работи за това. Използвал съм този (wingrep.com) голи кости от години. - person RobertFrank; 13.03.2012
comment
Вероятно, но GExperts grep е интегриран в IDE и донякъде е пригоден за разработката на Delphi. - person Uli Gerhardt; 13.03.2012
comment
@Ulrich, съгласен съм. С GExperts grep можете т.е. да ограничите обхвата си до проекти, групи проекти, директории и т.н. - person iamjoosy; 13.03.2012
comment
полезни инструменти, вероятно някои други функции в GExperts, които също ще намеря за полезни, харесва ми, че е предназначен за Delphi. - person Hamish_Fernsby; 16.03.2012

Бих използвал Notepad++ или UltraEdit за търсене и замяна във всички файлове (*.pas, *.dpr, *.dproj) на старото име на единица с новото име на единица. Освен ако нямате променливи или функции, които имат същото име като единицата, това работи много добре, бързо е и не изисква специализиран анализатор.

person Andreas Hausladen    schedule 13.03.2012