AppCodeのオートコンプリートとタブを知って幸せになる方法
Hey guys!! 起きてるか!!
AppCode使ってるか?使ってない?
じゃあ今すぐ買ってXcodeぶん投げていいぞ。
ただしInterfaceBuilderだけ残してな。
AppCodeはコーディングが激しく楽になるIDEです。
かゆいところに手が届き、そして日々のバグ修正、改善により
パワーアップ&便利になっています。
そんな便利なAppCodeを普通に使っても便利なんですが、
Ctrl + Space、Ctrl + Shift + Space、Tabの補完機能の違いを知っておくだけで大分幸せになれます。細かいことは以下の本家ブログに書いてあるので要チェックです。
A bit of Code Completion Kung Fu | JetBrains AppCode Blog
以下 Ctrl = ^, Shift = ⇧とします。
1. ⌃Spaceと⌃⇧Spaceは違う
AppCodeでコードを書いていると、普通にメソッド補完が頭良い。心地よい!というのは普通に味わえますが、^Spaceと^⇧Spaceによる補完処理は実は違います。
同じような挙動をしているようで実は違います。
違いとしは、
^Space = ベーシックな補完対象一覧を表示
^⇧Space = より賢いスマートな結果一覧を表示
で、なんのこっちゃ?ということになるので詳しく見ていきましょう。
で詳しくはここ。
AppCode Code Completion. 101 | JetBrains AppCode Blog
●Smart Type Completion(^⇧Space)
用意した変数があり、何かを代入するときに、^⇧Spaceを使うと代入しようとしている型を判断して適切な補完一覧を表示してくれます。
以下は、NSArray aに対して ^⇧Spaceをタイプした結果です。通常の^Spaceでは、ただ一覧がざざっとでるだけですが、NSArrayという型を判断して適切な一覧が表示されています。
●AppCodeの補完方法:CamelHumps
AppCodeでは入力している文字からあなたが必要としているクラスやメソッドを探し出して一覧にしてくれます。これは、^Space、^⇧Spaceをタイプしなくても行われるためこれがAppCodeの気持ちよさにつながっていると思います。
うろ覚えでタイプしてるだけで目的のメソッドなどにたどり着けます。
●Autocomplete block arguments(^⇧Space)
これが非常に素晴らしいです。blocksを引数にとるメソッドの場合、blocksの引数含めタイプしなくてはいけないあの煩わしい作業が^⇧Spaceで一瞬で解決です。
blocksコーディングが超絶はかどりますね!
●引数の型一覧を表示(^⇧Space)
NSString型とか扱っている時によく遭遇するのは、引数にenum型の引数を取る時です。例えばNS●●●●の文字コードを示すものとか。そんなときにわざわざタイプするのではなく、^⇧Spaceをタイプすれば、適切な候補一覧だけ表示されます。もうその型ってどんな種類があったんだっけ?とドキュメント引かずに済みます。
●小ネタ集
AppCodeでObjective-Cのコーディングするときは、メソッドをタイプするときに[]をタイプしなくても済みます。NSString alloc initとタイプするだけでどんどんブラケットが装着されていきますw
2. Tabを知る
AppCodeにおけるTabは非常に奥が深いです。
●Tabで候補を選ぶ時とEnterで候補を選ぶ時の大きな違い
AppCodeで候補候補ウィンドウのアイテムをTabで選ぶかEnterで選ぶかは全く異なります。
Enterの場合:
文字通り候補を選ぶだけです。その後引数の入力処理にうつりますが例えばメソッドを名を間違えてメソッド名途中から^Spaceなどで候補ウィンドウを出し、Enterで決定した場合は、前の間違ったメソッド名が分断されて残ります。
Tabの場合:
Tabで候補ウィンドウのアイテムを選んだ時は、以前入力されていた文字を綺麗に消し去り必要なものは残して綺麗に置換してくれます。
stringWithFormatをTabで選択すると、、、
綺麗に置き換えてくれる!
3. 小ネタ
AppCodeで候補ウィンドウからシンボルを選び終わった時に . (ピリオド)をタイプすればそのままメソッドチェーン的につなげていけます。逆に入力を終えたい時は ;(セミコロン)をタイプすれば終了です。
これでAppCodeがより便利になったと思います。Enjoy !!!!!