EditorConfig를 사용하여 일관된 코딩 스타일 정의

코드베이스에서 작업하는 모든 사람들의 코딩 스타일을 일관적으로 유지하려면 솔루션 또는 프로젝트에 EditorConfig 파일을 추가하면 됩니다. EditConfig 파일 설정은 에서 유지하는 파일 형식 사양을 준수합니다. 많은 코드 편집기 및 애플리케이션은 Visual Studio를 포함하여 EditorConfig 파일을 지원합니다. 코드를 이용하여 휴대할 수 있는 구성 요소이며 Visual Studio 외부에서도 코딩 스타일을 적용할 수 있습니다.

Visual Studio에서 EditorConfig 파일 설정이 전역 텍스트 편집기 설정보다 우선합니다(Tools>Options 대화 상자에서 텍스트 편집을 선택하여 액세스). 따라서 해당 프로젝트와 관련된 텍스트 편집기 설정을 사용하도록 각 코드베이스를 조정할 수 있습니다. EditorConfig 파일을 사용하는 경우에도 Visual Studio 텍스트 편집기에서 사용자 고유의 개인 편집기 기본 설정을 계속 설정할 수 있습니다. 사용자가 EditorConfig 파일 없이 코드베이스에서 작업을 수행할 때마다 또는 EditorConfig 파일이 특정 설정을 재정의하지 않은 경우에 이러한 텍스트 편집기 설정이 적용됩니다. 이러한 기본 설정의 예는 코드 들여쓰기 스타일에 탭 또는 공백을 사용할지 여부입니다.

Visual Studio에서 프로젝트에 EditorConfig 파일을 추가하면, 새 코드 줄에만 EditorConfig 설정을 기반으로 서식이 지정됩니다. 기존 코드의 서식은 다음 명령 중 하나를 실행해야만 변경됩니다.

  • 코드 정리.

    Visual Studio 편집기에서 코드 정리를 선택하거나 Ctrl+K, Ctrl+E를 누릅니다. 이 명령은 들여쓰기 스타일 같은 공백 설정과 괄호 기본 설정 같은 선택한 코드 스타일 설정에 적용됩니다.

  • 문서 서식 지정.

    Edit>Advanced>Format 문서를 선택하거나 기본 프로파일에서 Ctrl+K, Ctrl+D를 누릅니다. 이 명령은 들여쓰기 스타일 같은 공백 설정에만 적용됩니다.

참고 항목

이 토픽은 Windows용 Visual Studio에만 적용됩니다. Mac용 Visual Studio는 Mac용 Visual Studio에서 사용자 지정 EditorConfig 파일 만들기 및 편집을 참조하세요.

코드 일관성

EditorConfig 파일 설정을 사용하면 사용하는 편집기 또는 IDE에 관계없이 코드베이스에서 일관된 코딩 스타일 및 규칙을 유지할 수 있습니다. 제어할 수 있는 일부 코딩 스타일은 들여쓰기 스타일, 탭 너비, 줄 끝 문자 및 인코딩입니다. 예를 들어, 들여쓰기는 5개의 공백 문자를 사용하고, 문서는 UTF-8 인코딩을 사용하고, 줄은 CR/LF로 끝나는 규칙이 C# 코드베이스에 있는 경우 이 규칙을 사용하도록 EditorConfig 파일을 구성하면 됩니다.

EditorConfig 파일은 개인 프로젝트에서 사용하는 코딩 규칙이 팀 프로젝트에서 사용되는 규칙과 다를 때 유용합니다. 예를 들어, 사용자는 들여쓰기로 코드에 탭 문자가 추가되는 것을 선호할 수 있습니다. 그러나 팀에서는 들여쓰기로 공백 4개가 추가되는 것을 선호할 수 있습니다. EditorConfig 파일을 통해 각 시나리오에 맞게 구성하면 이 문제를 해결할 수 있습니다.

코드베이스의 .editorconfig 파일에는 EditorConfig 설정이 포함되어 있으므로 해당 코드베이스와 함께 이동합니다. EditorConfig 규격 편집기에서 코드 파일을 열기만 하면 텍스트 편집기 설정이 활성화됩니다.

참고 항목

EditorConfig 파일에서 설정한 규칙은 빌드 오류 또는 경고로 인해 CI/CD 파이프라인에서 적용할 수 없습니다. 모든 스타일 편차는 Visual Studio 편집기 및 오류 목록에만 나타납니다.

지원되는 설정

Visual Studio의 편집기는 다음과 같은 EditorConfig 속성의 핵심 집합을 지원합니다.

  • indent_style
  • indent_size
  • tab_width
  • end_of_line
  • 문자 집합
  • trim_trailing_whitespace
  • insert_final_newline
  • 루트

EditorConfig는 XML 지원 EditorConfig 편집기 설정을 제외한 모든 Visual Studio 지원 언어를 지원합니다.

EditorConfig는 C# 및 Visual Basic에 대한 언어, 서식 지정명명 규칙을 포함해 코드 스타일 규칙을 지원합니다.

EditorConfig 파일 추가 및 제거

프로젝트 또는 코드베이스에 EditorConfig 파일을 추가하면, EditorConfig 파일 설정에 따라 Visual Studio가 새로 작성하는 코드 줄에 서식을 지정합니다. 그러나 Visual Studio는 문서 서식을 지정하거나 코드 정리를 실행하기 전에는 기존 스타일을 새 스타일로 변환하지 않습니다. 예를 들어, 파일에 탭으로 서식이 지정된 들여쓰기가 있는 경우 공백으로 들여쓰기 서식을 지정하는 EditorConfig 파일을 추가해도 들여쓰기 문자가 공백으로 자동 변환되지는 않습니다. 문서 서식을 지정하면(Edit>Advanced>Format 문서를 선택하거나 Ctrl+K, Ctrl+D를 누름), EditorConfig 파일의 공백 설정이 기존 코드 줄에 적용됩니다.

프로젝트나 코드베이스에서 EditorConfig 파일을 제거하면 열려있는 코드 파일을 닫았다가 다시 열어야 새로운 코드 줄에 전역 편집기 설정이 적용됩니다.

프로젝트에 EditorConfig 파일 추가

프로젝트 또는 솔루션에 EditorConfig 파일을 추가하려면 다음 단계를 수행합니다.

  1. Visual Studio에서 프로젝트 또는 솔루션을 엽니다. EditorConfig 설정을 솔루션의 모든 프로젝트에 적용할지 아니면 하나에만 적용할지에 따라 솔루션 또는 프로젝트 노드 중 하나를 선택합니다. 프로젝트 또는 솔루션에서 폴더를 선택하여 .editorconfig 파일을 추가할 수 있습니다.

  2. 메뉴에서 Project>AddNew 항목을 선택하거나 Ctrl+Shift+A를 누릅니다.

    새 항목 추가 대화 상자가 열립니다.

  3. 검색 상자에 editorconfig를 입력합니다.

    두 개의 editorconfig 파일 항목 템플릿이 검색 결과에 표시됩니다.

    Visual Studio에서 EditorConfig 파일 항목 템플릿을 보여 주는 스크린샷

  4. editorconfig 파일(빈 파일) 템플릿을 선택하여 공백, 코드 스타일 및 명명 규칙에 대한 기본 EditorConfig 옵션이 미리 채워진 EditorConfig 파일을 추가합니다. 또는 editorconfig 파일(.NET) 템플릿을 선택하여 EditorConfig 파일(.NET 공백, 코드 스타일 및 명명 규칙이 기본으로 채워져 있는)을 추가합니다.

    .editorconfig 파일이 솔루션 탐색기에 나타나면, 편집기에서 새 탭으로 열립니다.

    솔루션 탐색기와 편집기의 .editorconfig 파일을 보여 주는 스크린샷

  5. 또는 파일을 편집한 다음 저장합니다.

EditorConfig 파일을 추가하는 기타 방법

다음과 같은 몇 가지 기타 방법으로 EditorConfig 파일을 프로젝트에 추가할 수도 있습니다.

파일 계층 구조 및 우선 순위

파일 계층 구조의 폴더에 .editorconfig 파일을 추가하는 경우 해당 설정이 해당 수준과 그 하위 수준에 있는 모든 파일에 적용됩니다. 코드베이스의 다른 부분과는 다른 규칙을 사용하는, 특정 프로젝트, 코드베이스 또는 코드베이스 일부에 대한 EditorConfig 설정을 재정의할 수 있습니다. 이렇게 하면 다른 위치에서 코드를 통합하여 해당 규칙을 변경하지 않아야 할 때 유용할 수 있습니다.

다음 지침을 따릅니다.

  • EditorConfig 설정의 일부 또는 전부를 재정의하려면 이러한 재정의된 설정을 적용할 파일 계층 구조 수준에서 .editorconfig 파일을 추가합니다. 새 EditorConfig 파일 설정은 동일한 수준 및 모든 하위 디렉터리의 파일에 적용됩니다.

    EditorConfig 계층 구조를 보여 주는 스크린샷

  • 설정의 전부가 아닌 일부를 재정의하려는 경우 .editorconfig 파일에서 해당 설정만 지정하면 됩니다. 하위 수준 .editorconfig 파일에 명시적으로 나열된 속성만 재정의됩니다. 상위 수준 .editorconfig 파일의 다른 설정은 계속 적용됩니다.

  • 모든 상위 수준 .editorconfig 파일에서 이 코드베이스 부분에 적용된 설정이 없음을 확인하려면 root=true 속성을 하위 수준 .editorconfig 파일에 추가합니다.

    # top-most EditorConfig file for this level
    root = true
    

EditorConfig 파일은 위쪽에서 아래쪽으로 읽힙니다. 동일한 이름의 속성이 여러 개 있는 경우 가장 최근에 발견된 동일한 이름의 속성이 우선 적용됩니다.

EditorConfig 파일 편집

Visual Studio 2022는 EditorConfig 파일을 위한 시각적 편집기를 제공합니다.

EditorConfig 파일을 편집한 후에는 새 설정을 적용하려면 코드 파일을 다시 로드해야 합니다.

Visual Studio는 IntelliSense 완성 목록을 제공하여 EditorConfig 파일을 편집하도록 도와줍니다. 예시:

EditorConfig 파일의 IntelliSense를 보여 주는 스크린샷

많은 EditorConfig 파일을 편집하는 경우 EditorConfig Language Service 확장 프로그램이 유용할 수 있습니다. 이 확장의 기능 중 일부에는 구문 강조 표시, 향상된 IntelliSense, 유효성 검사 및 코드 서식 지정이 포함되어 있습니다.

EditorConfig 언어 서비스 확장을 사용한 IntelliSense를 보여 주는 스크린샷

예시

다음은 EditorConfig 파일을 프로젝트에 추가하기 전과 후의 C# 코드 조각 들여쓰기 상태를 보여주는 예입니다.

  1. Tools>Options대화 상자에서 Visual Studio 텍스트 편집기에 텍스트 편집기> C#> 설정을 코드에서 키를 누를 때 공백 문자 4개를 생성하도록 설정합니다.

    텍스트 편집기 탭 설정을 보여 주는 스크린샷

  2. 예상대로 다음 줄에서 Tab 키를 누르면 공백 문자 4개를 추가하여 줄이 들여쓰기됩니다.

    코드에서 Tab 키의 공백 추가를 보여 주는 스크린샷

    코드에서 Tab 키의 공백 추가를 보여 주는 스크린샷

  3. EditorConfig를 사용하여 탭을 사용하도록 탭 설정을 전환합니다.

    EditorConfig 파일에서 탭 사용을 선택합니다.

    Tab 키에 대한 탭 사용 구성을 보여 주는 스크린샷

    다음 콘텐츠를 포함하여 .editorconfig라는 이름의 새 파일을 프로젝트에 추가합니다. [*.cs] 표시기는 이 변경 내용이 이 프로젝트의 C# 코드 파일에만 적용된다는 것을 의미합니다.

    # Top-most EditorConfig file
    root = true
    
    # Tab indentation
    [*.cs]
    indent_style = tab
    
  4. 이제 Tab 키를 누르면 공백 대신 탭 문자가 나타납니다.

    코드에서 Tab 키를 사용한 탭 문자 추가를 보여 주는 스크린샷

    코드에서 Tab 키를 사용한 탭 문자 추가를 보여 주는 스크린샷

EditorConfig 설정 문제 해결

프로젝트 위치 또는 그 위에 있는 디렉터리 구조의 어디엔가 EditorConfig 파일이 있다면 Visual Studio는 해당 파일의 편집기 설정을 사용자의 편집기에 적용합니다. 이 경우에는 상태 표시줄에서 다음 메시지가 보일 수 있습니다.

User preferences for this file type are overridden by this project's coding conventions.

즉, Tools>Options>텍스트 편집기의 편집기 설정(예: 들여쓰기 크기 및 스타일, 탭 크기 또는 코딩 규칙)이 디렉터리 구조에서 프로젝트 또는 위의 EditorConfig 파일에 지정되어 있는 경우 EditorConfig 파일의 규칙은 텍스트 편집기의 설정을 재정의합니다.

다음 단계에 따라 EditorConfig 이슈를 해결하세요.

  1. Visual Studio에 대한 EditorConfig 지원을 해제하려면 Tools>Options>텍스트 편집기에서 프로젝트 코딩 규칙 준수 옵션을 지웁니다.

    프로젝트 코딩 규칙 따름 설정을 보여 주는 스크린샷

  2. 프로젝트의 부모 디렉터리에서 EditorConfig 파일을 찾으려면 명령 프롬프트를 열고 사용자의 프로젝트가 포함된 디스크의 루트에서 다음 명령을 실행합니다.

    dir .editorconfig /s
    
  3. 리포지토리의 루트 또는 프로젝트가 상주하는 디렉터리의 .editorconfig 파일에서 root=true 속성을 설정하여 EditorConfig 규칙의 범위를 제어할 수 있습니다.

    Visual Studio는 열린 파일의 디렉터리와 모든 부모 디렉터리에서 .editorconfig라는 파일을 찾습니다. 루트 파일 경로에 도달하거나 root=true가 있는 .editorconfig 파일이 발견되면 검색이 종료됩니다.