sourcekitten Docs (93% documented)

sourcekitten Reference sourcekitten Reference

sourcekitten

sourcekitten

An adorable little command line tool for interacting with SourceKit. Written in Swift.

Test Status

Usage

Just call sourcekitten in the root of your Xcode project’s directory. Some more complex projects may have to pass in -project, -workspace, -scheme or other xcodebuild arguments to help sourcekitten determine what to document.

Install it by running sh install.sh, first making sure that Xcode 6.1 is set in xcode-select.

By default, sourcekitten will use the copy of sourcekitd.framework under /Applications/Xcode.app (preferrably Xcode 6.1 or later).

How it works

sourcekitten links and communicates with sourcekitd.framework to generate parsable docs in an XML format for your Swift projects or print syntax highlighting information for a Swift file.

Structure Information

Calling sourcekitten --structure /absolute/path/to/file.swift will return a JSON array of structure information:

{
  "key.substructure" : [
    {
      "key.substructure" : [

      ],
      "key.nameoffset" : 0,
      "key.offset" : 164,
      "key.namelength" : 0,
      "key.length" : 12,
      "key.kind" : "source.lang.swift.syntaxtype.comment.mark"
    },
    {
      "key.namelength" : 4,
      "key.bodylength" : 0,
      "key.substructure" : [

      ],
      "key.kind" : "source.lang.swift.expr.call",
      "key.nameoffset" : 15546,
      "key.bodyoffset" : 15551,
      "key.name" : "main",
      "key.length" : 6,
      "key.offset" : 15546
    }
  ],
  "key.offset" : 0,
  "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse",
  "key.length" : 15553
}

Syntax Information

Calling sourcekitten --syntax /absolute/path/to/file.swift will return a JSON array of syntax highlighting information:

[
  {
    "type": "source.lang.swift.syntaxtype.comment",
    "offset": 0,
    "length": 14
  },
  {
    "type": "source.lang.swift.syntaxtype.keyword",
    "offset": 14,
    "length": 6
  },
  {
    "type": "source.lang.swift.syntaxtype.identifier",
    "offset": 21,
    "length": 10
  }
]

License

MIT licensed.