2011-01-12 8 views
7

Quindi ho lavorato su un progetto relativamente grande da solo, e ho capito che alcuni dei nomi delle variabili precedenti erano .. meno che ideali.Modo più sicuro per cambiare i nomi delle variabili in un progetto

Ma come si possono cambiare facilmente i nomi delle variabili in un progetto? Esiste un tale strumento che può attraversare una directory di progetto, analizzare tutti i file e quindi sostituire i nomi delle variabili con quello desiderato? Deve essere abbastanza intelligente da capire la lingua che immagino.

Stavo pensando di usare gli strumenti regexp (sed/awk su linux?) Per sostituire solo il nome della variabile, ma ci sono state molte volte in cui anche la mia particolare variabile è inclusa come parte delle stringhe.

C'è anche il problema di cambiare roba in uno spazio dei nomi C++, perché ci sono in realtà due classi nel mio progetto che condividono lo stesso nome, ma sono in spazi dei nomi diversi.

Ricordo che lo studio visivo è in grado di farlo, ma qual è il modo più sicuro ed elegante per farlo su linux?

risposta

5

più sicuro (modo non automatico) modo:

  1. Assicurarsi che tutto il lavoro unit test.
  2. Salva tutto nel controllo del codice sorgente.
  3. Sostituire globalmente var con XXXvarXXX (seriamente)
    a. O forse solo i file che ritieni debbano essere modificati.
  4. Prova e compila. Tutto ciò che non viene compilato è facile da annullare, basta rimuovere XXX.
  5. quando compila eseguire i test di unità.
  6. Quando i test di unità di lavoro. Esegui una sostituzione globale di XXXvarXXX con il nuovo nome.
  7. Verificare che i test dell'unità funzionino ancora
  8. Salvare tutto nel controllo del codice sorgente.

Lingua solo metà in guancia. :-)

+3

Non mordere. –

6

Si chiama refactoring, ma non ricordo se c'è un ottimo modo per farlo in C++ - penso che forse sia lo Eclipse C++; potrebbe valere la pena dare un'occhiata.

+2

Eclipse ha davvero, e funziona meravigliosamente. – Dawson

+0

@Toolbox: fantastico, grazie per la verifica! +1 :) – Mehrdad

+2

Eclipse CDT ce l'ha. QtCreator ce l'ha. Visual Studio ce l'ha. Visual Assist X per Visual Studio lo rende ancora migliore. Vim ce l'ha. Hai capito il punto. –

1

mi ricordo Stuio visiva di essere in grado di fare questo, ma quello che è il modo più sicuro e più elegante per fare questo su Linux?

Si può fare più o meno ciò che si faceva in Visual Studio in Eclipse usando gli strumenti di ri-factoring, che è disponibile per Linux.

0

So C# e Visual Studio ha un grande cambio variabile, ma funziona attraverso tutti i documenti non sono sicuro. So che quando si modifica una variabile in C# si apre nel campo accanto al testo Variabile. Change All

Tuttavia, è possibile rimanere bloccati con l'unica opzione. Cambia le variabili e vedi dove il compilatore va male. Tuttavia la sua non è l'ideale, ma può essere la vostra unica scelta

+0

In realtà è piuttosto lontano dall'ideale. Potresti imbatterti in luoghi che hanno scelto silenziosamente un'altra variabile a causa dell'ambito. Avrei almeno eseguito un grep e TRY per separarli tutti. –

+0

sì, si potrebbe fare uno script di shell. Sono sicuro di aver detto che non è "ideale" –

0

utilizza variabili private, rinomina la variabile e gli usi ovvi, corregge gli errori del compilatore.