$shibayu36->blog;

株式会社はてなでエンジニアをしています。プログラミングや読書のことなどについて書いています。

今見ているファイル内をSearchしやすくするVSCode拡張を作りました

今見ているファイル内をSearchしやすくする「Search in Current File」というVSCode拡張を作ったので紹介です。

背景

Emacsにはhelm-occurという拡張があって、インクリメンタルサーチからスムーズにファイル内の検索結果一覧を見れる拡張がある。これが現在のファイルを探索するのに非常に便利で愛用していた。

VSCodeでも同じようなことが出来ないかなと思ったので、勉強がてら拡張を作ることにした。

使い方

Search in Current File - Visual Studio Marketplaceからインストールすると、「Search in Current File」というコマンドが追加される。これを実行するとFindからスムーズにSearchに移行し、現在カーソルのあるファイルのみのマッチ結果を出すことが出来る(Searchパネルのfiles to includeに自動で現在のファイルがフィルインされる)。

デモ

また以下のようなキーボードショートカットを設定しておくと便利。Find中にctrl-oを押すだけですぐさまSearchに移行する事ができる。もちろん別のキーボードショートカットを設定しておくことでFind中以外でも現在ファイルからSearch出来る(範囲選択していたらクエリに自動でフィルインされる)。

// Only type ctrl+o when using Find.
// the query in Find is filled into the query in Search.
{
  "key": "ctrl+o",
  "command": "search-in-current-file.searchInCurrentFile",
  "when": "editorFocus && findInputFocussed"
},
{
  "key": "ctrl+cmd+o",
  "command": "search-in-current-file.searchInCurrentFile",
  "when": "editorFocus"
}

技術的Tips

まとめ

今回は、今見ているファイル内をSearchしやすくするVSCode拡張を作ったので紹介しました。VSCode拡張の基本的な作り方が把握できたのが良かったです。

参考資料