Soru XIX, FIXME, TODO, ???, kullanarak


Kullanmaya başladım FIXME, TODO, ??? ve !!! XCode'daki etiketler, ancak bir işlev içinde olduklarında etiketleri tanıyamayacağı acı verici buluyorum. Etiketler sadece belirli bir fonksiyonun dışında tanınır.

Bu etiketlerin bir işlev içinde nasıl algılanabilir (hataların olduğu yer burası gibi)?


36
2018-05-04 23:54


Menşei


Belki de hala Xcode 3.2.6 üzerinde olduğum için, ancak fonksiyonlar listesinde iyi görünenler ... üyelikteki üyeliği göstermek için bir çeşit girinti mi arıyorsunuz? - Richard
Hangi Xcode sürümünü kullandığınızı ve (eğer Obj-C değilse) hangi dili yazdığınızı gösterir misiniz? - Josh Caswell
Henüz yapmadıysanız, Apple'ın bu özelliği talep etmesiyle bir hata raporu göndermenizi öneririz: bugreport.apple.com - Stuart M
Bu bilinen bir sorundur ve hatada ele alınmıştır: Hata ID # 7604687 - Ben
Bu hala 4.3'te sabit değil, çok önemsediklerini sanmıyorum - Aram Kocharyan


Cevaplar:


Düzenlendi 2016-02-02

Xcode artık // MARK :, // TODO: ve // ​​FIXME: yer işaretlerini destekliyor ve kodunuzu açıklıyor.


Bu özel işaretlemeleri (ve aslında belirttiğiniz tüm biçimlendirmeleri) bulmak için, arama gezginini kullanabilir, aşağıdaki dizeyi girebilir ve ardından "Projede, normal ifadeyle eşleşen" ... "seçeneğini seçin,"

(//FIXME|//!!!|//\?\?\?|//TODO)

Bu, projenizi tüm bu özel işaretlemeler için arayacaktır. İstediğiniz biçimlendirmeyi bile ekleyebilirsiniz, ör. "// REVIEW: Lütfen aşağıdaki kodu inceleyin". Bu, aşağıdaki arama dizesi olur:

(//FIXME|//!!!|//\?\?\?|//TODO|//REVIEW)

Çalışma alanımda, arama dizisinin her zaman açık, bu dizeyle dolu olan bir sekme oluşturdum. Ne yazık ki, XCode bazen bu dizeyi arama kutusundan kaldıracaktır, böylece ihtiyacınız olduğunda kopyalayıp yapıştırmanız gerekir.


16
2017-07-05 19:44





Xcode 4.1'de (bunun önceki sürümlerde çalışıp çalışmadığını bilmiyorum) yazarım

#warning TODO: fix this later...

derleme uyarısı almak için

#error FIXME: fix now!

derleme hatası almak için

Bunları, todos eklemeyi gerçekten kolaylaştırmak için kod snippet kitaplığına da ekliyorum.


50
2017-09-03 16:18



Oh, pasaj kütüphanesine nasıl eklersiniz? - Raffi Khatchadourian
Ne yazık ki bu, kurulum ayarlarınızda "hataları uyarı olarak göster" seçeneğini ayarlarsanız iyi olmaz. - Ashley Mills
@RaffiKhatchadourian - Bir kod parçacığı eklemek için kaynak kodunuzu sürükleyin. stackoverflow.com/questions/6784627/... - Basil Bourque


Bir geçici çözüm, bunları uyarı olarak işaretleyen bir oluşturma komut dosyası kullanmaktır:

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

Kredi Benjamin Ragheb.


37
2018-06-04 17:27



senaryo bulundu İşte Benjamin Ragheb tarafından - KDaker
Kodunuz boşluk içeren dizinleri içeren bir dosya yolunda saklanırsa bu betik başarısız olur. Örneğin, "/ Ana Sayfa / John / iPhone Uygulamaları / Kodu". İkinci satırdaki basit düzeltme, tırnakları yaklaşık $ {SRCROOT} - john
Bunu Xcode'ta bir kod dosyasında yazdım ama bir şekilde TODO'larımdan birini almıyor. Herhangi bir fikir neden - Raffi Khatchadourian
Bunu bir proje şablonuyla birleştirin: stackoverflow.com/questions/5550958/... - basvk
.swift dosyalarını desteklemek için ikinci satır değiştirilmelidir: find "${SRCROOT}" \( -name "*.h" -or -name "*.m" -or -name "*.swift" \) -print0 | \ - art-divin


FIXME :, TODO :, ???: !!!: 4.3.3 içinde ve dışında işlevler çalışır.

Çift eğik çizgiden önce veya sonra istediğiniz sayıda boşluk olabilir, ancak büyük harf kullanmanız ve etiketi iki nokta üst üste takip etmeniz gerekir.

Sadece açıklığa kavuşturmak için - bunların hepsi:

//          FIXME: This works.
  //TODO: This works.
    //                  !!!: Working.
// // //???: Works as well.

8
2017-07-11 08:38



Her zaman işe yaramıyor gibi görünüyor. Bir hatayı kendim dosyayorum. - Johan
Gatada, hala bulduğun böcekle ilgilenebilir misin? - Ben
Ayrıca #Xcode 5'de çalışıyor - g212gs


Bu Xcode eklentisi nasıl? -> https://github.com/trawor/XToDo


4
2017-12-20 07:44



Sorun değil, XCode 5.0.2'de birkaç kez çöktü. Henüz sahip değilseniz, XCode 5'de eklenti klasörünü el ile oluşturmanız gerekir. Bu çok basit, 4 varsayılan belirteçlerin bir listesini oluşturur: TODO, FIXME, ??? & !!! ve bunlarla işaretlenmiş herhangi bir şeyi, ayrı bir XCode penceresinde bir aşağı açılan listeye koyar: Ancak, "BOOKMARK:" ve "WATCH:" gibi kendi işaretleyicilerimi oluşturabildiğimi ve bunların da gösterilmesini istiyorum. eklenti ile bunu yapmak için basit bir yol yok. - OverToasty
@OverToasty yeni işlemi kontrol ediyor, çatallar harika değişiklikler yapıyor - Travis Worm


xCode 6 beta 4, MARK, TODO ve FIXME yer işaretlerini desteklemelidir.

Xcode artık kodunuza açıklama eklemek için // MARK :, // TODO: ve // ​​FIXME yer işaretlerini destekler ve onları atlama çubuğunda listeler. (14768427)!


3
2017-07-23 08:26



Bağlantı bozuk. - Paul R


Sadece bir kafa, ama ben fark ettim ki TODO: '' herhangi bir tür blok içinde çalışmaz. Sadece bloğunuzun hemen üstüne veya altına taşıyın.


2
2017-10-25 03:09





Bu, eklenmiş bir yapı fazı olarak kullandığım komut dosyasıdır, Carthage aracılığıyla çektiği dosyaları hariç tuttuğuna dikkat edin ('kodunuzdan değil de bunları almak için çok can sıkıcıdır):

TAGS="WARNING:|TODO:"
echo "searching ${SRCROOT} for ${TAGS}"
find "${SRCROOT}" \( -name "*.swift" \) -not -path "${SRCROOT}/Carthage/*" -print0 | xargs -0 egrep --with-filename --line-number --only-matching "($TAGS).*\$" | perl -p -e "s/($TAGS)/ warning: \$1/"

Swift 4 ile xCode 9.3'te iyi çalışır


0
2018-04-23 09:26