Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Xcode intellisense meaning of letters in colored boxes like f,T,C,M,P,C,K,# etc

Recently, I have started using Xcode 4 for developing iOS apps.

In Xcode intellisense's autocomplete box, there are some letters in colored boxes before every suggestion. I know that they represent the property of the word we are typing like f,T,C,M,P,C,K,# etc. enter image description here

Is there some kind of glossary available to find their quick meanings?

Meanings of f,C,T,# are understandable (function, class etc) but there are many others which I dont know. I assume these letters are standard across all IDEs like Visual Studio, Netbeans etc. Correct me if I am wrong.

Please suggest.

like image 661
hiprakhar Avatar asked Jul 12 '11 09:07

hiprakhar


People also ask

What does P mean in Xcode?

P: property (IIRC Xcode favors L/V for Swift, but you see P for ObjC properties)

What does l mean in Swift?

It's sitting there in your car's shift quadrant, holding down the last position. If you're like most drivers nowadays, you've never even used it — but that doesn't mean the lonely “L” is completely without its uses. It stands for “Low,” which typically means 1st gear but can sometimes mean the lower gears.

Does Xcode have intellisense?

Xcode does have its own code-completion system, but so far as I know the formats are vastly different – meaning, you can't really make use of that conveniently-already-there Intellisense data.


2 Answers

In Xcode this is called "Code Sense". And these icons also exist in Xcode 3. These icons are also used in symbol navigation.

Red: macros

  • # = macro (think #define)

Brown: Core Data / namespace

  • C = modeled class
  • M = modeled method
  • P = modeled property

  • N = C++ namespace

Orange: aliased types

  • C with underscore = Objective-C category
  • E = enum
  • T = typedef / typealias
  • Ex = Swift extension

Green: variables

  • B = binding
  • f = function
  • F = field
  • K = constant
  • L = local variable
  • O = IBOutlet
  • V = variable (can be ivar, global var, local var, etc.)
  • x = parameter (think f(x))

Blue: methods

  • A = IBAction
  • M = method
  • P = property

Purple: aggregate types

  • C = class (Objective-C, Swift or C++)
  • CE = class extension
  • Pr = Objective-C/Swift protocol
  • S = struct
  • U = union

Gray: snippets

  • {} = snippets

Icons: #pragma mark or comments

  • Flag = !!!: ...
  • Patch = FIXME: ...
  • ? = ???: ...
  • Items = TODO: ...
  • List = MARK: ...

You should be able to look up the meanings from the filenames from /Developer/Library/PrivateFrameworks/DVTFoundation.framework/Resources/Xcode.SourceCodeSymbolKind.*.Icon.tiff*.

In later versions of Xcode, the path is moved to /Applications/Xcode.app/Contents/SharedFrameworks/DVTFoundation.framework/Resources/Assets.car, see Analysing Assets.car file in IOS on how to extract the images from the *.car

like image 154
kennytm Avatar answered Sep 30 '22 19:09

kennytm


I was searching for the meaning behind the "rM" icon. I finally found the answer (many thanks to kennytm):

The "rM" symbol represents a recursive method.

enter image description here

enter image description here

like image 29
H. M. Coire Avatar answered Sep 30 '22 18:09

H. M. Coire