Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What source comments does Xcode recognize as tags?

Tags:

comments

xcode

This is mostly for curiosity's sake. I've known for awhile that Xcode is capable of recognizing comments in the form of // TODO: Something I don't feel like doing now. Adding that line to the source of a file will cause that TODO comment to show up in Xcode's navigation bar:

enter image description here

I also recently discovered that comments of the form // MARK: Something can achieve the same effect as #pragma marking something. So I can write a comment that looks like:

// MARK: - // MARK: Future Improvements: // TODO: Make something better // TODO: Fix some bug 

And Xcode will render it out like this:

enter image description here

Which leads me to wonder: Are there other kinds of comments that Xcode can understand to improve project navigation?

like image 899
Matt Wilding Avatar asked Sep 29 '11 16:09

Matt Wilding


2 Answers

There is also MARK, FIXME, !!! and ???, e.g.

// FIXME: this bug needs to be fixed 

and

// ???: WTF ??? 

You can see where these are defined in /Applications/Xcode.app/Contents/OtherFrameworks/XcodeEdit.framework/Versions/A/Resources/BaseSupport.xclangspec (or /Developer/Library/PrivateFrameworks/XcodeEdit.framework/Resources/BaseSupport.xclangspec for older versions of Xcode). Presumably you could also add your own tags here if you wanted to but I have not actually tried this. Here is the relevant section in BaseSupport.xclangspec:

{     Identifier = "xcode.lang.comment.mark";     Syntax = {         StartChars = "MTF!?";         Match = (             "^MARK:[ \t]+\(.*\)$",             "^\(TODO:[ \t]+.*\)$",       // include "TODO: " in the markers list             "^\(FIXME:[ \t]+.*\)$",      // include "FIXME: " in the markers list             "^\(!!!:.*\)$",              // include "!!!:" in the markers list             "^\(\\?\\?\\?:.*\)$"         // include "???:" in the markers list         );         // This is the order of captures. All of the match strings above need the same order.         CaptureTypes = (             "xcode.syntax.mark"         );         Type = "xcode.syntax.comment";     }; }, 

These tags are also supported in the BBEdit text editor and its freeware sibling TextWrangler.

like image 98
Paul R Avatar answered Nov 10 '22 03:11

Paul R


Looks like

// MARK: // TODO: // FIXME: // ???: // !!!: 

all get translated into #pramga-like markers.

It appears that they stand for

// Mark, as in pragma // To Do note // Known bug marker // Serious question about form, content, or function // Serious concern about form, content, or function 
like image 21
Patrick Perini Avatar answered Nov 10 '22 02:11

Patrick Perini