Код Visual Studio: семейство settings.json настроек C_Cpp.xxx против c_cpp_properties.json? - PullRequest
0 голосов
/ 10 октября 2019

Я довольно новичок в использовании расширения C / C ++ для VSCode. Меня смущает, какие именно роли и отношения существуют между конфигурациями, определенными в файле .vscode/c_cpp_properties.json, и семейством настроек C_Cpp.xxx, разрешенных в файле settings.json.

Позволяют ли эти два механизма конфигурироватьодни и те же настройки только под другие правила приоритета или что-то?

1 Ответ

1 голос
/ 10 октября 2019

Таким образом, очевидно, существует приоритет: семейство настроек C_Cpp.xxx служит глобальными значениями по умолчанию, которые могут служить значением по умолчанию на уровне пользователя (~/Library/Application Support/Code/User/settings.json) или значением по умолчанию на уровне папки, если оно настроено.

Эта связь описана в этой документации: (настройка параметров по умолчанию)

Вы можете переопределить значения по умолчанию для свойств, установленных в c_cpp_properties.json

Вероятно, было бы лучше понять, если бы было написано:

Можно изменить значения по умолчанию для свойств, определенных в settings.json, на значения, установленные в c_cpp_properties.json.

. понимание того, что между двумя контекстами есть соответствие имен и соответствие. Язык в документации, кажется, обозначает вещи в settings.json с терминологией "Настройки кода VS" .

Это имеет больше смысла, когда вам действительно удается создать c_cpp_properties.json врабочее пространство, вызвав одну из команд: c_cpp_properties.json creating command

Затем вы найдете только что созданный файл в папке .vscode c_cpp_properties.json generated in .vscode folder

Конфигурация по умолчанию при редактировании через JSON отображается на моем Mac как ...

{
    "configurations": [
        {
            "name": "Mac",
            "defines": [],
            "macFrameworkPath": [
                "/Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk/System/Library/Frameworks"
            ],
            "compilerPath": "/usr/bin/clang",
            "intelliSenseMode": "clang-x64"
        }
    ],
    "version": 4
}

Просто для справки, все подробные конфигурации Cpp выложены здесь (c_cpp_properties.json reference) , отображение имеет вид:

// settings.json
{
    C_cpp.default.<configName> : <configValue>
}

==>

// c_cpp_properties.json
{
    "configurations": [
    {
        "name": "MyLocalConfig",
        <configName>:<configValue>,
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...