name: Objective-C fileTypes:

bundleUUID: 4679484F-6227-11D9-BFB1-000D93589AF6 scopeName: source.objc repository:

protocol_type_qualifier: 
  name: storage.modifier.protocol.objc
  match: \b(in|out|inout|oneway|bycopy|byref)\b
bracketed_content: 
  name: meta.bracketed.objc
  captures: 
    "0": 
      name: punctuation.section.scope.objc
  begin: \[
  end: \]
  patterns: 
  - name: meta.function-call.objc
    begin: (?=\w)(?<=[\w\])"] )(\w+(?:(:)|(?=\])))
    beginCaptures: 
      "1": 
        name: support.function.any-method.objc
      "2": 
        name: punctuation.separator.arguments.objc
    end: (?=\])
    patterns: 
    - name: support.function.any-method.name-of-parameter.objc
      captures: 
        "1": 
          name: punctuation.separator.arguments.objc
      match: \b\w+(:)
    - include: "#special_variables"
    - include: $base
  - include: "#special_variables"
  - include: $base
protocol_list: 
  name: meta.protocol-list.objc
  endCaptures: 
    "1": 
      name: punctuation.section.scope.end.objc
  begin: (<)
  beginCaptures: 
    "1": 
      name: punctuation.section.scope.begin.objc
  end: (>)
  patterns: 
  - name: support.other.protocol.objc
    match: \bNS(GlyphStorage|M(utableCopying|enuItem)|C(hangeSpelling|o(ding|pying|lorPicking(Custom|Default)))|T(oolbarItemValidations|ext(Input|AttachmentCell))|I(nputServ(iceProvider|erMouseTracker)|gnoreMisspelledWords)|Obj(CTypeSerializationCallBack|ect)|D(ecimalNumberBehaviors|raggingInfo)|U(serInterfaceValidations|RL(HandleClient|DownloadDelegate|ProtocolClient|AuthenticationChallengeSender))|Validated(ToobarItem|UserInterfaceItem)|Locking)\b
method: 
  name: meta.function.objc
  begin: ^(-|\+)\s*
  end: (?=\{)|;
  patterns: 
  - name: meta.return-type.objc
    captures: 
      "1": 
        name: punctuation.definition.type.objc
      "2": 
        name: entity.name.function.objc
    begin: (\()
    end: (\))\s*(\w+\b)
    patterns: 
    - include: "#protocol_list"
    - include: "#protocol_type_qualifier"
    - include: $base
  - name: entity.name.function.name-of-parameter.objc
    match: \b\w+(?=:)
  - name: meta.argument-type.objc
    endCaptures: 
      "1": 
        name: punctuation.definition.type.objc
      "2": 
        name: variable.parameter.function.objc
    begin: ((:))\s*(\()
    beginCaptures: 
      "1": 
        name: entity.name.function.name-of-parameter.objc
      "2": 
        name: punctuation.separator.arguments.objc
      "3": 
        name: punctuation.definition.type.objc
    end: (\))\s*(\w+\b)?
    patterns: 
    - include: "#protocol_list"
    - include: "#protocol_type_qualifier"
    - include: $base
  - include: "#comment"
comment: 
  patterns: 
  - name: comment.block.objc
    captures: 
      "0": 
        name: punctuation.definition.comment.objc
    begin: /\*
    end: \*/
  - name: comment.line.double-slash.c++
    begin: //
    beginCaptures: 
      "0": 
        name: punctuation.definition.comment.objc
    end: $\n?
    patterns: 
    - name: punctuation.separator.continuation.c++
      match: (?>\\\s*\n)
special_variables: 
  patterns: 
  - name: variable.other.selector.objc
    match: \b_cmd\b
  - name: variable.language.objc
    match: \b(self|super)\b

uuid: F85CC716-6B1C-11D9-9A20-000D93589AF6 foldingStartMarker: “(?x)n\

\t\t /\\*\\*(?!\\*)\n\
\t\t|^(?![^{]*?//|[^{]*?/\\*(?!.*?\\*/.*?\\{)).*?\\{\\s*($|//|/\\*(?!.*?\\*/.*\\S))\n\
\t\t|^@(interface|protocol|implementation)\\b\n\
\t"

patterns:

foldingStopMarker: (?<!*)**/|^s*}|^@endb keyEquivalent: ^~O