Sto riscontrando che alcuni tipi di pulizia del codice e di refactoring sono resi MOLTO difficili dalla difficoltà di aggiungere un'unità alle clausole di utilizzo di un grande progetto.Aggiunta di un'unità alle clausole di utilizzo di tutte le unità in un progetto?
Desidero aggiungere un'unità all'interfaccia-usa-clausola di tutte le unità delphi .pas in un singolo progetto e ciò significa eseguirla manualmente in oltre 500 posizioni. Ogni volta che refactoring un'unità gigante e lo divido da una unità in due, posso probabilmente cercare e sostituire usando qualcosa come "notepad ++" per cambiare "MyOldUnit", a "MyOldUnit, MyNewUnit", ma a volte, non è sicuro farlo . Manca anche i casi in cui "MyOldUnit" è l'ultima cosa nella clausola uses ("usa MyOldUnit;").
In ogni caso, la ricerca e la sostituzione in file sono attività pericolose. Se non esiste uno strumento simile, sto pensando di scriverne uno, usando il parser del Delfi di Castalia. Ho controllato GExperts, Castalia, ModelMakerCodeExplorer e nessuno di essi ha un modo per inserire in gruppo le unità in tutte le clausole di utilizzo in un progetto. Spero che esista uno strumento per farlo.
In secondo luogo, in molti casi, sto spostando una funzione da un'unità in cui non appartiene a un'altra, ma ciò significa che devo aggiungere quell'unità al 30% delle unità del progetto, ma non l'altra 70 % dove è già stato aggiunto. Ciò significa che è richiesto un approccio parser, non un approccio regex.
C'è il (molto vecchio) 'JclUsesWizard' in JCL \ experts \ useswizard, forse può servire come punto di partenza. –
Non hai bisogno di un parser reale per farlo. Solo uno script basato su regex che usa Perl o Python o quello che ti piace per gli script regex. Avresti bisogno di un vero parser se volessi qualcosa di robusto, ma per un'applicazione one shot alla tua base di codice, non lo fai. –
Hai già provato CnPack? – kobik