Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Файлы EditorConfig можно добавить в проект, чтобы настроить форматирование C++ для обеспечения согласованного стиля кода для всех участников проекта. Visual Studio и Visual Studio Code поддерживают встроенную поддержку EditorConfig для каждого из глобальных параметров форматирования Visual Studio C++. Параметры EditorConfig хранятся в .editorconfig файле. Если этот файл присутствует в проекте, он имеет приоритет над параметрами форматирования Visual Studio.
В этом документе перечислены все параметры форматирования EditorConfig C++, поддерживаемые Visual Studio и Visual Studio Code.
Ознакомьтесь также с информацией по смежным темам:
- Использование файла 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
Отступ в конструкции case
- Имя:
cpp_indent_case_contents - Значения:
true,false
Отступ заголовков конструкции case
- Имя:
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
Помещать "while" в цикле 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— всегда применять параметры перехода на новую строку к блокам.