コード補完
このセクションでは、コーディングプロセスのスピードアップを可能にするコンテキスト対応コード補完のさまざまなテクニックについて説明します。
基本補完
基本コード補完は、可視性スコープ内で型、インターフェース、メソッド、キーワードの名前を完成させるのに役立ちます。
コード補完を呼び出すと、GoLand はコンテキストを分析し、現在のキャレット位置から到達可能な選択肢を提案します (提案にはライブテンプレートも含まれます)。
基本コード補完がフィールド、パラメーター、変数宣言の一部に適用されている場合、GoLand は項目型に応じて可能な名前のリストを提案します。
基本補完を呼び出す
デフォルトでは、GoLand は入力時にコード補完ポップアップを自動的に表示します。あるいは、Ctrl+Space を押すか、メインメニューから
を選択することもできます。![基本補完 Basic completion](https://resources.jetbrains.com/help/img/idea/2024.1/go_completion_for_interfaces_and_structs.png)
関数コード補完
関数補完を呼び出す
特定のタイプの値に適した関数を表示して補完するには、Ctrl を押しながら Space を 2 回押します。
例: 文字列型の
t
変数があります。t.
と入力し、Ctrl を押しながら Space を 2 回押すと、string
型を最初の引数として受け入れる関数の一覧が表示されます。
型一致補完
型一致補完を呼び出す
スマート型一致コード補完は候補リストをフィルタリングし、現在のコンテキストに該当するタイプのみを表示します。型一致補完を呼び出すには、コードの入力を開始して Ctrl+Shift+Space を押します。あるいは、メインメニューから を選択します。次のアニメーションは、基本補完と型一致補完の違いを示しています。
ステートメント補完
文の補完を使用して、構文的に正しいコード構成体を作成できます。必要な構文要素(括弧、中括弧、セミコロン)を挿入して、次のステートメントの入力を開始できる位置に移動します。ステートメント補完を起動するには、コード構成体の入力を開始して Ctrl+Shift+Enter を押します。
![Complete the statement](https://resources.jetbrains.com/help/img/idea/2024.1/go_complete_statement.png)
ヒッピー補完
ヒッピー補完は、目に見える範囲でテキストを分析し、現在のコンテキストから提案を生成する補完エンジンです。それは現在開いているファイルのどれからでもどんな単語でも完成させるのに役立ちます。
キャレットの文字列を既存の単語に展開する
最初の文字列を入力し、次のいずれかを実行します。
Alt+/ を押すか、
を選択して、キャレットの前に一致する単語を検索します。Alt+Shift+/ を押すか、
を選択して、キャレットの後ろにある他の開いているファイルで一致する単語を検索します。
提案された最初の値が表示され、プロトタイプがソースコードでハイライトされます。
提案を受け入れるか、Alt キーを押しながら希望の単語が見つかるまで / を押し続けます。
後置コード補完
修正後テンプレートでは、ドットの後の後置、式のタイプ、そのコンテキストに基づいて、すでに入力されている式を別の式に変換できます。GoLand には、他のプログラミング言語にも使用できる一連の定義済みの修正後の補完テンプレートが含まれています。これらのテンプレートをコピー、有効化、無効化することができます。
後置の補完を有効にして設定する
設定ダイアログ (Ctrl+Alt+S) で、 を開き、後置補完を有効にするチェックボックスを選択します。
接尾辞テンプレートの展開に使用する Tab、Space、Enter を選択します。
選択した言語の特定の接尾辞テンプレートを有効 / 無効にします。
後置でステートメントを変換する
式を入力し、ドットの後に接尾辞を入力します(例: .if:
)。
最初の式は if
ステートメントでラップされます。
設定 Ctrl+Alt+S のエディター | 一般 | 後置補完ページで、特定の接尾辞補完テンプレートを無効にすることができます。
Tab、Space、Enter を選択して、接尾辞テンプレートを展開できます。
たとえば、長いキーを短いキーに置き換えるか、適用可能な式の種類のリストを展開するなど、あらかじめ定義されたポストフィックステンプレートを編集できます。
カスタム後置テンプレートを作成する
Ctrl+Alt+S を押して設定を開き、
を選択します。ツールバーの追加ボタン(
)をクリックします。
テンプレートを呼び出すシンボルの組み合わせであるキーを指定します。
新しいテンプレートを適用できる式の種類を選択し、ターゲットの式を次の形式で入力します:
$EXPR$ <target_expression>
、たとえば$EXPR$ != nil
テンプレート内では、
$EXPR$
と$END$
という 2 つの定義済み変数を使用できます。$EXPR$
はドットの前の式をキャプチャーします。$END$
は、テンプレートが展開された後のキャレットの位置を定義します。
一番上の式に適用チェックボックスは、スコープを無視してテンプレートを式全体に適用します。そのため、毎回テンプレートのスコープを選択する必要はありません。
タグと属性の補完
GoLand は、HTML/XHTML、XML/XSL、JSON のタグと属性の名前と値を自動的に補完します。
タグと属性名の補完は、ファイルが関連付けられている DTD またはスキーマに基づいています。スキーマ関連がない場合、GoLand はファイル内容(タグと属性名とその値)を使用して入力を完了します。
![Go テンプレートのサポート Support for Go templates](https://resources.jetbrains.com/help/img/idea/2024.1/go_support_of_html_xml.png)
機械学習による完了ランキング
GoLand を使用すると、他のユーザーが同様の状況で行った選択に基づいて、補完の提案に優先順位を付けることができます。
ML 完了メカニズムは新しい要素を追加しませんが、コードから取得した要素を順序付けます。データはどこにも公開されていません。ローカルで収集されます。
ML 完了を有効にする
Ctrl+Alt+S を押して設定を開き、エディター | 一般 | コード補完を選択します。
機械学習完成度ランキングで、機械学習に基づいてコード補完の候補を並び替えオプションを有効にし、ML 補完を使用する言語を選択します。
関連性マーカーを有効にする
Ctrl+Alt+S を押して設定を開き、エディター | 一般 | コード補完を選択します。
次のオプションを有効にします。
補完ポップアップで順位の変更箇所に印を付ける :
および
アイコンを使用して、提案の関連性が増加しているか減少しているかを示し、その結果、提案が候補リストを上下に移動したことを示します。
補完ポップアップで最も関連性の高い項目に印を付ける :
アイコンを使用して、リストで最も適切な提案を示します。
行全体コード補完
行全体コード補完は、エディターにコードを入力すると提案を表示します。提案は灰色の斜体で表示されます。提案を受け入れるには、Tab を押します。
![行全体完成 Full line completion](https://resources.jetbrains.com/help/img/idea/2024.1/go_full_line_completion.png)
IDE はすべての提案をフォーマットし、必要な括弧と引用符を追加します。
サポートされている各言語には、独自のコードチェックセットが提案されています。未解決の参照チェックなどの最も基本的なチェックは、ほとんどの言語で利用可能であり、IDE が存在しない変数やメソッドを提案しないことを保証します。
行全体補完は自動インポートをサポートし、スマートフィルタリングを使用して、明示的にキャンセルされる傾向のある提案や、承認された直後に削除される傾向のある提案が表示されないようにします。
行全体コード補完の使用を開始する前に、次の点に注意してください。
行全体コード補完は現在リモート開発ではサポートされていません。
行全体コード補完には、64 ビットプロセッサーまたは AVX2(英語) をサポートする x86 プロセッサーを搭載したコンピューターが必要です。
行全体コード補完プラグインを有効にする
この機能は、デフォルトで GoLand にバンドルされて有効になっている行全体コード補完(英語)プラグインに依存しています。関連する機能が利用できない場合は、プラグインを無効にしていないことを確認してください。
Ctrl+Alt+S を押して設定を開き、
を選択します。インストール済みタブを開き、行全体コード補完プラグインを見つけて、プラグイン名の横にあるチェックボックスを選択します。
行全体補完を有効にする
Ctrl+Alt+S を押して設定を開き、エディター | 一般 | コード補完を選択します。
機械学習支援による補完セクションで、行全体の提案を有効にするを選択し、行全体補完を使用する言語を選択します。
Go 用モデルは GoLand にバンドルされています。
一部の言語(CSS や Javascript/Typescript など)では、補完を有効にするために「モデルのダウンロード」をクリックしてモデルを手動でダウンロードする必要があります。
行全体補完は、コンピューターにダウンロードされたモデルを使用してローカルで実行されます。これらのモデルを更新する方法は、モデルのダウンロードドロップダウンリストから選択できます。モデルを自動または手動で更新したり、通知で更新を確認したりできます。
行全体補完を構成する
提案の上にマウスを移動します。
表示されるポップアップで、
をクリックし、提案を受け入れるために使用するキー(例: Right)を選択します。
独自のショートカットを割り当てるには、カスタムを選択します。
行全体補完設定にすばやくアクセスするには、ポップアップで
をクリックします。
コード補完設定の構成
補完オプションを設定する
Ctrl+Alt+S を押して設定を開き、
を選択します。候補リストを自動的に表示するには、入力時に候補を表示するチェックボックスを選択します。チェックボックスがオフの場合は、基本補完の場合は Ctrl+Space を押し、型一致補完の場合は Ctrl+Shift+Space を押して、コード補完を明示的に呼び出す必要があります。
また、単一の候補を自動的に挿入にある補完タイプを選択するだけで、自動的に候補を挿入することもできます。
候補を関連性で並べ替えるのではなく、アルファベット順に並べ替えるには、候補をアルファベット順に並べ替えチェックボックスをオンにします。
候補リストの右下隅にある
または
をクリックして、これらのモードを切り替えることもできます。
候補リストをスクロールすると、その項目ごとにドキュメントのポップアップが自動的に表示されるようにするには、ドキュメントのポップアップを表示するオプションを選択します。右側のフィールドで、ポップアップが表示されるまでの遅延 (ミリ秒単位) を指定します。
補完のヒントとテクニック
補完ポップアップから完了設定を開く
補完ポップアップから直接コード補完設定にすばやくアクセスできます。
補完ポップアップの
アイコンをクリックして、コード補完設定を選択します。
その後、Ctrl+Alt+S の設定のエディター | 一般 | コード補完ページが開きます。
候補リストを絞り込む
単語の任意の部分 (途中の文字でも) を入力するか、ドット区切り文字の後にコード補完を呼び出すことで、候補リストを絞り込むことができます。GoLand は、任意の位置に入力した文字を含む候補を表示します。
これはワイルドカードの使用を不要にします:
CamelCase または snake_case 名の場合は、最初の文字のみを入力してください。GoLand は自動的に頭文字を認識して照合します。
提案を受け入れる
次のいずれかの方法で、リストから提案を受け入れることができます。
Enter を押すか、リスト項目をダブルクリックして、キャレットの左側に挿入します。
Tab を押して、キャレットから右にある文字を置き換えます。
Ctrl+Shift+Enter を使用して、現在のコード構成を構文上正しいものにします(括弧のバランス、欠落している中括弧とセミコロンの追加など)。
特定のキーとカスタム文字を使用して、選択した補完候補を受け入れることもできます。これらの機能を有効にするには、設定 Ctrl+Alt+S のエディター | 一般 | コード補完ページに移動し、次の操作を行います。
特定のキーを使用するには、スペース、ドット、その他のコンテキスト依存キーを押して、選択した候補を挿入しますチェックボックスをオンにします。これらのキーは、言語、コンテキストなどによって異なります。
カスタム文字も使用するには、完了を受け入れるための追加文字フィールドに文字を入力します。
リファレンスを表示する
候補リストのエントリを選択するときに Ctrl+Shift+I を押すと、クイック定義ビューを使用できます。
候補リストのエントリを選択するときに Ctrl+Q を押すと、クイック情報ビューを使用できます。
コード階層を表示する
候補リストからエントリを選択すると、コード階層を表示できます。
Ctrl+H - 型階層の表示
Ctrl+Shift+H - メソッドの階層を表示します。
構造体フィールドを埋める
新しい構造体を作成すると、その構造体のフィールド名を自動的に生成できます。このアクションは、汎用構造体に対して機能します。
すべてのフィールドを埋めるインテンションアクションを呼び出すと、IDE は自動生成された XXX_
で始まるプロトコルバッファフィールドを無視します。これらのフィールドは、完了を 2 回目に呼び出した後にのみ表示されます。
構造体名の入力を開始し、補完リストから選択します。
構造体の中括弧の間にキャレットを置きます。
Ctrl+Space を押します。または、Alt+Enter を押します。
以下のオプションから選択してください。
すべてのフィールドを埋める : 現在の構造体に属するすべてのフィールドの値を生成します。
すべてのフィールドを再帰的に埋める : 現在の構造体型に属するすべてのフィールドと、他の構造体型へのすべてのポインターの値を再帰的に生成します。
記入欄 : 追加するフィールドを選択できるフィールドの選択ダイアログを表示します。再帰を選択して、関連するすべての構造体からフィールドを解析します。複数行を強制するチェックボックスをオフにして、すべてのフィールドを 1 行で表示します。フィールドの選択ダイアログで、Ctrl を押して、追加するフィールドをクリックします。
OK をクリックします。
日付と時刻をフォーマットする
タイムパッケージ(英語)は、
Time.Format
およびtime.Parse
で使用できる事前定義されたレイアウトを使用します。レイアウトで使用される参照時間は、特定の時間Mon Jan 2 15:04:05 MST 2006
です。つまり、独自のフォーマットを定義するには、基準時間がどのようにフォーマットされているかを書き留める必要があります。GoLand では、Ctrl+Space を押すと、ISO-8601 の時間要素とデータ要素のプレースホルダーが表示されます。コード補完は、文字列リテラルの外側の標準時間レイアウトも提案します。
トラブルシューティング
コード補完が機能しない場合は、次のいずれかの理由が考えられます。
省電力モードがオンです( )。これをオンにすると、エラーハイライト、オンザフライインスペクション、コード補完などのバックグラウンド操作を排除してラップトップの電力消費を最小限に抑えられます。
補完候補リストに表示する型と関数を含むファイルは、プレーンテキストファイルとしてマークされます。
補完候補リストに表示する関数を含む外部ライブラリは、依存関係またはグローバルライブラリとして追加されません。
補完オプションの収集に時間がかかりすぎると、コード補完ポップアップが自動的に表示されないことがあります。例: コンピューターが別のタスクでビジー状態の場合。この場合、Ctrl+Space ホットキーを介して手動で補完ポップアップを有効にすることができます。
関連ページ:
![](https://pleiades.io/icons/goland.png)
ライブテンプレート
ライブテンプレートを使用して、ループ、条件、宣言、print ステートメントなどの一般的な構造をコードに挿入します。コードスニペットを展開するには、対応するテンプレートの省略形を入力してを押します。を押し続けると、テンプレート内の 1 つの変数から次の変数に移動します。を押して、前の変数に移動します。ライブテンプレートを挿入するテンプレートを展開する場所にキャレットを置きます。テンプレートの省略形を入力し、呼び出しキーを押します(通常はデフォルトで)。または、メニューでをクリックして候
![](https://resources.jetbrains.com/help/img/idea/2024.1/reference-nonexist-url-xml.png)
XML スキーマと DTD の参照
XML ファイルが外部 XML スキーマ(XSD)または DTD ファイルを参照している可能性があります。<root xmlns="http://www.example.org" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.example.org/xsds/example.xsd"> または <!DOCTYPE root SYSTEM "http://www...
![](https://resources.jetbrains.com/help/img/idea/2024.1/remote_development_architecture_changed.png)
リモート開発の概要
リモート開発では、シンクライアントで IDE インターフェースを使用しながら、強力なリモートホストを使用して、プロジェクトのチェックアウトとロード、インデックス作成、分析、ビルド、実行、デバッグ、コードのテストを行うことができます。リモートホストは、ソースコードをホストし、ヘッドレス GoLand インスタンスを実行する物理(Linux)または仮想マシンです。ラップトップなどのシンクライアントはホストに接続し、すべての IDE 機能へのフルアクセスを透過的に提供します。アーキテクチャと定義:こ...
![](https://resources.jetbrains.com/help/img/idea/2024.1/go_inline_generated_code.png)
エディターで AI を使用する
エディターでコードを生成する:コードを生成し、エディターでプロンプトを直接使用します。変更したいコードの一部を選択するか、エディター内の任意の場所にキャレットを置いて、を押します。または、右クリックしてコンテキストメニューを開き、AI アクションを選択してからコードの生成を選択します。入力フィールドにプロンプトを入力し、を押します。生成されたコードは別の AI の差分タブで開きます。生成が完了するまで待ちます。右上隅で、提案された変更を確認する方法を選択します。統合ビューでは、結果が 1 つ...
![](https://resources.jetbrains.com/help/img/idea/2024.1/go_quickDefinitionLookup.png)
定義と型定義
GoLand では、構造体、インターフェース、メソッド、関数などのシンボルがプロジェクトのどこでどのように定義されているかを確認できます。この目的のために、IDE はクイック定義ポップアップを備えています。キャレットでシンボルの定義を表示エディター内のシンボルにキャレットを置き、を押します (またはメインメニューでクリックします)。あるいは、キーを押したまま、任意の記号の上にマウスを置きます。GoLand はシンボルをリンクとして表示し、その定義をツールチップに表示します。このリンクをクリ...
![](https://resources.jetbrains.com/help/img/idea/2024.1/go_bookmarks_tool_window.png)
ブックマーク
大規模なプロジェクトで作業する場合、ファイルやフォルダーの検索には時間がかかる場合があります。そのような場合、GoLand はブックマークを備えています。必要なコード行をブックマークして、見つけやすくすることができます。他のプロジェクトアイテムよりも頻繁に必要なファイルやフォルダーをブックマークすることもできます。すべてのブックマークはブックマークツールウィンドウのリストにグループ化されており、メインメニューからを選択するか、を押すと開くことができます。ツールウィンドウには、コードにブレークポ...