Zauważyłem, że niektóre rodzaje oczyszczeń kodu i refaktoryzacji są BARDZO trudne ze względu na trudność dodania jednostki do klauzul zastosowań dużego projektu.Dodawanie jednostki do klauzul zastosowań wszystkich jednostek w projekcie?
Chcę dodać jednostkę do interfejsu-uses-clause wszystkich jednostek delphi .pas w jednym projekcie, a to oznacza ręczne robienie tego w ponad 500 miejscach. Za każdym razem, gdy przeliczam gigantyczną jednostkę i dzielę ją z jednej jednostki na dwie, mogę prawdopodobnie wyszukiwać i zastępować za pomocą czegoś takiego jak "Notatnik ++", aby zmienić "MyOldUnit" na "MyOldUnit, MyNewUnit", ale czasami nie jest to bezpieczne. . Pomija także przypadki, w których "MyOldUnit" jest ostatnią rzeczą w klauzuli uses ("używa MyOldUnit;").
W każdym razie wyszukiwanie i zastępowanie plików jest niebezpieczne. Jeśli takie narzędzie nie istnieje, rozważam napisanie takiego, używając parsera Castalia delphi. Sprawdziłem GExperts, Castalia, ModelMakerCodeExplorer i żaden z nich nie ma sposobu na wstawianie jednostek wsadowych we wszystkie klauzule zastosowań w projekcie. Mam nadzieję, że narzędzie do tego istnieje.
Po drugie, w wielu przypadkach przenoszę funkcję z jednej jednostki, w której nie należy ona do innej, ale oznacza to, że muszę dodać tę jednostkę do 30% jednostek projektu, ale nie do drugiej 70 % tam, gdzie jest już dodany. Oznacza to, że wymagane jest podejście parsera, a nie podejście regex.
Jest (bardzo stary) 'JclUsesWizard' w JCL \ experts \ useswizard, chyba że może służyć jako punkt wyjścia. –
Aby to zrobić, nie potrzebujesz prawdziwego parsera. Po prostu paskudny skrypt oparty na regexie z użyciem Perla lub Pythona lub cokolwiek chcesz na skrypty regex. Potrzebujesz prawdziwego analizatora składni, jeśli chcesz czegoś solidnego, ale w przypadku aplikacji jednorazowej do własnej bazy kodu, nie musisz. –
Czy próbowałeś już CnPack? – kobik