2015-11-03 18 views
39

C'è un modo per eseguire il refactoring in Xcode 7.1? Quando provo a rinominare una variabile (ad esempio, evidenziare, fare clic con il tasto destro, refactor -> rinominare), Xcode visualizza una finestra di errore che dice "Impossibile refactoring codice Swift. Xcode può refactoring solo C e codice Objective-C." C'è una soluzione per questo?Come si effettua il refactoring in Xcode?

+5

Allo stato attuale, non si può. Domanda simile qui: http://stackoverflow.com/questions/24133664/xcode-can-only-refactor-c-and-objective-c-code-how-to-rename-swift-class-name-i. –

+29

È fuori di testa che nel 2016 un IDE importante non possa gestire un compito di base come il refactoring. Nel 1995 con Visual Basic 3 sono stato in grado di refactoring. – MusiGenesis

+5

Lo stesso problema continua con Xcode 8. :( – Shad

risposta

80

per quanto ne so il refactoring non funziona con Swift in questo momento, però, almeno nello stesso file (campo di applicazione), è possibile effettuare le seguenti operazioni: enter image description here

+9

Come è stato registri il tuo schermo? – Mohamad

+9

@Mohamad wirh LICEcap –

+2

Aspetto con impazienza che il refactoring "reale" venga introdotto in Swift in Xcode. Fino ad allora, questa è di gran lunga la soluzione migliore che abbia mai visto! Grazie @ Dániel Nagy – NikMos

2

Come di Xcode 7.2 beta gli strumenti di refactoring non supportano Swift.

Quello che faccio è usare il controllo di tipo. Cambia il nome/tipo di qualcosa e poi correggi tutte le rotture della compilazione. A causa della forte digitazione puoi avere più fiducia che questo approccio catturerà tutto. A volte ho deliberatamente cambiato le cose e le ho interrotte temporaneamente per controllare da dove gli oggetti oi tipi sono usati o cui si accede.

Oppure utilizzare AppCode per il refactoring, ho sentito che è buono ma non ho provato molto me stesso.

6

La mancanza di refactoring è sbalorditiva (soprattutto perché sto uscendo da un periodo più importante utilizzando VS) Tuttavia ho appena notato che qualcuno ha fatto qualcosa al riguardo. Su GitHub c'è Refactorator Xcode Plugin (licenza MIT), che afferma:

Refactorator è un plugin per il refactoring Xcode Swift & ora codice Objective-C. Rinominerà le vars, le funzioni, le funzioni pubbliche, enum, ecc. Per le entità private e locali usa la funzionalità "Modifica All in Scope" esistente.

La divulgazione completa è che non ho niente a che fare con loro e sto solo per installare il prodotto da solo.

+0

Non ho avuto fortuna con questo. Ad esempio, per rinominare una variabile, è possibile che venga rilevata la maggior parte, ma non tutti gli usi (perché?) - Trova e sostituisci ottiene il 100%. Non sono stato impressionato –

8

Xcode 9

Xcode 9 supporta ora il refactoring in Swift. Lo ha annunciato nel WWDC 2017.

enter image description here

Problemi correlati