c_cpp_properties.jsonについて

生成されたc_cpp_properties.json

{
    "configurations": [
        {
            "name": "Linux",
            "includePath": [
                "${workspaceFolder}/**"
            ],
            "defines": [],
            "compilerPath": "/usr/bin/gcc",
            "cStandard": "gnu17",
            "cppStandard": "gnu++14",
            "intelliSenseMode": "linux-gcc-x64"
        }
    ],
    "version": 4
}

役割

configurations

IntelliSense エンジンにプロジェクトと環境設定に関する情報を提供する設定オブジェクトの配列。デフォルトでは、拡張モジュールはあなたのオペレーティングシステムに基づいた設定を作成します。さらに設定を追加することもできます。

name

コンフィギュレーションを識別するためのフレンドリーな名前です。LinuxMac、Win32は、それらのプラットフォームで自動選択されるコンフィギュレーション用の特別な識別子です。VS Codeのステータスバーには、どのコンフィギュレーションがアクティブであるかが表示されます。また、ステータスバーのラベルをクリックすると、アクティブなコンフィギュレーションを変更することができます。 (WSL:Ubuntu とかに変更したほうがいいのか...?)

includePath

インクルードパスとは、ソースファイルに含まれるヘッダーファイル(#include "myHeaderFile.h "など)を含むフォルダーのことです。インテリセンス・エンジンがインクルード・ヘッダー・ファイルを検索するときに使用するパスのリストを指定します。これらのパスでの検索は再帰的ではありません。再帰的な検索を行う場合は を指定します。例えば、${workspaceFolder}/ はすべてのサブディレクトリを検索しますが、${workspaceFolder} は検索しません。Visual StudioがインストールされているWindowsの場合、またはcompilerPath設定でコンパイラーが指定されている場合は、このリストにシステムインクルードパスをリストアップする必要はありません。

defines

ファイルを解析するときに IntelliSense エンジンが使用するプリプロセッサー定義のリストです。オプションで、VERSION=1 のような値を設定するために = を使用します。???

intelliSenseMode

MSVC、gcc、または Clang のアーキテクチャ固有の変種に対応する、使用するインテリセンス モードです。設定されていない場合、または ${default} に設定されている場合、拡張機能はそのプラットフォームのデフォルトを選択します。

プラットフォームのデフォルト

Windows: msvc-x64 Linux: gcc-x64 macOS: clang-x64

これはいじらなくてよさそう

参考

code.visualstudio.com