Visual Studio에서 C/C++ 포함 정리 구성
17.8 미리 보기 1부터 Visual Studio는 다음과 같은 방법으로 C 및 C++ 코드의 품질을 개선하기 위해 사용자의 코드를 정리 #include
할 수 있습니다.
- 필요한 헤더 파일이 다른 헤더 파일에 의해 간접적으로 포함되어 있기 때문에 컴파일하는 코드에 대한 헤더 파일을 추가할 수 있습니다.
- 사용되지 않는 헤더 파일을 제거하여 빌드 시간을 개선합니다.
이 문서에서는 Visual Studio에서 Include Cleanup을 구성하는 방법을 설명합니다. 정리 포함에 대한 자세한 내용은 C/C++ 정리 포함 개요를 참조하세요.
정리 포함 설정
정리 포함 기능은 기본적으로 설정됩니다. 활성화되지 않은 경우 도구>옵션>텍스트 편집기>C/C++>코드 정리를 통해 켜고 #include 정리를 사용하도록 선택할 수 있습니다.
그런 다음 드롭다운을 사용하여 간접 헤더를 추가하거나 사용하지 않는 헤더를 제거할 수 있는 기회에 대한 알림을 받을 방법을 구성합니다.
사용 # 포함 정리 확인란이 선택되어 있습니다. 사용되지 않는 제거에 대한 드롭다운에는 제안 수준이 포함되고 누락된 추가 포함 제안 수준이 표시됩니다. 드롭다운 내용이 표시됩니다. **리팩터링만**, **제안**, **경고**, **오류**입니다. **사용되지 않는 제거 제안 수준** 드롭다운은 동일한 옵션을 제공하지만 흐리게 추가됩니다.
제안 수준 옵션의 의미는 다음과 같습니다.
리팩터링만: [정리 포함]은 마우스 포인터를 #include
마우스로 가리키거나 커서를 줄에 놓고 Ctrl+마침표 키를 누를 때 빠른 작업 메뉴를 통해 수행할 수 있는 #include
작업을 제공합니다.
#include iostream 위에 커서를 놓으면 # include iostream이 이 파일에 사용되지 않는 텍스트와 함께 전구가 나타납니다."
제안, 경고, 오류: 오류 목록 창에서 제안, 경고 또는 오류를 통해 수행할 수 있는 정리 기능을 포함합니다. 어느 것이 결정되는지 확인합니다. 오류 목록의 다음 스크린샷에서 포함 정리는 사용하지 않는 헤더를 경고와 함께 표시하도록 구성됩니다. 정리 포함 출력을 볼 수 있도록 드롭다운 필터에서 Build + Intellisense가 선택되어 있는지 확인합니다.
드롭다운 필터가 빌드 + IntelliSense로 설정됩니다. 경고가 표시됩니다. VCIC002 - #include < iostream > 이 파일에 사용되지 않습니다."
흐리게
[정리 포함]은 코드 편집기에서 사용되지 않는 헤더 파일의 줄을 흐리게 표시하여 사용되지 않는 헤더를 표시합니다. 커서를 흐리게 #include
표시하여 빠른 작업 메뉴를 표시하고 잠재적 수정 사항 표시를 선택하거나 전구 드롭다운을 클릭하여 사용되지 않는 파일과 관련된 작업을 확인합니다.
iostream을 사용하는 코드 줄이 주석 처리되므로 #include < iostream > 줄이 흐리게 표시됩니다. 코드 줄은 // std::cout << "charSize = " << charSize; 이 줄에는 빠른 작업 메뉴도 표시됩니다. 이 파일에는 #include < iostream > 사용되지 않으며 잠재적인 수정 사항 표시 링크가 있습니다.
다음을 사용하여 포함 정리 구성 .editorconfig
정리 제안에서 지정된 포함을 제외하는 등 Include Cleanup을 구성하는 더 많은 옵션이 있습니다. 이는 도구에서 사용하지 않는 것으로 표시하지 않도록 일부 헤더 파일이 필요함을 나타냅니다. 이러한 옵션은 파일에 정의 .editorconfig
되어 있으며, 프로젝트에 추가할 수 있으며, 무엇보다도 코드베이스에서 작동하는 모든 사용자에게 일관된 코딩 스타일을 적용할 수 있습니다. 프로젝트에 파일을 추가하는 .editorconfig
방법에 대한 자세한 내용은 EditorConfig를 사용하여 이식 가능한 사용자 지정 편집기 설정 만들기를 참조하세요.
Include Cleanup과 함께 사용할 수 있는 설정은 .editorconfig
다음과 같습니다.
설정 | 값 | 예시 |
---|---|---|
cpp_include_cleanup_add_missing_error_tag_type 전이적 포함 메시지 추가의 오류 수준을 설정합니다. |
none suggestion warning error |
cpp_include_cleanup_add_missing_error_tag_type = suggestion |
cpp_include_cleanup_remove_unused_error_tag_type 사용되지 않는 포함 메시지 제거의 오류 수준을 설정합니다. |
none suggestion warning error dimmed |
cpp_include_cleanup_remove_unused_error_tag_type = dimmed |
cpp_include_cleanup_excluded_files 정리 메시지 포함에서 지정된 파일을 제외합니다. 헤더를 추가할지 아니면 사용하지 않는지 여부에 관계없이 헤더와 관련된 제안이 전혀 표시되지 않습니다. |
filename | cpp_include_cleanup_excluded_files = vcruntime.h, vcruntime_string.h |
cpp_include_cleanup_required_files file1을 사용하려면 file2가 필요하도록 지정합니다. 예를 들어 사용하는 경우 atlwin.h 해당 항목도 포함해야 하므로 altbase.h 지정합니다. |
file1:file2 | cpp_include_cleanup_required_files = atlwin.h:altbase.h, atlcom.h:altbase.h |
cpp_include_cleanup_replacement_files Include 정리 처리 중에 file1을 file2로 대체합니다. 예를 들어 . cstdio stdio.h 파일이 둘 다 #include <cstdio> 있고 콘텐츠만 stdio.h 사용하는 경우 이 설정으로 Include Cleanup을 사용하면 처리 중에 사용량을 cstdio 대체했기 때문에 제거 stdio.h 하라는 stdio.h #include <stdio.h> 지시가 표시됩니다. 둘 중 하나에서 콘텐츠를 사용하지 않는 경우 정리 포함은 둘 다 제거하도록 지시합니다. |
file1:file2 | cpp_include_cleanup_replacement_files = stdio.h:cstdio,stdint.h:cstdint |
cpp_include_cleanup_alternate_files file1이 포함된 경우 간접 포함 file2에 대한 메시지를 생성하지 마세요. 예를 들어 간접적으로 포함된 헤더 winerror.h 의 항목만 사용하는 경우 #include <windows.h> 정리 포함은 추가winerror.h 하라는 메시지가 표시되지 않습니다. 포함된 간접 포함 대신 외관 헤더 파일을 포함하려는 경우에 유용합니다. |
file1:file2 | cpp_include_cleanup_alternate_files = windows.h:winerror.h, windows.h:minwindef.h |