[Swift3]コードスニペット(コードの雛形)の自作を試してみた

  • このエントリーをはてなブックマークに追加
  • Pocket
  • LINEで送る
Swift

Xcodeには、コードの一部を入力すると自動的にソースの雛形を用意してくれる機能(コードスニペット)がある。例えば「if」と打てばif文の雛形が出てくるし、「swi」まで打てばswitch文の雛形をサジェストしてくれる。

この便利な機能、実は自分で雛形を用意してコードスニペットを作成するということもできると聞いた。使ってみると、これがなかなか役に立つ。

どんなことが出来るようになるのか

例えば、前回の記事で紹介した「端末の自動ロックを無効化する機能」のソース。

わざわざ以前作成したプロジェクトを開く→コピペということをしなくても、ほんの数文字入力するだけでソースを挿入することができるようになる。

以下の例は、テンプレートを示す「temp」を入力すれば各種ソースが出てくるようにした場合の操作。

コードスニペットを呼び出す画像

あらかじめ決めておいた文字を入力するだけで

コードスニペットからソースを挿入した画像

テンプレート通りのソースが挿入される

基本的なコードスニペットの作成方法

コードスニペットライブラリを表示する

難しく聞こえるが、操作は1クリックのみ。

Xcodeの画面右下で普段UI部品を表示している場所の、{}マークをクリックする。

コードスニペットライブラリを表示する画像

上記画像のような、{}マークが並んだ表示になればOK。

登録したいソースをドラッグ&ドロップする

雛形として登録したいソースを選択し、コードスニペットライブラリのエリアにドラッグ&ドロップする。

登録したいソースをドラッグ&ドロップする画像

概要を登録して完了

すると、以下のようにコードスニペットの概要登録画面が表示されるので、内容を入力していく。

コードスニペットの概要登録画面

入力する内容は以下の通り。

  • Title …コードスニペットのタイトル(日本語OK)。短く簡潔な方がいい
  • Summary …コードスニペットの説明(日本語OK)。ここはどんなソースなのかきちんと書くべき
  • Platform …対象のOS(iOS、macOSなど)。対象外のOSで入力しても反応しないようにするための設定
  • Language …言語。通常はSwiftのままでいいはず
  • Completion Shortcut …重要。エディタ上でどの文字列が入力された時にこのコードスニペットを呼び出すかを指定する
  • Completion Scopes …エディタ上のどのスコープでこのコードスニペットを呼び出すか

「Summary」と「Completion Shortcut」は丁寧に入力した方が良い。

ちなみに上記画像の通り登録すると、「temp」「disa」「dal」などと入力した時に登録したコードスニペットが呼び出されるようになる。

入力が完了したら「Done」を押せば、コードスニペットの登録が完了する。

応用・入力欄付きのコードスニペットを作成する

例えば、もともと用意されているswitch文のコードスニペットを呼び出すと、以下のように一部分をユーザに入力させるようなテンプレートが挿入される。

switch文のコードスニペットの画像

value, pattern, codeは自分で入力する

このように、一部をユーザに補完させるようなコードスニペットを作成することもできる。

例えば、サブビューを追加する「view.addSubView()」を登録する場合。まずはこれまでの手順通り、概要入力までを済ませる。

コードスニペットの概要を入力する画像

この例では、「textLabel」となっている部分に汎用性を持たせるため「subView」という表示でユーザに入力をさせるようにしたい。
この場合は、該当の箇所を「<#subView#>」とすれば良い。(“<#”と”#>”で囲む)

ちなみに先に囲みを作ってしまうとうまく入力ができないため、左から順番に入力する。

ユーザに入力させる部分を指定する画像

実際に入力したのは「<#subView#>」だ

この状態でコードスニペットを登録して、実際に呼び出してみる。

コードスニペットを呼び出す画像

コードスニペットを呼び出す

入力欄付きのコードスニペットの画像

「subView」の部分をユーザに入力させるようになっている

まとめ

よく使いそうなソースをコードスニペットに登録しておけば、わざわざ以前のプロジェクトを開かなくても簡単に雛形を呼び出すことができる。
普段使いにももちろん役に立つし、アプリ開発勉強中の身としては学習内容の管理にも一役買いそうな機能だ。

もしこれからiPhoneアプリ開発を行うつもりなら、早い段階からコードスニペットの登録を習慣化しておくと良いかもしれない。

  • このエントリーをはてなブックマークに追加
  • Pocket
  • LINEで送る

SNSでもご購読できます。