Slide 16
Slide 16 text
実際の会話ログ
$ SOURCEKIT_LOGGING=3 /Applications/Xcode.app/Contents/MacOS/Xcode
リクエスト (Xcode → SourceKit)
18:10:03 {
← ファイル全文を渡して解析開始
レスポンス (SourceKit → Xcode)
{
key.request: source.request.editor.open,
key.diagnostics: [ {
key.name: ".../Sample.swift",
key.description: "value of optional type 'String?' must be ...",
key.sourcetext: "//\n//
key.diagnostics: [ {
Sample.swift\n..."
}
key.description: "coalesce using '??' ...",
key.fixits: [ {
18:10:15 {
← 変更箇所を送る
key.offset: 487,
key.request: source.request.editor.replacetext, ...
key.length: 0,
}
key.sourcetext: " ?? <#default value#>"
} ]
18:10:17 {
← 診断結果をリクエスト
}, ... ]
key.request: source.request.diagnostics, ...
}
← Fix ボタンの中身
} ]
}
— シンタックスハイライトや補完等の表示も、全て SourceKit から出力される
— fix-it も例外ではなく、diagnostics レスポンスに含まれるフィールドの1つ
© ZOZO, Inc.
16