YAML
GoLand は YAML ファイル( .yml 、 .yaml )の操作を有効化し、次の機能をサポートします:
構文ハイライト
カラー設定は、 設定 ダイアログ (Ctrl+Alt+S) の エディター | カラースキーム | YAML ページで変更できます。
YAML に関連するコードスタイル設定には、 設定 ダイアログ (Ctrl+Alt+S) の エディター | コードスタイル | YAML ページでアクセスできます。
GoLand は、重複したキー、YAML ドキュメント内の未使用の アンカーなどを検出します。
例えば、 JSON スキーマ を持つ YAML ドキュメントでコード補完を利用したり、アンカーエイリアスを補完したりできます。
例えば、 アンカーとエイリアス間を移動できます。
名前変更リファクタリング (例えば、 アンカーとエイリアスの場合)
GoLand は入力時にインデント、シーケンスマーカー、角括弧、引用符を維持します。
エディターで利用可能な YAML 固有の機能をいくつか見てみましょう。
アンカーとエイリアス
GoLand は、アンカーとエイリアスの操作をサポートしています。 YAML ファイルで新しいアンカーを指定すると、エディターはこのアンカーがどのノードでも使用されていないという警告を表示します。

エディターを使用すると、このアンカーのエイリアスを 完成させることができます。

アンカーの使用箇所をすばやく見つけるには、アンカー上にキャレットを置き、 Ctrl+B を押します。

GoLand は、アンカーとエイリアスに対する 名前変更リファクタリングをサポートしています。アンカー上にキャレットを置き、 Shift+F6 を押してください。 または、アンカーを右クリックして を選択します。

構造 ツールウィンドウ (Alt+7) を使用して、YAML ファイル内をすばやく移動します。 構造 ツールウィンドウで再利用されたアンカーの要素を表示または非表示にするには、 use エイリアスサブツリー をクリックします。

JSON スキーマ
GoLand は、JSON スキーマを利用した YAML ファイルのコード補完およびインスペクションをサポートしています。 GoLand はスキーマを自動的に(ファイルの場所や構造に基づいて)推測できます。または、 手動で選択することもできます。 例えば、 .github/workflows ディレクトリに GitHub Actions ワークフローファイルがある場合、GoLand は schemastore.org から自動的に読み込まれた github-workflow.json スキーマに基づき、オプションの補完を提案します:

設定 ダイアログ (Ctrl+Alt+S) の 言語 & フレームワーク | スキーマと DTD | リモート JSON スキーマ ページを使用して、JSON スキーマのロードを管理できます。
必要に応じて、 言語 & フレームワーク | スキーマと DTD | JSON スキーママッピング で必要なスキーマファイルへのパスを指定できます。
ファイルの JSON スキーマを選択する
特定のファイルにカスタムスキーマを指定できます。
ステータスバーのスキーマスイッチャーをクリックしてください。

表示されたリストで、提案されたスキーマのいずれかを選択するか、 新規スキーママッピング… をクリックします。 これにより、ファイルのローカルスキーマまたはリモートスキーマを指定できる JSON スキーママッピング 設定が開きます。
スキーマからプロパティを取得する
GoLand が YAML ファイルのスキーマを検出した場合、専用のアクションを使用してすべてのプロパティをそのファイルに素早く挿入でき、手動入力が不要になります。
スキーマに必須のプロパティが含まれており、これらの特定のプロパティのみを挿入したい場合は、ファイル内の任意の場所で Alt+Enter (コンテキストアクションの表示) を押し、 不足しているプロパティを追加する を選択します。
スキーマで使用可能なすべてのプロパティを挿入する場合は、ファイル内の任意の場所で Alt+Enter (コンテキストアクションの表示) を押し、 JSON スキーマからすべてのプロパティを入力 を選択します。
$schema キーワードを使用する
ファイル自体でスキーマを参照することもできます。
ファイルの先頭に
# $schema:と入力します。スキーマファイルの名前の入力を開始します。 schemastore.org から読み込まれたスキーマ名の補完を利用できます。
ローカルスキーマファイルを使用する場合は、スキーマを使用するファイルに対する相対パスを指定します (例:
# $schema: ./my-schema.json)。 これにより、インスペクション、補完、プロパティ入力アクションなど、リモートスキーマを使用する場合と同じコーディング支援が可能になります。
キーのコピー
GoLand は、YAML ファイルで指定された特定のオプションへのフルパスをコピーする機能を提供します。 これは 2 つの方法で実行できます。
必要なキーにキャレットを置き、 Ctrl+Alt+Shift+C を押します。
必要なキーにカーソルを合わせ、右クリックして 参照をコピー を選択します。

例: 上のイメージでは、 default.server.port がコピーされます。
入力ハンドラー
YAML ファイルを編集するとき、GoLand はインデント、シーケンスマーカー、角括弧、引用符を維持します。 次の例では、 <caret> がキャレット位置を示します。
シーケンスマーカー
シーケンス項目の後で Enter を押すと、GoLand は新しい項目を開始し、 - マーカーを自動的に挿入します:
空の項目で Enter をもう一度押すと、GoLand はマーカーを削除し、ネストされたシーケンス内でもキャレットを親のインデントレベルに移動します。
シーケンス項目にマッピングが含まれている場合、 Enter を押すと、マーカー挿入がオンの場合でも、別のマーカーを追加せずに、新しくインデントされた行でマッピングを続行します:
空の項目を削除するには、 - マーカーに続くスペースの後で Backspace を押します。 GoLand は - とそれに続くスペースを一度のアクションで削除します。 同じ行でマーカーの後に値が続く場合でも、GoLand はマーカーをスペースと一緒に削除し、値をその場所に保持します:
インデント
Enter を押すと、GoLand は現在の構造に一致するインデントレベルに新しい行を維持します:
値のないキーの後では、新しい行は一段深くインデントされます。
キーと値のペアの後では、新しい行は同じレベルに留まります。
ブロックスカラーインジケーター (
|) の後では、新しい行は一段深くインデントされ、以降の行はそのレベルに留まります。
ブロックスカラー内では、新しい行はキーの一段下にある標準のブロックインデント位置に配置されます。 現在の行が手動で過剰にインデントされている場合でも、新しい行は過剰にインデントされたテキストに揃えるのではなく、標準のブロックインデントを使用します。
完了したエントリの下にある空白のみを含む行で Enter を押すと、GoLand は新しい行を再配置するのではなく、手動で設定したインデントを維持します。
まだ項目がないシーケンスの空行で - に続けてスペースを入力すると、GoLand はマーカーのインデントを修正します。 インデントシーケンス値 オプションがオンの場合、マーカーは親キーより一段深い位置に配置されます; オプションがオフの場合、マーカーは親キーに揃えられます。 シーケンスにすでに項目が含まれている場合、マーカーは現在のインデントを維持します。 このオプションは、 エディター | コードスタイル | YAML ページ (設定 ダイアログ、 Ctrl+Alt+S) で確認できます。
角括弧と引用符
キーまたは値の位置では、GoLand はフローコレクションと引用符付きスカラーを自動的に閉じます。 [、 {、 " 、または ' を入力すると、GoLand は対応する文字を挿入し、ペアの間にキャレットを配置します:
自動クローズは、新しいキーや値の位置、既存のフローコレクション内の位置など、文字が YAML 構造トークンを開始する場所にのみ適用されます。 キャレットがプレーンスカラーテキスト内またはその直後にある場合、GoLand は文字を通常のテキストとして挿入し、何も閉じません。
同じ文字の直前で閉じる ]、 } 、または引用符を入力すると、GoLand は重複を挿入せずにキャレットをその文字の後ろに移動します。 ただし、次の文字がペアになっていない引用符の場合、同じ引用符文字を入力すると、既存の引用符を越えて移動するのではなく、新しいペアが作成されます。
空のペアを削除するには、二つの文字の間で Backspace を押します。すると、GoLand が両方を削除します。
キーと項目の移動
キー、ネストされたブロック、またはシーケンス項目を移動するには、その上にキャレットを置いて Ctrl+Shift+Up または Ctrl+Shift+Down を押します。 GoLand は、ネストされた内容を含むエントリ全体を移動し、インデントを正しく維持します:
複数のエントリを選択すると、GoLand は選択範囲をエントリ全体に拡張し、グループとして移動します。
貼り付け
YAML ファイルに内容を貼り付けると、GoLand はターゲット構造に合わせて調整します:
シーケンスに貼り付けられたプレーン行は、それぞれ独自の
-マーカーを持つ個別の項目になります。貼り付けた行が
-で始まる場合、またはプレフィックス付きの行とプレフィックスなしの行が混在している場合、GoLand は各行にマーカーがちょうどひとつ含まれるように正規化します。spring.datasource.urlなどのドット区切りパスは、ネストされたキーに展開されます。複数行ブロックは、最初の行がキャレットのインデントに一致するように再インデントされ、内側の行は相対インデントを維持します。 空白行は空のままです。
既存のキーの直前に貼り付けると、GoLand は貼り付けたブロックを再インデントし、既存のキーを元の列に維持します。
たとえば、 spring.datasource.url をマッピング位置に貼り付けます:
ドット区切りキーの展開をオンまたはオフにするには、 貼り付け時にキーシーケンスを自動展開する オプションを エディター | 一般 | スマートキー | YAML ページ (設定 ダイアログ、 Ctrl+Alt+S) で使用します。