Xcodeの補完機能を使ってみる

Xcodeには補完機能があります。僕は他のEclipseとかVisualStudioとかを知らないのでよく知りませんが今時なIDEなら当たり前ですよね。折角ある機能なのでガンガン使って楽したいです。

使ってみる その1

適当なファイルとかの.mファイルの適当なメソッド内で
nsst
と打ったら

こんな感じにキャレットの後ろに補完されます。
これでOKならTABキーを押すとその補完を採用できます。

[NSString stringWithFormat:@"Test %@", str];

と入力したいとすると

[NSString 

までは先ほどの補完でサクッと入力できます。
stringWithFormat:メソッドを入力するとき

この状態になるので一旦TAB。
その後に

wi

と打鍵すると

こうなるのでもう一回TAB。
stringWithまで入力出来ている状態でさらに
F
を打鍵してまたTABを押すと引数が選択された状態になるのでそのまま@"Test %@"とか続きを打っていけばOKです。


使ってみる その2

TABキーを何回も打鍵するのが嫌な人はstrくらい打鍵した状態でESCキーを押せばメニューが開くのでその中の一覧からカーソルキーで選択する手もあります。
カーソルキーを使うのが嫌だと言う方はstrくらいまで入力した後にCtrl+. (ドット)を押すと何かが補完されます。そのメソッドが目的のメソッドじゃない場合はそれがでるまでCtrl+. を連打する方法もありです。

[NSDictionary dictionaryWithObject:@"test" forKey:@"testKey"];

を入力するシチュエーションで

ここでObjectを入力した後にKeyを入力したいですよね。
カーソルキーとかで移動してもいいですが、Ctrl+/ で次のプレースホルダ(引数部分)にひとっ飛びできます。
このショートカットキーを使えば引数が多いようなメソッドの入力も楽できます。


使ってみる その3

Xcodeの補完にはこれまでに書いたように自動的に表示される候補を元に入力していく意外にも
あらかじめ設定されたキーワードを入力し、補完実行することで一発で入力出来る機能もあります。


今までのやり方だと,数文字入力してTABキーまた数文字してTABキーを押さないといけなかったり、ちょうど良い位置に区切りが来ない場合があったりします。
例えば、NSMutableDictionary と入力したい場合には

nsmd

と入力した後にCtrl+. か ESCキーを押すと簡単に入力できます。

他にも

a

だけ入力してCtrl+.を押すと一気にここまで入力出来ます。



@implementation と @end の間でメソッド外のところで

init

と入力してESCキーを押すと


init - iniit Definition
というのがあります。ここでReturnを押すと一気にここまでやっちゃってくれます。

楽ですよね。

高速列挙はforeと入力して補完で。


これらの補完の一部は メニュー>編集>テキストマクロを挿入 で見られますが全てはどこに定義されているかというと

/Developer/Applications/Xcode.app/Contents/PlugIns/TextMacros.xctxtmacro/Contents/Resources/ObjectiveC.xctxtmacro

階層深いですよね。
ObjectiveC.xctxtmacroはplist形式です。
このファイルのCompletionPrefixとして定義されている文字列が補完のキーワードとなります。

このあたりはこちらのブログが詳しく書かれているのでそちらを参考にしてみて下さい。

「xctxtmacro」の検索結果 - hibomaのはてなダイアリー

ということで

自分でよく使うものが既存のテキストマクロに定義されているかどうか確認してみたり、もしなければ自分で定義してどんどん楽しましょう。