コード補完(Code Completion)と言えば、入力中の文字の後に続く文字列を予想し自動入力してくれる形が一般的だが、一部のIDEでは入力中の文字より前の部分に対して作用する後置補完(Postfix Code Completion)という機能が存在する。個人的に大分活用している機能なのだが、周りを見ていると意外と知名度が低そうなので、普及のためここに魅力を記しておきたい。
前述の通り、後置補完では入力中の文字よりも前の部分に対してコードの補完が行われる。
len(images) == 0
例えば、このようなコードがあったとする。これに対して「.if」という後置補完のキーワードを入力する。
if len(images) == 0 { }
すると、このようなたちで後からifブロックが追加される。利用可能な補完パターンはIDE、言語によって異なるが、例えばAndroid Studioの場合は下記のようなパターンを利用できる。
この機能、実は英語圏のエンジニア以上に日本語が母国語のエンジニアにとって嬉しい機能だと考えている。
例えば、配列が空(要素数がゼロ)だった場合にすぐにリターンする、というような処理を記述する場合について考えてみる。
if len(images) == 0 { return nil }
素直にプログラムを書くとこのような形になる。このプログラムは英語的にはとても読みやすい。If the length of images is 0, return nil.
人によって思考パターンは違うかもしれないが、僕はプログラムを書く時は日本語的な考え方が最初に出てきてしまう。
- 配列が空だったらすぐにリターンする
- 配列の要素数=0だったらリターンする
- もし、長さ of 配列 == 0だったら、リターンする
- if len(images) == 0 { return }
といった形で、思考を実際のプログラムに落とし込むまでに要素の並び替えが発生する。
後置補完の仕組みを使うと、この並び替えをしなくてもコードを書くことができる。
配列(images)の長さ(.len)が0(==0)だったら(.if)リターンする(return)
日本語的な最初の思想から「並び替え」をすることなく、コードに落とし込むことができる。
些細なことに思えるかもしれないが、このような「要素の並び替え」もしくはカーソル移動はコーディングの作業の中で頻繁に発生するもので、意外と脳を疲弊させるもので、実際後置補完を使い始めるようになってからすっかり手放せなくなってしまった。
最後に、この後置補完という機能は言語/IDEによって使えたり使えなかったりする。最近自分が使っているVisual Studio Code + Golangの組み合わせでは残念ながら使用する事ができなかったので、自分で作ることにした。完成までの道のりはなかなか長そうだが、地道に実装していこうと思っているので、もしよかったらどうぞ。
github yokoe/vscode-postfix-go
「Postfix Code Completion コードの後置補完」への1件のフィードバック