Xcodeのカスタムスニペットを作成して環境間で同期する
Xcodeでコードを書く時にコマンドをある程度まで入力すると候補が幾つか出てきて選択することができます。ここで出てくる候補がスニペットです。最初からXcodeに用意されているものでも十分便利ですが、ここに自分なりのスニペットを加えることができると更にコーディングが楽になります。
今回は自分なりのカスタムスニペットを作成して、それを複数のMacで同期する方法をメモしておきます。
カスタムスニペットの作成方法
- Xcodeのエディタでコードのスニペットにしたい部分を選択
- マウスを右クリックしてメニューから
Create code snippet
を選択
- 表示されたダイアログに必要事項を入力して
Done
をクリック
以上でカスタムスニペットの作成は終了です。
ダイアログの入力項目
ダイアログには下記の入力項目があるので必要に応じて設定します。
Title
スニペットの名前でダイアログ左にあるリストに表示されます。デフォルトでMy Code Snippet
が入力されています。
Summary
スニペットの説明です。候補選択時に表示されます。
Language
SwiftもしくはObjective-Cです。
Platform
All, iOS, macOS, tvOS, watchOSから選択します。
Completion
どの文字列を入力したら候補として表示するかを設定します。
Availability
スニペットがコードの中のどの部分で有効になるかを設定します。
Code
中央の編集ボックスに選択した部分が表示されます。
<#
と#>
で囲った文字列はスニペット選択後に選択されて編集可能になる部分です。
例
prepare関数の中で行先のビューコントローラが目的のものかどうかを確認するスニペットはこんな感じで。
中央のコードの中のidentifier: String
の部分は<#identifier: String#>
と入力してあります。Class
も同様です。
Xcodeのエディタでifsと入力すれば候補が出てきます。
選択するとXcodeのエディタに表示されて編集できます。
カスタムスニペットを他のMacと同期する
複数のMacを使ってコードを書く場合に、どのMacでも同じようにカスタムスニペットが使えると便利です。今回はiCloudを使ってMac間の同期を図ります。
やる事はXcodeのカスタムスニペットが保存されているフォルダをiCloudに移動して、各Macのカスタムスニペットが保存されているフォルダをiCloud上のものにリンクするだけです。
カスタムスニペットが保存されている場所
カスタムスニペットは下記の場所に保存されています。
/Users/ユーザ名/Library/Xcode/UserData/CodeSnippets/
iCloudの保存場所
iCloudにXcodeUserDataと言うフォルダを作成します。この中にCodeSnippetsフォルダを移動します。
mkdir /Users/paraches/Library/Mobile\ Documents/com\~apple\~CloudDocs/XcodeUserData
カスタムスニペットの入っているフォルダをiCloudに移動
mv /Users/paraches/Library/Developer/Xcode/UserData/CodeSnippets /Users/paraches/Library/Mobile\ Documents/com\~apple\~CloudDocs/XcodeUserData
カスタムスニペットが保存されていた場所にリンクを張る
ln -s /Users/paraches/Library/Mobile\ Documents/com\~apple\~CloudDocs/XcodeUserData/CodeSnippets /Users/paraches/Library/Developer/Xcode/UserData
以上でiCloudを使用してCodeSnippetsフォルダは同期されます。
後はそれぞれのMacでリンクを張る作業を繰り返せばOKです。
Discussion