AWS Cloud9 用 CodeWhisperer の概要 - AWS Cloud9

AWS Cloud9 用 CodeWhisperer の概要

この概要には、CodeWhisperer のユーザーアクションと、AWS Cloud9 でコーディング中に CodeWhisperer を利用する一般的な方法のリストが記載されています。

ユーザーアクション

AWS Cloud9 でコーディングを行う場合、これらのユーザーアクションは CodeWhisperer に関連付けられています。

アクション キーボードショートカット

CodeWhisperer を手動でトリガーする

MacOS: Option + C

Windows: Alt + C

Linux: Alt + C

レコメンデーションを受け入れる

Tab、Enter、またはクリック。

レコメンデーションを拒否する

ESC、バックスペース、または入力を続けて文字が一致しなくなり次第、推奨は表示されなくなります。

ユースケース

ここでは、AWS Cloud9 プロジェクトでの作業中に CodeWhisperer を利用する一般的な方法を紹介します。

例: 単一行のコード補完

単一行のコードを入力し始めると、CodeWhisperer は現在と以前の入力に基づいて提案を行います。

以下の Java での例では、ユーザーは既存のクラスに public の文字列を入力します。

入力に基づき、CodeWhisperer はメインメソッドの署名の提案を生成します。


                        単一行補完機能の例。

例: ブロック補完

ブロック補完は、if/for/while/try コードブロックの補完に使用されます。

以下の Java での例では、ユーザーは if ステートメントの署名を入力します。ステートメントの本文は CodeWhisperer からの提案です。


                        ブロック補完機能の例。

例: コメントからの完全な関数の生成

CodeWhisperer は、入力されたコメントに基づいて関数全体を生成できます。コメントを完成させると、CodeWhisperer は関数の署名を提案します。提案を承認すると、CodeWhisperer は自動的にカーソルを関数の次の部分に進めて提案を行います。提案の合間であっても、追加のコメントやコード行を入力すると、CodeWhisperer は入力に基づいてリファクタリングします。

以下のリストでは、CodeWhisperer がどのように提案を行い、関数を作成するプロセス全体を進めるかについての例を挙げます。

  1. 以下の Java での例では、ユーザーがコメントを入力します。CodeWhisperer は関数の署名を提案します

    ユーザーがその提案を承認すると、CodeWhisperer は関数本体を提案します。

    
                                コメントから生成された関数の例。
  2. 下の画像では、ユーザーは CodeWhisperer からの提案を受け入れる前に、関数本体にコメントを入力します。次の行で、CodeWhisperer はコメントに基づく提案を生成します。

    
                                既存のコードのブロック内のコメントから生成された関数の例。

例: 単一行のコメント補完

以下の Java での例では、は、ユーザーがコメントの入力を開始すると、CodeWhisperer がコメントを完成させるための提案を生成します。


                        コメント補完の例。

例: ドキュメント文字列と Javadoc の補完

以下の例は、Oracle のウェブサイトの例から引用しています。

以下の Java での例では、ユーザーがドキュメント文字列を入力します。CodeWhisperer はドキュメント文字列を処理する関数を提案します。


                        Javadoc に基づくコード補完の例。

コードリファレンスの追跡

コード生成とトレーニングデータの例との類似性が十分である場合、CodeWhisperer はそのコードへの参照を提供できます。これにより、類似したコードをより簡単に見つけて確認し、プロジェクトでそのコードを使用するかどうかを決定し、適切と思われるコードの属性とライセンスを取得できます。

サポートされているプログラミング言語

CodeWhisperer は、以下の言語をサポートします。

  • Python

  • Java

  • JavaScript