地味に便利なものの見方。
ブラウザでgithubやQiitaを見た場合のページ内検索でも応用できます。
早速、"n hogehuga"や"s hogehuga"で検索してみましょう。
結論
対象となる文字列や行の"文字列としてのフォーマット"を意識して分解すると、簡単に絞り込み出来るようになる。
関数、メソッド定義を探す場合
頭に"n "を付けて探す。
function hogehuga()
{
}
// 使用箇所にはマッチしない。
hogehuag();
// "n hogehuga"で検索すれば一発で定義箇所にマッチする。
クラス定義を探す場合
頭に"s "を付けて探す。
class Hogehuga
{
}
// 使用箇所にはマッチしない。
$hogehuga = new Hogehuga;
// "s Hogehuga"で検索すれば一発で定義箇所にマッチする。
余談
次のコーディングスタイルを取ると定義箇所と使用箇所の切り分けが簡単にできるようになる。
具体的にはgrepで使用箇所一覧を作る際に極めて強力な状況を作り出せる。
但し、現在はPSR-2が主流なためあまり使える機会は無いと考えられる。
関数、メソッドを探す場合
頭に"n "を付けて探す。
// 定義では関数名とパーレンの間にスペースを入れる。
function hogehuga () {
}
// 使用時は関数名とパーレンの間にスペースを入れない
hogehuga();
このようにすると、"n hogehuga ("で検索すれば定義箇所が、"hogehuga("で検索すれば使用箇所を綺麗に特定できる。
クラスを探す場合
// 定義ではブレス前の改行を行わず、スペースを入れる
class Hogehuga {
}
// 使用時はクラス名の後にスペースを入れない
$hogehuga = new Hogehuga;
$hogehuga = new Hogehuga();
このようにすると、"s Hogehuga "で検索すれば定義箇所が、"w Hogehuga"で検索すれば使用箇所を綺麗に特定できる。
ブレスの前にスペースを入れる事により、以降にextendsやimplementsが続いても変わらずマッチするようになる。