Làm cách nào để đánh dấu nhận xét “Việc cần làm” trong Xcode?


111

Hiện tại, tôi đang thực hiện tác vụ Thao tác hình ảnh dựa trên iOS.

Vấn đề:

Tôi đang làm việc trên các mô-đun khác nhau. Vì vậy, Nếu tôi cần thêm một cái gì đó trong một mô-đun trong tương lai, tôi muốn đánh dấu nó là một ghi chú Việc cần làm. Có macro nào khác hoặc tương tự để thêm ghi chú vào Xcode không?

Tôi đã thử:

Đối với điều này hiện tại tôi đang sử dụng #pragmanhư:

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

Tôi đã nhận:

Nhưng nó liệt kê trong phần Phương pháp như:

Làm

Những gì tôi thực sự cần:

Vấn đề là, nó được liệt kê trong danh sách phương pháp nên đôi khi tôi quên xóa nó khỏi phần cũng rất khó tìm thấy nó trong toàn bộ mã nguồn. (Tìm kiếm kết quả #pragma để hiển thị toàn bộ danh sách)

Chi tiết kỹ thuật:

Tôi đang sử dụng Phiên bản Xcode 4.6.2.


Làm cách nào để truy cập chế độ xem cụ thể đó, nơi Xcode liệt kê tất cả các phương thức, dấu pragma và chú thích CẦN LÀM?
Mischa

@Mischa: Kiểm tra câu trả lời của tôi, Câu trả lời nằm dưới thanh danh sách phương pháp.
Midhun MP

Tôi đã kiểm tra câu trả lời của bạn và không tìm thấy gợi ý về cách hiển thị cửa sổ bật lên đó. Nhưng tôi nghĩ bây giờ tôi đã tìm thấy nó: Nó nằm trên đầu trình soạn thảo mã trong thanh "điều hướng" đó, phải không?
Mischa

Btw: Có cách nào để hiển thị tất cả các VIỆC CẦN LÀM của dự án cùng một lúc không?
Mischa

@Mischa: Vâng đó là trên đỉnh của biên tập mã, và trong kiến thức của tôi không có cách nào để hiển thị tất cả để làm bình luận cùng một lúc (Thay vì tìm kiếm trên toàn bộ dự án)
Midhun MP

Câu trả lời:


133

Tôi hiểu rồi.

Viết bình luận như:

// TODO: Do something

Sẽ làm các thủ thuật.

Tôi có một cái gì đó như:

LÀM


Ngoài ra có rất nhiều lựa chọn như :

  1. // FIXME: Midhun

  2. // ???: Midhun

  3. // !!!: Midhun

  4. // MARK: Midhun

16
bạn cũng có thể sử dụng // FIXME: hoặc #warning. khi bạn sử dụng #warning, bạn có một cảnh báo trong Xcode và bạn có thể chuyển trực tiếp đến phần đó.
brush51

6
Đó không phải là thứ mà @ Dev2rights đã đăng trước bạn một giờ sao? Tại sao bạn không chấp nhận câu trả lời của anh ấy?
trojanfoe

@trojanfoe: vâng. Nhưng tôi có một giải pháp phù hợp hơn cho mình // ĐÁNH DẤU: và #warning. Đó là lý do tại sao tôi không chấp nhận nó
Midhun MP

1
Chà // FIXME, // MARK#warningkhông giống với // TODOvà vì vậy điều đó không trả lời câu hỏi của bạn.
trojanfoe

1
@Domsou: Hiện tại không có tùy chọn nào khác ngoài những tùy chọn được liệt kê. Tôi sẽ cập nhật câu trả lời của mình nếu tôi nhận được bất kỳ câu trả lời nào.
Midhun MP

129
// TODO: the thing todo

Là cách bạn hiển thị các nhiệm vụ todo.


10
Bạn cũng có thể sử dụng // FIX: Everything crashes all the timeđể quay lại các phần mã gây ra sự cố dễ dàng hơn bằng cách sử dụng Jump Bar.
Maarten

Kỳ lạ sử dụng này không hiển thị nhận xét trong XCode 5.1.1
loretoparisi

2 điểm đánh dấu khác có vẻ có liên quan ở đây là #warning và #error i.imgur.com/KVjrVwG.png
Zane Helton

3
Nitpick: Đặt một khoảng trống giữa //TODO:. Ví dụ: // TODO: Read this from prefs. Nếu bạn xem lại tài liệu về ngôn ngữ Swift và Objective C, quy ước không gian này được tuân thủ khá nhất quán.
Jeffro

43

Sử dụng

//TODO: some thing here

hoạt động nếu tất cả những gì bạn muốn làm là xem danh sách việc cần làm trong trình đơn thả xuống

Nếu bạn muốn xâm nhập, bạn có thể sử dụng các #warningdấu thay thế:

#warning this will create a compiler warning.

Và khi bạn xây dựng ứng dụng, bạn sẽ nhận được cảnh báo trình biên dịch (hình tam giác màu vàng, không phải lỗi trình biên dịch), điều này "trực diện" hơn một chút về việc nhắc bạn về những việc bạn cần làm.


Tôi nghĩ #warninglà giải pháp tốt nhất vì nó sẽ cảnh báo bạn tại thời điểm biên dịch. Cảm ơn
Duck

36

Với tập lệnh bên dưới, bạn có thể thấy tất cả các thẻ bắt buộc như cảnh báo.

  1. Chọn dự án của bạn trong Project Navigator
  2. Mở mục tiêu trong thanh bên và chuyển đến tab "Xây dựng giai đoạn"
  3. Nhấp vào dấu "+"
  4. Chọn "Giai đoạn xây dựng kịch bản chạy mới" Thêm tập lệnh
  5. Thêm tập lệnh bên dưới vào "Run Script" Tập lệnh sẵn sàng Tập lệnh:

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

nhập mô tả hình ảnh ở đây

Câu trả lời gốc được lấy từ Đây

Một giải pháp thay thế khác là plugin XToDo cho Xcode.


giải pháp tuyệt vời, có cách nào để loại trừ tất cả các tệp nhóm không? có một vài Mixmes Todos oder trong các tiện ích mở rộng đã sử dụng của tôi không?
Marco Weber

tự mình tìm ra giải pháp trong bài đăng này stackoverflow.com/q/37157027/6003494 , kịch bản là: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

Bạn có thể sử dụng plugin XToDo

https://github.com/trawor/XToDo

sử dụng ctrl + t để bật / tắt Cửa sổ Danh sách

sử dụng ctrl + t để bật / tắt Cửa sổ Danh sách

Ví dụ về thanh công cụ

Cài đặt dễ dàng với alcatraz, sử dụng ctrl + t để bật / tắt Cửa sổ Danh sách


1
Đã cuộn xuống để gợi ý rằng, hoàn toàn đề xuất.
MANIAK_dobrii

6

Tôi bắt đầu với

// TODO: Implement bubble sort.

Sau đó, tôi tham gia một dự án lớn và đôi khi tôi cần một việc cần làm để sống lâu hơn một cam kết WIP và do đó, để phân biệt việc cần làm của tôi với các đồng nghiệp của tôi, tôi đặt tên việc cần làm bằng chữ cái đầu của tôi:

// TODO: SM: Implement bubble sort

Đôi khi tôi muốn hiển thị nhiều hơn nên tôi bắt đầu sử dụng cảnh báo pragma ở một số nơi.

#warning Implement bubble sort

Một ngày nọ, tôi quyết định bật chế độ cứng bằng cách thêm -Werrorvào cflags của mình. Thật không may, điều này làm cho cảnh báo pragma trở nên vô dụng vì chúng ngăn cản quá trình biên dịch. Và vì vậy tôi quay lại sử dụng // TODO:cho đến khi Jeff Nadeau nói với tôi rằng tôi có thể đặt

-Wno-error=#warnings

trong cflags của tôi để không coi cảnh báo pragma là lỗi. Vì vậy, bây giờ #warning-Werrorcó thể sống cùng nhau.


3

Tôi có xu hướng viết chính xác // VIỆC CẦN LÀM: Blah blah blah

Sau đó, tôi chỉ thực hiện COMMAND-SHIFT-F và tìm kiếm "// TODO".

Sử dụng trình đơn tệp thả xuống sẽ chỉ hiển thị cho bạn NHỮNG VIỆC CẦN LÀM đối với tệp hiện tại, nhưng tôi có xu hướng muốn xem trạng thái VIỆC CẦN LÀM của dự án của mình.

Giải pháp đơn giản, nhưng nó làm được việc.


2

Tôi chia các mã thông báo được công nhận thành Cảnh báo và Lỗi để sử dụng cho riêng mình, tôi nghĩ rằng tôi sẽ chia sẻ nó ở đây:

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

Một phương pháp đơn giản khác, hơi nằm ngoài hộp, nếu bạn không muốn làm lộn xộn thanh danh sách phương thức, là sử dụng một quy ước trong các nhận xét như //Todo: và khi bạn muốn giải quyết chúng một cách tổng thể, chỉ cần chọn Tìm Bộ điều hướng, đối sánh trường hợp và tìm kiếm//Todo:

Tôi thích điều này hơn vì tôi không thích các phương thức thả xuống trông giống như mã spagetti. Và vâng, tôi thường có rất nhiều Todo: 's;)


Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.