Come posso contrassegnare i commenti "Da fare" in Xcode?


111

Attualmente sto lavorando a un'attività di manipolazione delle immagini basata su iOS.

Problema:

Sto lavorando su diversi moduli. Quindi, se in futuro ho bisogno di aggiungere qualcosa in un modulo, voglio contrassegnarlo come una nota da fare. Esistono altre macro o simili per aggiungere una nota da fare in Xcode?

Provai:

Per questo attualmente sto usando #pragmacome:

#pragma mark -
#pragma mark To do: Add the Image processing methods.

Ho ottenuto:

Ma elenca nella sezione Metodo come:

Fare

Quello di cui ho effettivamente bisogno:

Il problema è che è elencato sotto l'elenco dei metodi, quindi a volte mi sono dimenticato di rimuoverlo dalla sezione, inoltre è molto difficile trovarlo nell'intero codice sorgente. (Ricerca dei risultati #pragma per mostrare interi elenchi)

Dettagli tecnici:

Sto usando Xcode versione 4.6.2.


Come posso arrivare a quella vista particolare in cui Xcode elenca tutti i metodi, i contrassegni pragma e le annotazioni TODO?
Mischa

@Mischa: controlla la mia risposta, è sotto la barra dell'elenco dei metodi.
Midhun MP

Ho controllato la tua risposta e non ho trovato un suggerimento su come mostrare quel pop-up. Ma penso di averlo trovato ora: è in cima all'editor del codice in quella barra di "navigazione", giusto?
Mischa

Btw: C'è un modo per mostrare tutti i TODO del progetto contemporaneamente?
Mischa

@Mischa: Sì, è in cima all'editor di codice e, a mia conoscenza, non c'è modo di visualizzare tutto per fare commenti contemporaneamente (invece di cercare l'intero progetto)
Midhun MP

Risposte:


133

Capito.

Scrittura di commenti come:

// TODO: Do something

Farà il trucco.

Ho qualcosa come:

FARE


Inoltre ci sono molte opzioni come :

  1. // FIXME: Midhun

  2. // ???: Midhun

  3. // !!!: Midhun

  4. // MARK: Midhun

16
puoi anche usare // FIXME: o #warning. quando usi #warning, ricevi un avviso in Xcode e puoi passare direttamente a quella parte.
brush51

6
Non è quello che @ Dev2rights ha pubblicato un'ora prima di te? Perché non accetti la sua risposta?
trojanfoe

@trojanfoe: sì. Ma ho una soluzione più adatta per me // MARK: e #warning. Ecco perché non l'ho accettato
Midhun MP il

1
Bene // FIXME, // MARKe #warningnon sono la stessa cosa di // TODOe quindi questo non risponde alla tua domanda.
trojanfoe

1
@Domsou: Attualmente non ci sono altre opzioni disponibili oltre a quelle elencate. Aggiornerò la mia risposta se ne ricevo.
Midhun MP

129
// TODO: the thing todo

È come mostri le cose da fare.


10
Puoi anche usarlo // FIX: Everything crashes all the timeper tornare più facilmente a parti del tuo codice che generano problemi usando la Jump Bar.
Maarten

Stranamente l'utilizzo di questo non mostra il commento in XCode 5.1.1
loretoparisi

Altri 2 indicatori che sembrano rilevanti qui sono #warning e #error i.imgur.com/KVjrVwG.png
Zane Helton,

3
Nitpick: inserisci uno spazio tra //e TODO:. Ad esempio: // TODO: Read this from prefs. Se esamini la documentazione dei linguaggi Swift e Objective C, questa convenzione spaziale viene seguita in modo abbastanza coerente.
Jeffro

43

Usando il

//TODO: some thing here

funziona se tutto ciò che vuoi fare è guardare l'elenco delle cose da fare nel menu a discesa

Se vuoi essere invadente puoi usare #warning invece dei segni:

#warning this will create a compiler warning.

E quando crei l'app, riceverai un avviso del compilatore (un triangolo giallo, non un errore del compilatore) che è un po 'più "in faccia" per ricordarti le cose che devi fare.


Penso che #warningsia la soluzione migliore perché ti avviserà in fase di compilazione. Grazie
Duck

36

Con lo script qui sotto puoi vedere tutti i tag richiesti come gli avvisi.

  1. Seleziona il tuo progetto nel Navigatore progetto
  2. Apri l'obiettivo nella barra laterale e vai alla scheda "Fasi di costruzione"
  3. Fare clic sul segno "+"
  4. Seleziona "Nuova fase di creazione dello script di esecuzione" Aggiunta di script
  5. Aggiungi lo script seguente a "Esegui script" Script pronto Lo script:

    KEYWORDS="TODO:|FIXME:|DevTeam:|XXX:"
    find "${SRCROOT}" \( -name "*.h" -or -name "*.m" -or -name "*.swift" \) -print0 | xargs -0 egrep --with-filename --line-number --only-matching "($KEYWORDS).*\$" | perl -p -e "s/($KEYWORDS)/ warning: \$1/"

inserisci qui la descrizione dell'immagine

La risposta originale è stata presa da Qui

Un'altra alternativa è il plugin XToDo per Xcode.


ottima soluzione, c'è un modo per escludere tutti i file pod? ci sono un paio di Todos o Mixmes nelle mie estensioni usate?
Marco Weber

ho trovato una soluzione da solo in questo post stackoverflow.com/q/37157027/6003494 lo script è:KEYWORDS="TODO:|FIXME:|\?\?\?:|\!\!\!:" find "." \( -name "*.h" -or -name "*.m" -or -name "*.swift" \) -not -path "./Pods/*" -print0 | xargs -0 egrep --with-filename --line-number --only-matching "($KEYWORDS).*\$" | perl -p -e "s/($KEYWORDS)/ warning: \$1/"
Marco Weber

6

Puoi usare il plugin XToDo

https://github.com/trawor/XToDo

utilizzare ctrl + t per attivare / disattivare la finestra elenco

utilizzare ctrl + t per attivare / disattivare la finestra elenco

Esempio di barra degli strumenti

Facile installazione con alcatraz usa ctrl + t per attivare / disattivare la finestra elenco


1
Stavo scorrendo verso il basso per suggerirlo, lo consiglio completamente.
MANIAK_dobrii

6

Ho iniziato con

// TODO: Implement bubble sort.

Poi sono entrato a far parte di un grande progetto ea volte avevo bisogno di un todo per vivere più a lungo di un commit WIP e quindi per distinguere i miei todos dai miei coetanei ho chiamato il mio todo con le mie iniziali:

// TODO: SM: Implement bubble sort

A volte volevo più visibilità, quindi ho iniziato a utilizzare gli avvisi pragmatici in alcuni punti.

#warning Implement bubble sort

Un giorno ho deciso di attivare la modalità difficile aggiungendo -Werrorai miei cflags. Sfortunatamente questo rende inutili gli avvertimenti pragmatici perché impediscono la compilazione. E così sono tornato a usare // TODO:fino a quando Jeff Nadeau mi ha detto che posso mettere

-Wno-error=#warnings

nei miei cflags in modo da non trattare gli avvisi pragma come errori. Così ora #warninge -Werrorpossono vivere fianco a fianco.


3

Tendo a scrivere esattamente // TODO: Blah blah blah

Quindi eseguo semplicemente un COMMAND-SHIFT-F e cerco "// TODO".

L'utilizzo dell'elenco a discesa della struttura del file ti mostrerà solo i TODO per il file corrente, ma tendo a voler vedere lo stato TODO del mio progetto.

Soluzione approssimativa, ma fa il suo lavoro.


2

Ho suddiviso i token riconosciuti in Avvisi ed Errori per uso personale, ho pensato di condividerlo qui:

KEYWORDS="STUB:|WARNING:|TODO:|FIXME:|DevTeam:|\?\?\?:" 
find "${SRCROOT}" \( -name "*.h" -or -name "*.m" -or -name "*.swift" \) -not -path "${SRCROOT}/Pods/*" -print0 | xargs -0 egrep --with-filename --line-number --only-matching "($KEYWORDS).*\$" | perl -p -e "s/($KEYWORDS)/1: warning: \$1/"

KEYWORDS="ERROR:|XXX:|\!\!\!:" 
find "${SRCROOT}" \( -name "*.h" -or -name "*.m" -or -name "*.swift" \) -not -path "${SRCROOT}/Pods/*" -print0 | xargs -0 egrep --with-filename --line-number --only-matching "($KEYWORDS).*\$" | perl -p -e "s/($KEYWORDS)/1: error: \$1/"
ERROR_OUTPUT=`find "${SRCROOT}" \( -name "*.h" -or -name "*.m" -or -name "*.swift" \) -not -path "${SRCROOT}/Pods/*" -print0 | xargs -0 egrep --with-filename --line-number --only-matching "($KEYWORDS).*\$" | perl -p -e "s/($KEYWORDS)/1: error: \$1/"`

exit ${#ERROR_OUTPUT}

0

Un altro metodo semplice, leggermente fuori dagli schemi, se non vuoi ingombrare la barra dell'elenco dei metodi, è usare una convenzione all'interno dei commenti come //Todo: e quando vuoi affrontarli in massa, seleziona semplicemente il Navigatore Trova, abbina maiuscole e minuscole e cerca//Todo:

Lo preferisco perché non mi piacciono i metodi a discesa che sembrano codice spagetti. E sì, spesso ho molte cose da fare: 's;)


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.