C++ EditorConfig 서식 지정 규칙
Visual Studio C++ 포맷터에는 전역적으로 적용할 수 있는 다양한 구성 가능한 설정이 있습니다. 특정 작업 영역에 대한 C++ 서식 설정을 지정하려면 clangformat 또는 EditorConfig를 사용합니다. Visual Studio 및 Visual Studio Code는 각 전역 Visual Studio C++ 서식 설정에 대한 EditorConfig 지원을 기본적으로 제공하며 EditorConfig 설정은 우선적으로 적용됩니다. 즉, 작업 영역에 EditorConfig 파일을 추가하여 더 세부적인 수준에서 C++ 서식 지정을 구성하고 프로젝트에 참가하는 모든 사용자에게 일관된 코드 스타일을 적용할 수 있습니다.
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
이 문서의 나머지 부분에는 Visual Studio 및 VS Code에서 지원하는 모든 EditorConfig C++ 서식 설정이 나열되어 있습니다.
들여쓰기 설정
중괄호 들여쓰기
- 이름:
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
do-while 루프의 '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
식 괄호 내부에 공백 삽입
- 이름:
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
- 블록에 항상 줄 바꿈 설정을 적용합니다.
참고 항목
피드백
https://aka.ms/ContentUserFeedback
출시 예정: 2024년 내내 콘텐츠에 대한 피드백 메커니즘으로 GitHub 문제를 단계적으로 폐지하고 이를 새로운 피드백 시스템으로 바꿀 예정입니다. 자세한 내용은 다음을 참조하세요.다음에 대한 사용자 의견 제출 및 보기