/**
 * @file defaults/vscode/c_cpp_properties.libjsonnet
 * @namespace vscode::c_cpp_properties
 * @brief Default configuration for C/C++ properties in Visual Studio Code.
 * @sa [Visual Studio Code C/C++ Properties Schema](https://code.visualstudio.com/docs/cpp/customize-cpp-settings)
 *
 * <dl>
 * <dt>Import</dt>
 * <dd>
 * @code
 * local c_cpp_properties = import 'defaults/vscode/c_cpp_properties.libjsonnet';
 * @endcode
 * </dd>
 * </dl>
 */
{
  /**
   * @brief C/C++ properties configuration for Visual Studio Code.
   * @var object
   * @sa [Visual Studio Code C/C++ Properties Schema](https://code.visualstudio.com/docs/cpp/customize-cpp-settings)
   *
   * <dl>
   * <dt>Structure</dt>
   * <dd>
   * @code
   * {
   *   cStandard: string;
   *   compilerPath: string;
   *   cppStandard: string;
   *   defines: string[];
   *   includePath: string[];
   *   name: string;
   * }[]
   * @endcode
   * </dd>
   * </dl>
   */
  configurations: [
    {
      cStandard: 'gnu23',
      compilerPath: '/usr/bin/gcc',
      cppStandard: 'gnu++23',
      defines: [
        'QT_NO_CAST_FROM_ASCII',
        'QT_NO_CAST_FROM_BYTEARRAY',
        'QT_NO_CAST_TO_ASCII',
        'QT_NO_SIGNALS_SLOTS_KEYWORDS',
        'QT_NO_URL_CAST_FROM_STRING',
        'QT_STRICT_ITERATORS',
        'QT_USE_FAST_OPERATOR_PLUS',
        'QT_USE_QSTRINGBUILDER',
        'VERSION="unknown"',
      ],
      includePath: [
        '${workspaceFolder}/build/generated',
        '${workspaceFolder}/src/**',
      ],
      name: 'Linux',
    },
  ],
  /**
   * @brief Environment variables.
   * @var object
   *
   * <dl>
   * <dt>Structure</dt>
   * <dd>
   * @code
   * { [key: string]: any; }
   * @endcode
   * </dd>
   * </dl>
   */
  env: {},
  /** @brief Schema version. */
  version: 4,
}
