Bagaimana cara menandai komentar "Yang Harus Dilakukan" di Xcode?


111

Saat ini saya sedang mengerjakan tugas Manipulasi Gambar berbasis iOS.

Masalah:

Saya sedang mengerjakan modul yang berbeda. Jadi, Jika saya perlu menambahkan sesuatu di modul di masa mendatang, saya ingin menandainya sebagai Catatan agenda. Apakah ada makro lain atau serupa untuk menambahkan catatan yang harus dilakukan di Xcode?

Saya mencoba:

Untuk saat ini saya menggunakan #pragmaseperti:

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

Saya mendapatkan:

Tetapi itu tercantum di bagian Metode seperti:

Melakukan

Apa yang sebenarnya saya butuhkan:

Masalahnya adalah, itu terdaftar di bawah daftar metode jadi terkadang saya lupa menghapus ini dari bagian ini juga sangat sulit untuk menemukannya di seluruh kode sumber. (Mencari hasil #pragma untuk menampilkan seluruh daftar)

Detail Teknis:

Saya menggunakan Xcode Versi 4.6.2.


Bagaimana cara mendapatkan tampilan tertentu di mana Xcode mencantumkan semua metode, tanda pragma, dan anotasi TODO?
Mischa

@Mischa: Periksa jawaban saya, Ada di bawah bilah daftar metode.
Midhun MP

Saya sudah memeriksa jawaban Anda dan tidak menemukan petunjuk bagaimana cara menampilkan pop-up itu. Tapi saya rasa saya menemukannya sekarang: Ada di atas editor kode di bilah "navigasi", bukan?
Mischa

Btw: Apakah ada cara untuk menampilkan semua TODO proyek sekaligus?
Mischa

@Mischa: Ya, itu di atas editor kode, dan menurut pengetahuan saya tidak ada cara untuk menampilkan semua komentar sekaligus (Daripada mencari seluruh proyek)
Midhun MP

Jawaban:


133

Saya mendapatkannya.

Menulis komentar seperti:

// TODO: Do something

Akan berhasil.

Saya mendapatkan sesuatu seperti:

MELAKUKAN


Juga ada banyak pilihan seperti :

  1. // FIXME: Midhun

  2. // ???: Midhun

  3. // !!!: Midhun

  4. // MARK: Midhun

16
Anda juga dapat menggunakan // FIXME: atau #warning. ketika Anda menggunakan #warning, Anda mendapat peringatan di Xcode dan Anda dapat langsung melompat ke bagian itu.
sikat51

6
Bukankah itu yang diposting @ Dev2rights satu jam sebelum Anda? Mengapa Anda tidak menerima jawabannya?
trojanfoe

@trojanfoe: ya. Tapi saya punya solusi yang lebih tepat untuk saya // MARK: dan #warning. Itu sebabnya saya tidak menerimanya
Midhun MP

1
Nah // FIXME, // MARKdan #warningtidak sama dengan // TODOdan karena itu tidak menjawab pertanyaan Anda.
trojanfoe

1
@Domsou: Saat ini tidak ada pilihan lain selain yang terdaftar. Saya akan memperbarui jawaban saya jika saya mendapatkannya.
Midhun MP

129
// TODO: the thing todo

Adalah bagaimana Anda menunjukkan tugas yang harus dilakukan.


10
Anda juga dapat menggunakan // FIX: Everything crashes all the timeuntuk mempermudah kembali ke bagian kode Anda yang menimbulkan masalah menggunakan Jump Bar.
Maarten

Anehnya menggunakan ini tidak menunjukkan komentar di
XCode

2 penanda lainnya yang tampaknya relevan di sini adalah #warning dan #error i.imgur.com/KVjrVwG.png
Zane Helton

3
Nitpick: Beri spasi antara //dan TODO:. Sebagai contoh: // TODO: Read this from prefs. Jika Anda meninjau dokumentasi bahasa Swift dan Objective C, konvensi ruang angkasa ini cukup konsisten diikuti.
Jeffro

43

Menggunakan

//TODO: some thing here

berfungsi jika yang ingin Anda lakukan hanyalah melihat daftar todos di drop-down

Jika Anda ingin mengganggu, Anda dapat menggunakan #warningtanda sebagai gantinya:

#warning this will create a compiler warning.

Dan ketika Anda membangun aplikasi, Anda akan mendapatkan peringatan kompilator (segitiga kuning, bukan kesalahan kompilator) yang sedikit lebih "di depan Anda" tentang mengingatkan Anda tentang hal-hal yang perlu Anda lakukan.


Saya rasa #warningadalah solusi terbaik karena akan memperingatkan Anda pada waktu kompilasi. Terima kasih
Bebek

36

Dengan skrip di bawah ini, Anda dapat melihat semua tag yang diperlukan seperti peringatan.

  1. Pilih proyek Anda di Project Navigator
  2. Buka target di sidebar dan pindah ke tab "Build Phases"
  3. Klik pada tanda "+"
  4. Pilih "New Run Script Build Phase" Penambahan skrip
  5. Tambahkan skrip di bawah ini ke "Jalankan Skrip" Skrip Siap Skrip:

    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/"

masukkan deskripsi gambar di sini

Jawaban asli diambil dari sini

Alternatif lain adalah plugin XToDo untuk Xcode.


solusi yang bagus, apakah ada cara untuk mengecualikan semua file pod? ada beberapa Todos atau Mixmes di ekstensi saya yang digunakan?
Marco Weber

menemukan solusi sendiri di posting ini stackoverflow.com/q/37157027/6003494 skripnya adalah: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

Anda dapat menggunakan plugin XToDo

https://github.com/trawor/XToDo

gunakan ctrl + t untuk mengaktifkan / menonaktifkan Jendela Daftar

gunakan ctrl + t untuk mengaktifkan / menonaktifkan Jendela Daftar

Contoh Toolbar

Instal mudah dengan alcatraz gunakan ctrl + t untuk mengaktifkan / menonaktifkan List Window


1
Apakah menggulir ke bawah untuk menyarankan itu, sangat merekomendasikan.
MANIAK_dobrii

6

Saya mulai dengan

// TODO: Implement bubble sort.

Kemudian saya bergabung dengan sebuah proyek besar dan kadang-kadang saya membutuhkan rencana untuk hidup lebih lama dari komitmen WIP dan untuk membedakan todos saya dari rekan-rekan saya, saya beri nama spasi rencana saya dengan inisial saya:

// TODO: SM: Implement bubble sort

Terkadang saya menginginkan lebih banyak visibilitas, jadi saya mulai menggunakan peringatan pragma di beberapa tempat.

#warning Implement bubble sort

Suatu hari saya memutuskan untuk mengaktifkan mode keras dengan menambahkan -Werrorke cflag saya. Sayangnya ini membuat peringatan pragma tidak berguna karena mencegah kompilasi. Jadi saya kembali menggunakan // TODO:sampai Jeff Nadeau mengatakan kepada saya bahwa saya bisa meletakkan

-Wno-error=#warnings

di cflag saya agar tidak memperlakukan peringatan pragma sebagai kesalahan. Jadi sekarang #warningdan -Werrorbisa hidup berdampingan satu sama lain.


3

Saya cenderung menulis persis // TODO: Blah blah blah

Kemudian saya hanya melakukan COMMAND-SHIFT-F dan mencari "// TODO".

Menggunakan drop down garis besar file hanya akan menampilkan TODO untuk file saat ini, tetapi saya cenderung ingin melihat status TODO proyek saya.

Solusi yang kasar, tetapi berhasil.


2

Saya membagi token yang dikenali menjadi Peringatan dan Kesalahan untuk saya gunakan sendiri, saya pikir saya akan membagikannya di sini:

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

Metode sederhana lainnya, sedikit di luar kotak, jika Anda tidak ingin mengacaukan bilah daftar metode, adalah menggunakan konvensi dalam komentar seperti //Todo: dan ketika Anda ingin mengatasinya secara massal, cukup pilih Find Navigator, cocokkan case dan cari//Todo:

Saya lebih suka ini karena saya tidak suka metode drop-down yang terlihat seperti kode spagetti. Dan ya, saya sering memiliki banyak Todo: 's;)


Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.