[[📒Productivityを上げるために大切な100のこと]] No68. 🥉
----
コンピュータを使って文章やソースコードを書いたことのある人なら、誰しも補完(オートコンプリート)のお世話になったことがあるだろう。疑うことなく非常に便利な機能である。
## オートコンプリートに求めるもう1歩
オートコンプリートは素晴らしい機能だが1つだけ不満点があった。**表示される候補の中から欲しいものを選択しなければならない**ことだ。
『何を言っているのか? それは当たり前だろう』と思うかもしれない。補完候補が定まっていない場合はたしかにそうだ。一方、**補完候補が自分の中で定まっているとき、それは無駄な時間なのだ。**
## 補完候補が定まっているとき
補完候補が定まっているときとはどういうときか。想定するシーンはいくつかある..が、私が最も多く遭遇するのは==入力したい文字列が視界に定まっているとき==だ。たとえば以下のソースコードがあったとする。
```ts
function sum() {}
function summarize() {}
function sumHogeAndHoge() {}
function main() {
// ここにカーソルがあるとする
}
```
`main`関数の中で`sumHogeAndHoge`を呼び出したいとき、`sum`と入力して`sum`や`summarize`といった候補が表示されたら億劫だろう。『私は`sumHogeAndHoge`を入力したいと分かっているのに..!!』と思わずにはいられない。
![[Pasted image 20211129133742.png]]
こんなときは[[JetBrains IDE]]の[[Hippie completion]]が便利だ。
## [[Hippie completion]]
[[Hippie completion]]は、現在ファイルのカーソル位置から前方または後方に出現するワードを近い順に補完する機能だ。[[Hippie completion]]を使うとカーソル直前または直後で目に入ったワードを一瞬で入力できる。
![[2021-11-29.gif]]
デフォルトのショートカットキーは`Alt + /`だが、私は`Shift + Space`にしている。この辺は好みの問題なので押しやすいキーにするのがいいだろう。複数回キーを入力すると前または後ろの候補が次次と表示される。
また、[[VSCode]]を利用しているなら[[Simple Autocomplete]]を使うのがいいだろう。