Visual Studio Codeのインストールと設定

CloudFormationのテンプレートを作成する開発環境として、Windows版Visual Studio Code（VSCode）のインストール方法、最低限必要な設定や拡張機能を調べたので備忘として手順を紹介します。

## 前提
### 導入環境
- OS：Windows 10
- VSCodeバージョン：Version 1.82.3（2023/10/03時点の最新）

## VSCodeのダウンロード

VSCodeの以下のダウンロードページにジャンプします。
https://code.visualstudio.com/download

ダウンロードページでWindows用のインストーラのダウンロードボタンをクリックします。
![upimage1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/649448/160ea75a-96a3-830d-6639-02e3a4f71b41.png)

↑をクリックするとページが遷移しインストーラのダウンロードが開始されます。
![upimage2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/649448/e23f2e4f-e759-2a16-ab4a-0e50da8dfe13.png)

## VSCodeのインストール
ダウンロードしたインストーラ（今回はVSCodeUserSetup-x64-1.82.3.exe）をダブルクリックします。

表示されたウィザードで[同意する]にチェックを入れて[次へ]をクリックします。
![upimage3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/649448/6729e7ea-d6be-881c-feac-a94d564dd275.png)

インストール先の設定画面でインストール先を変更する場合はインストール先を指定し[次へ]をクリックします。
![upimage4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/649448/b380ec6b-653c-dc0d-9adc-4a1fed2f48e0.png)

スタートフォルダーの指定画面でデフォルトのまま[次へ]をクリックします。
![upimage5.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/649448/8b981f0f-8c5f-591a-ddf4-bacdda865f19.png)

追加タスクの選択画面で必要に応じて追加タスクにチェックを入れて[次へ]をクリックします。
図では全部にチェックを入れています。
![upimage6.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/649448/649ffb14-e7a3-67da-038f-94254d634bd9.png)

インストールの準備完了画面で[インストール]をクリックします。
![upimage7.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/649448/7d5d4d6e-6954-94b0-0272-45eac7df8fa3.png)

そのまましばらく待ちます。
![upimage8.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/649448/3874583b-f613-e97d-6284-62f20b9c3570.png)

インストールの完了画面で[完了]をクリックします。
![upimage9.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/649448/6b5b2020-80a2-5f72-4e79-bfa4cef7af5c.png)

## VSCodeの設定・拡張機能の追加

### VSCodeの日本語化

VSCodeを起動した画面の左のタブから一番下のExtensionsをクリック（または[Ctrl＋Shift＋x]を入力）します。
![upimage10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/649448/4973cfc4-54ae-6aa4-23c6-88907ced8e70.png)

画面左上の検索窓（Search Extensions in Marketplace）に「Japanese」と入力し検索結果に表示される[Japanese Language Pack for Visiual Studio Code]をInstallします。
![upimage11.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/649448/3132fc96-392b-76c7-fb9a-a748a4a24ff4.png)

インストール完了後、画面右下にWould you like to...というメッセージがポップアップするので[Change Language and Restart]をクリックします。
![upimage12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/649448/681f18fd-07cb-f6ea-ff9c-48ec1141158c.png)

アプリが再起動し日本語化されたVSCodeが開きます。
![upimage13.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/649448/e0e7bf49-ade9-6d1e-1765-7fb30dd5eccf.png)

### CloudFormationのインストール
「VSCodeの日本語化」と同様の手順で[CloudFormation]をインストールします。

<strong>※ アプリのリスタートは必要ありません。</strong>
![upimage14.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/649448/2308c9d3-4547-afe2-0a2d-397fb64532f1.png)

### CloudFormation Snippetsのインストール
「VSCodeの日本語化」と同様の手順で[CloudFormation Snippets]をインストールします。

<strong>※ アプリのリスタートは必要ありません。</strong>
![upimage68.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/649448/6f0c1838-429d-93bd-9c9a-76f4adc450cf.png)

### YAMLのインストール
YAMLがインストールされていない場合（拡張機能の右下に[Install]の表示がある場合）、「VSCodeの日本語化」と同様の手順で[YAML]をインストールします。

<strong>※ アプリのリスタートは発生必要ありません。</strong>
<strong>※ 下の図は既にインストールされている状態の図です。</strong>
![upimage15.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/649448/f0cad721-6d4c-1cc3-d7c7-f7afcb26cd91.png)

画面の左下から管理（歯車のマーク）-> 設定をクリック（または[Ctrl+,]を押下）します。
![upimage16.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/649448/4de147be-11f5-4620-b56a-9f03e6f39d3b.png)

設定画面から画面右上の[設定（JSON）を開く]をクリックします。
![upimage17.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/649448/1a989019-93ed-f529-9b2c-4db9a95b4c03.png)

以下の内容を追記し[Ctrl+s]を押下して保存します。
```
    // Custom tags for the parser to use
    "yaml.customTags": [
        "!Ref",
        "!Sub scalar",
        "!Sub sequence",
        "!Join sequence",
        "!FindInMap sequence",
        "!GetAtt scalar",
        "!GetAtt sequence",
        "!Base64 mapping",
        "!GetAZs",
        "!Select scalar",
        "!Select sequence",
        "!Split sequence",
        "!ImportValue",
        "!Condition",
        "!Equals sequence",
        "!And",
        "!If",
        "!Not",
        "!Or",
        "!And sequence",
        "!If sequence",
        "!Not sequence",
        "!Equals",
        "!Or sequence",
        "!FindInMap",
        "!Base64",
        "!Join",
        "!Cidr",
        "!Sub",
        "!GetAtt",
        "!ImportValue sequence",
        "!Select",
        "!Split"
    ],
    // Enable/disable default YAML formatter (requires restart)
    "yaml.format.enable": true
```
↓設定後のイメージ↓
![upimage18.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/649448/f96239f1-d4b9-85e2-f605-b54c208d7ef4.png)

### 以降の拡張機能は好みに合わせて実施してください

<ol>
<li>indent-rainbow

インデントが見やすくなります。
![upimage19.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/649448/96a7e73a-707c-2ef6-db43-4adb5a908ea5.png)

</li>
<li>Indenticator

インデントの深さを強調してくれます。
![upimage20.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/649448/282cfb4e-7b6c-1269-8a72-f40afa7c1f9f.png)
</li>
</ol>

## 設定後の動作確認
<ol>
<li>ワークスペース上で右クリック -> [新しいテキストファイル]をクリック（または[Ctrl＋n]を押下）します。

![upimage21.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/649448/6ea6e3cf-1f65-9078-677c-33f1b2b9fe2d.png)
</li>

<li>[言語の選択]をクリック（または[Ctrl+k] -> [m]を押下）します。

![upimage22.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/649448/4bcd8d02-4056-c0c4-853e-85a78cce9f4e.png)
</li>
<li>言語モードの選択で[yaml]と入力しEnterを押下します。

![upimage23.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/649448/b71a714c-2510-514b-99db-723d9b399851.png)
</li>
<li>コード上で[start]と入力し[Tab]キーを押下します。

![upimage24.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/649448/e64b9a93-02d1-4ff8-a91d-5c2982a3b02f.png)
↓
![upimage25.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/649448/a9da6f7b-2e5c-6f70-2833-53aaf9dc888d.png)
AWSのテンプレートが表示されればOK!
</li>
</ol>