統合開発環境(以下、IDE)を使っていると、当たり前のように感じる補完機能。
数文字打てば、入力しようとしている言葉を補完してくれます。
これをさらにグレードアップさせてみませんか?
![とある会社員](https://pursue.fun/wp-content/uploads/2020/02/gregory-hayes-h5cd51KXmRQ-unsplash-1-e1580626897932.jpg)
え、今の補完機能で十分だけど?
![僕](https://pursue.fun/wp-content/uploads/2020/02/child-2800835_1920.jpg)
もっと便利に補完してくれたら、
嬉しくないですか?
codotaとは
イスラエルの「codota」という会社が開発しているツールです。
「AIが既存コードを元に学習した、コード補完ツール」という特徴があります。
![上司](https://pursue.fun/wp-content/uploads/2020/02/gregory-hayes-h5cd51KXmRQ-unsplash-1-e1580626897932.jpg)
プログラマーも遂に、AIに仕事を奪われるのか……。
![僕](https://pursue.fun/wp-content/uploads/2020/02/child-2800835_1920.jpg)
そこまではできません!
仕事奪われることもないので、ご安心を。
codotaの良いところ
普通の補完機能とは異なります。
codotaは、あらゆるプログラマーのコードを参考にし、コードブロックを補完してくれるんです。
いや「補完」を通り越して「提案」してくれます。
GitHubやStackOverflowなど、ネット上に公開されているコードを元に機械学習を実施しています。
コード単体だけでなく、コードブロック単位で認識するレベルまで学習することに成功したためです。
対応言語
以下のようになっております(2020/05/13時点)。
Java、Javascript、TypeScript、Python、PHP、Go、Ruby、C、C ++、Rust、C#、その他ほとんどすべて
まぁ、ほとんどイケちゃうっぽいです。
3年前の2017年は、Javaのみでした。
![ジョージ・眉間シワ男](https://pursue.fun/wp-content/uploads/2020/02/angry-man-274175_1280-e1580547343827.jpg)
アップデートがすごく早い(小並感)。
対応IDE
InteliJIDE、WebStorm、AndroidStudio、Eclipceです。
VisualStudioCodeや、SublimeText、Atomなどは「TabNine」というものになるようです。
導入方法
めちゃくちゃ簡単でした。
今回は、私が使い慣れている AndroidStudio に導入してみようと思います。
その他IDEは、こちらの公式サイトで導入方法を解説しています。
Preferencesを開く
AndroidStudioのメニューから、Preferencesを開きます。
インストールする
Pluginタブを選択した状態で、「codota」と入力し検索をします。
緑色の「Install」を選択し、インストールします。
インストールが終わると、「Restart IDE」という表示に切り替わります。
IDEを再起動しないと使えないので、「Restart」を押します。
AndroidStudioを再起動する
再起動すると、下のような画像が表示されます。
青いところを押せば、ダイアログが消え、インストール完了です。
![僕](https://pursue.fun/wp-content/uploads/2020/02/child-2800835_1920.jpg)
導入は、たったのこれだけ!
実際に使ってみた
簡単なチュートリアルがあったので、ちょっとやってみました。
上2つがcodotaの候補です。
パーセンテージは、そのクラスがよく使用されている割合(だと思います)。
ちなみに、クラスやメソッドなどで右クリックし、一番下の「Get relevant examples」を選択すると、使用例などを見ることができます。
これが一番の強みだと思います。
まとめ
![僕](https://pursue.fun/wp-content/uploads/2020/02/child-2800835_1920.jpg)
これ、学習に便利そうかも……!
業務だけでなく、学習面でも役立てることができそうです。
日本国内ではまだまだスポットが当たっていないサービスですが、これから注目されそうですね。
個人的には、Xcodeにも対応して欲しいと感じました。