Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Файлы EditorConfig можно добавить в проект, чтобы настроить форматирование C++ для обеспечения согласованного стиля кода для всех участников проекта. Обе Visual Studio и Visual Studio Code поддерживают встроенную поддержку EditorConfig для каждого из глобальных параметров форматирования Visual Studio C++. Параметры EditorConfig хранятся в .editorconfig файле. Когда этот файл присутствует в проекте, он имеет приоритет над параметрами форматирования Visual Studio.
В этом документе перечислены все параметры форматирования EditorConfig C++, поддерживаемые Visual Studio и Visual Studio Code.
В C++ есть дополнительные .editorconfig параметры, которые не являются параметрами форматирования. Эти параметры задокументированы с помощью функций, которые они настраивают:
-
Включить параметры очистки (
cpp_include_cleanup_*иcpp_sort_includes_*) описаны в разделе Configure C/C++ Include Cleanup in Visual Studio. - Параметры IntelliSense для
#includeзавершения (cpp_includes_use_forward_slashиcpp_includes_style) описаны в параметрах Configure Languages > C/C++ > IntelliSense.
Ознакомьтесь также с информацией по смежным темам:
- Использование файла EditorConfig в Visual Studio см. в статье "Определение согласованных стилей написания кода с помощью EditorConfig".
- Вручную создайте файл EditorConfig на основе параметров форматирования clang, см. в разделе clangformat. Переименуйте этот файл
.editorconfigи сохраните его в проекте.
Соглашения о форматировании C++
Параметры editorConfig форматирования C++ префиксируются с cpp_префиксом. Ниже приведен пример того, как .editorconfig может выглядеть файл:
[*.{c++,cc,cpp,cxx,h,h++,hh,hpp,hxx,inl,ipp,tlh,tli}]
cpp_indent_case_contents_when_block = true
cpp_new_line_before_open_brace_namespace = same_line
В остальной части этой статьи перечислены все параметры форматирования EditorConfig C++, поддерживаемые Visual Studio и VS Code.
Параметры отступа
Отступные фигурные скобки
- Имя:
cpp_indent_braces - Значения:
true,false
Отступ каждой линии относительно
- Имя:
cpp_indent_multi_line_relative_to - Значения:
-
outermost_parenthesis— При вводе новой строки он отступен относительно внешней открытой скобки. -
innermost_parenthesis— При вводе новой строки он отступен относительно самой внутренней открытой скобки. -
statement_begin— При вводе новой строки он отступил относительно начала текущей инструкции.
-
В скобках выровняйте новые строки при вводе
- Имя:
cpp_indent_within_parentheses - Значения:
-
align_to_parenthesis— выравнивание содержимого до открытия круглых скобок. -
indent— Отступ новых строк.
-
В существующем коде не используйте параметр для выравнивания новых строк в скобках
- Имя:
cpp_indent_preserve_within_parentheses - Значения:
true,false
Содержимое регистра отступа
- Имя:
cpp_indent_case_contents - Значения:
true,false
Метки регистра отступа
- Имя:
cpp_indent_case_labels - Значения:
true,false
Отступы скобок после оператора case
- Имя:
cpp_indent_case_contents_when_block - Значения:
true,false
Отступ скобок лямбда-лямбда-объектов, используемых в качестве параметров
- Имя:
cpp_indent_lambda_braces_when_parameter - Значения:
true,false
Позиция меток goto
- Имя:
cpp_indent_goto_labels - Значения:
-
one_left- Один отступ слева -
leftmost_column— Перемещение в самый левый столбец -
none- Оставьте отступ
-
Позиция директив препроцессора
- Имя:
cpp_indent_preprocessor - Значения:
-
one_left- Один отступ слева -
leftmost_column— Перемещение в самый левый столбец -
none- Оставьте отступ
-
Описатели отступа доступа
- Имя:
cpp_indent_access_specifiers - Значения:
true,false
Содержимое пространства имен отступа
- Имя:
cpp_indent_namespace_contents - Значения:
true,false
Сохранение отступа примечаний
- Имя:
cpp_indent_preserve_comments - Значения:
true,false
Параметры новой линии
Позиция открытых фигурных скобок для пространств имен
- Имя:
cpp_new_line_before_open_brace_namespace - Значения:
-
new_line— Переход к новой строке -
same_line- Сохраняйте в той же строке, но добавьте пробел перед -
ignore— Не переместите положение автоматически
-
Позиция открытых фигурных скобок для типов
- Имя:
cpp_new_line_before_open_brace_type - Значения:
-
new_line— Переход к новой строке -
same_line- Сохраняйте в той же строке, но добавьте пробел перед -
ignore— Не переместите положение автоматически
-
Позиция открытых фигурных скобок для функций
- Имя:
cpp_new_line_before_open_brace_function - Значения:
-
new_line— Переход к новой строке -
same_line- Сохраняйте в той же строке, но добавьте пробел перед -
ignore— Не переместите положение автоматически
-
Позиция открытых фигурных скобок для блоков управления
- Имя:
cpp_new_line_before_open_brace_block - Значения:
-
new_line— Переход к новой строке -
same_line- Сохраняйте в той же строке, но добавьте пробел перед -
ignore— Не переместите положение автоматически
-
Позиция открытых фигурных скобок для лямбда-лямбда-фигурных скобок
- Имя:
cpp_new_line_before_open_brace_lambda - Значения:
-
new_line— Переход к новой строке -
same_line- Сохраняйте в той же строке, но добавьте пробел перед -
ignore— Не переместите положение автоматически
-
Поместите фигурные скобки области в отдельные строки
- Имя:
cpp_new_line_scope_braces_on_separate_lines - Значения:
true,false
Для пустых типов перемещайте закрывающие фигурные скобки в ту же строку, что и открывающие фигурные скобки
- Имя:
cpp_new_line_close_brace_same_line_empty_type - Значения:
true,false
Для пустых тел функции перемещайте закрывающие фигурные скобки в ту же строку, что и открывающие фигурные скобки
- Имя:
cpp_new_line_close_brace_same_line_empty_function - Значения:
true,false
Поместите "catch" и аналогичные ключевые слова в новую строку
- Имя:
cpp_new_line_before_catch - Значения:
true,false
Место "else" в новой строке
- Имя:
cpp_new_line_before_else - Значения:
true,false
Поместите "в то время" в цикл do-while на новой строке
- Имя:
cpp_new_line_before_while_in_do_while - Значения:
true,false
Параметры интервала
Интервал между именами функций и открытием круглых скобок списков аргументов
- Имя:
cpp_space_before_function_open_parenthesis - Значения:
-
insert— Вставка пробела -
remove— удаление пробелов -
ignore- Не изменяйте пробелы
-
Вставка пробела в скобках списка аргументов
- Значения имени
cpp_space_within_parameter_list_parentheses:true,false
Вставка пробела между скобками, когда список аргументов пуст
- Имя:
cpp_space_between_empty_parameter_list_parentheses - Значения:
true,false
Вставка пробела между ключевым словом и открытием скобки в операторах потока управления
- Имя:
cpp_space_after_keywords_in_control_flow_statements - Значения:
true,false
Вставка пространства в круглые скобки инструкции элемента управления
- Имя:
cpp_space_within_control_flow_statement_parentheses - Значения:
true,false
Вставка пробела перед открытием круглых скобок списков лямбда-аргументов
- Имя:
cpp_space_before_lambda_open_parenthesis - Значения:
true,false
Вставка пробела в круглые скобки приведения в стиле C
- Имя:
cpp_space_within_cast_parentheses - Значения:
true,false
Вставка пробела после закрытия скобки приведения в стиле C
- Имя:
cpp_space_after_cast_close_parenthesis - Значения:
true,false
Вставка пробела в круглые скобки скобок
- Имя:
cpp_space_within_expression_parentheses - Значения:
true,false
Вставка пробела перед открытием фигурных скобок блоков
- Имя:
cpp_space_before_block_open_brace - Значения:
true,false
Вставка пробела между пустыми фигурными скобками
- Имя:
cpp_space_between_empty_braces - Значения:
true,false
Вставка пробела перед открытием фигурной скобки списков инициализации и инициализатора
- Имя:
cpp_space_before_initializer_list_open_brace - Значения:
true,false
Вставка пространства в фигурные скобки списков инициализации и инициализатора
- Имя:
cpp_space_within_initializer_list_braces - Значения:
true,false
Сохранение пробелов внутри универсальных списков инициализации и инициализатора
- Имя:
cpp_space_preserve_in_initializer_list - Значения:
true,false
Вставка пробела перед открытием квадратных квадратных скобок
- Имя:
cpp_space_before_open_square_bracket - Значения:
true,false
Вставка пробела в квадратные скобки
- Имя:
cpp_space_within_square_brackets - Значения:
true,false
Вставка пробела перед пустыми квадратными скобками
- Имя:
cpp_space_before_empty_square_brackets - Значения:
true,false
Вставка пробела между пустыми квадратными скобками
- Имя:
cpp_space_between_empty_square_brackets - Значения:
true,false
Группировать квадратные скобки для многомерных массивов вместе
- Имя:
cpp_space_group_square_brackets - Значения:
true,false
Вставка пробела в квадратные скобки для лямбда-лямбда-скобок
- Имя:
cpp_space_within_lambda_brackets - Значения:
true,false
SpaceBetweenEmptyLambdaBrackets
- Имя:
cpp_space_between_empty_lambda_brackets - Значения:
true,false
Вставка пробела перед запятыми
- Имя:
cpp_space_before_comma - Значения:
true,false
Вставка пробела после запятых
- Имя:
cpp_space_after_comma - Значения:
true,false
Удаление пробелов до и после операторов-членов
- Имя:
cpp_space_remove_around_member_operators - Значения:
true,false
Вставка пробела перед двоеточием для базовых объявлений типов
- Имя:
cpp_space_before_inheritance_colon - Значения:
true,false
Вставка пробела перед двоеточием для конструкторов
- Имя:
cpp_space_before_constructor_colon - Значения:
true,false
Удаление пространства перед точкой с запятой
- Имя:
cpp_space_remove_before_semicolon - Значения:
true,false
Вставка пробела после запятой
- Имя:
cpp_space_after_semicolon - Значения:
true,false
Удаление пробелов между унарными операторами и их операндами
- Имя:
cpp_space_remove_around_unary_operator - Значения:
true,false
Интервал для двоичных операторов
- Имя:
cpp_space_around_binary_operator - Значения:
-
insert— Вставка пробелов до и после двоичных операторов. -
remove— удаление пробелов вокруг двоичных операторов. -
ignore— Не изменяйте пробелы вокруг двоичных операторов.
-
Интервал для операторов назначения
- Имя:
cpp_space_around_assignment_operator - Значения:
-
insert— Вставка пробелов вокруг операторов назначения. -
remove— удаление пробелов вокруг операторов назначения. -
ignore— Не изменяйте пробелы вокруг операторов назначения.
-
Выравнивание указателей и ссылок
- Имя:
cpp_space_pointer_reference_alignment - Значения:
-
left— выровнять по левому краю. -
center— Выровнять центр. -
right— выровнять по правому краю. -
ignore- Оставьте без изменений.
-
Интервал для условных операторов
- Имя:
cpp_space_around_ternary_operator - Значения:
-
insert— Вставка пробелов вокруг условных операторов. -
remove— удаление пробелов вокруг условных операторов. -
ignore— Не изменяйте пробелы вокруг условных операторов.
-
Параметры упаковки
Параметры упаковки блоков
- Имя:
cpp_wrap_preserve_blocks - Значения:
-
one_liners— Не обтекайте блоки однострочный код. -
all_one_line_scopes— Не закрывайте блоки кода, в которых открытые и закрывающие фигурные скобки находятся в следующей строке. -
never— Всегда применять параметры новых строк для блоков.
-