124
110

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Xcodeの検索機能を有効利用して開発効率を上げよう

Last updated at Posted at 2016-05-06

Xcodeを使って開発する上で、多くの方が下記の検索機能を使ったことがあると思います
スクリーンショット 2016-05-06 11.40.00.png

規模が小さいうちはテキスト検索だけで充分だったりしますが、大規模なプロジェクトになると検索1つするにしても意図していない検索結果が沢山出てしまったりと、痒いところに手が届かないと思ったことはないでしょうか
そこで本記事ではXcodeの検索を有効利用するために幾つか検索Tipsを紹介しようと思います

Insert Pattern

まずはInsert Pattern検索です
検索窓の虫眼鏡マークをクリックするとInsert Patternという項目が表示されます
スクリーンショット 2016-05-06 11.45.26.png

Insert Patternをクリックすると、どのパターンの検索をするか項目が出てきます
スクリーンショット 2016-05-06 11.46.16.png
検索パターンの種類は上記画像の通りTabLine BreakAny CharactersAny Word CharactersNon-ASCII CharactersWord BreakWhite SpaceDigitsHexadecimal DigitsEmail AddressWeb AddressIP Addressがあります

URLの定義を検索する場合を想定してURLを選択してみます
スクリーンショット 2016-05-06 11.46.33.png
すると検索窓にURLという項目が追加され、実際に検索を実行してみるとURLの定義っぽいところを検索結果として表示してくれます
スクリーンショット 2016-05-06 12.43.07.png

ソースコード上にURLを定義する時は文字列リテラルとして定義することが多いと思います
文字列リテラルのURLを検索したい場合には検索窓に表示されたURL項目をダブルクォーテーションで囲んであげれば良いです
スクリーンショット 2016-05-06 12.44.01.png
これで文字列リテラルとして定義されているURLの定義っぽいところを検索結果として表示してくれます

Definitions

プロトコル、クラス、メソッド、変数など定義部だけを対象として検索したい場合に有効なのがDefinitionsです
使い方はFindTextになっている部分をDefinitionsに変更するだけです
スクリーンショット 2016-05-06 12.51.19.png

よく、シングルトンパターンで用いられる名前であるshared**という名前の定義部分を検索したい場合、Text検索でshared**を検索しても、当然ながらシングルトンを利用する側のコードやコメント部分も対象として検索するため、期待している検索結果よりも大分ノイズが入ったものになってしまいます
スクリーンショット 2016-05-06 13.45.15.png

Definitionsを使えば定義部分だけが検索結果として表示されます
スクリーンショット 2016-05-06 13.47.17.png

検索スコープを絞る

検索窓の下にあるIn My Scopeと記載されている部分をクリックすることで検索するスコープを設定することができます
スクリーンショット 2016-05-06 14.54.07.png

WORKSPACEと記載されているセクションで、どのプロジェクトのどこのフォルダ配下を検索スコープにするかなどを指定できます
スクリーンショット 2016-05-06 12.52.38.png

SEARCH SCOPESセクションのNew Scope..をクリックするとスコープの条件を指定するWindowが表示されます
スクリーンショット 2016-05-06 14.55.29.png

このWindowでは検索するファイルタイプなどを指定できます
スクリーンショット 2016-05-06 12.53.56.png

上記の画像を見てわかるように現在ではファイルTypeにSwiftがないので、Swiftファイルを検索スコープにしたい場合は、Typeではなく、Path Extensionswiftを指定することで実現可能です
スクリーンショット 2016-05-06 12.55.07.png

Call Hierarchy

あるメソッドや変数がどこから呼ばれているかなど知りたい場合に使えます
使い方はDefinitionsと同じく、FindのデフォルトでTextになっている部分をCall Hierarchyを指定するだけです
スクリーンショット 2016-05-06 15.04.21.png

下記はgetExampleUserResultSetというメソッドを呼び出している箇所が検索結果として表示されています
スクリーンショット 2016-05-06 15.09.46.png

また、Hierarchyは検索からだけでなく、実際のコードファイルで検索対象にしたいメソッドを選択して、右クリックしてFind Call Hierarchyから同じことができます
スクリーンショット 2016-05-06 15.12.59.png

コードから選択することでクラス名.メソッド名が検索対象になるのでより詳細です
スクリーンショット 2016-05-06 15.15.02.png

ファイル検索

Command + Shift + O のショートカットで検索窓が表示されます
スクリーンショット 2016-05-06 15.16.42.png

ここでプロジェクトからファイルやシンボル名でインクリメンタル検索し,マッチしたものを即座に開くことができます
スクリーンショット 2016-05-06 12.55.50.png

Command + Shift + J のショートカットで、現在Xcode上で開いているファイルをプロジェクトナビゲーターで選択した状態にできます

参考

Xcode Search: the Hidden Gems

124
110
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
124
110

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?