EditorConfig를 사용하여 휴대용, 사용자 지정 편집기 설정 만들기

Visual Studio의 텍스트 편집기 설정은 지정된 형식의 모든 프로젝트에 적용됩니다. 따라서 예를 들어 C# 텍스트 편집기 설정을 변경하는 경우 해당 설정이 Visual Studio의 모든 C# 프로젝트에 적용됩니다. 그러나 고유한 개인 편집기 기본 설정과 다른 규칙을 사용해야 하는 경우도 있습니다. 이 경우 EditorConfig 파일을 사용하여 프로젝트 단위로 공통 텍스트 편집기 옵션을 제공하면 됩니다. 코드베이스에 추가되는 .editorconfig 파일에 포함된 EditorConfig 설정이 전역 Visual Studio 텍스트 편집기 설정보다 우선합니다. 따라서 원하는 텍스트 편집기 설정을 사용하도록 각 코드베이스를 조정할 수 있습니다. Visual Studio에서 이 기능을 사용하기 위해 플러그 인이 필요하지는 않습니다.

코딩 일관성

EditorConfig 파일의 설정을 사용하면 사용 중인 IDE 편집기에 관계없이 코드베이스에서 들여쓰기 스타일, 탭 너비, 줄의 끝 문자, 인코딩 등 언어의 코딩 스타일 및 설정을 일관성 있게 유지할 수 있습니다. 예를 들어 C#으로 코딩하는 경우 코드베이스에 들여쓰기가 항상 공백 문자 5개로 구성되고, 문서에서 UTF-8 인코딩을 사용하고, 각 줄이 항상 CR/LF로 끝나도록 하는 규칙이 있다면 .editorconfig 파일을 해당 규칙에 따라 구성할 수 있습니다.

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

설정은 코드베이스의 파일에 포함되므로 해당 코드베이스와 함께 전송됩니다. EditorConfig 규격 편집기에서 코드 파일을 열기만 하면 텍스트 편집기 설정이 구현됩니다. EditorConfig 파일에 대한 자세한 내용은 EditorConfig.org 웹 사이트를 참조하세요. 많은 .editorconfig 파일을 편집하는 경우 EditorConfig Language Service 확장이 유용할 수 있습니다.

EditorConfig 설정 재정의

파일 계층 구조의 폴더에 .editorconfig 파일을 추가하는 경우 해당 설정이 이 수준과 그 아래에 있는 모든 파일에 적용됩니다. 특정 프로젝트 또는 코드베이스에 대해 EditorConfig 설정을 재정의하고 최상위 .editorconfig 파일과 다른 값이나 재정의 값을 사용하려는 경우 변경할 수준에 .editorconfig 파일을 추가하면 됩니다.

EditorConfig 계층 구조

새 .editorconfig 파일 설정은 해당 수준과 모든 하위 파일에 적용됩니다.

지원되는 설정

Visual Studio의 편집기는 EditorConfig의 핵심 옵션 집합에 대해 다음 값을 지원합니다.

EditorConfig 설정은 XML을 제외하고 Visual Studio가 지원하는 모든 언어에서 지원됩니다.

예제

다음은 .editorconfig 파일을 프로젝트에 추가하기 전과 이후 C# 코드 조각의 들여쓰기 상태를 보여 주는 예제입니다. Visual Studio 텍스트 편집기에 대한 옵션 대화 상자의 설정은 코드에서 Tab 키를 누를 때 공백 문자를 생성하도록 설정되었습니다.

텍스트 편집기 탭 설정

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

EditorConfig를 사용하기 전의 코드

.editorconfig라는 새 파일에 다음 코드를 추가한 후 프로젝트에 추가합니다. [*.cs] 설정은 이 변경 내용이 이 프로젝트의 .cs 파일에만 적용됨을 의미합니다.

.editorconfig 파일이 프로젝트에 추가됨

이제 Tab 키를 누르면 공백 대신 탭 문자가 추가됩니다.

Tab 키를 누르면 탭 문자가 추가됨

참고

프로젝트 또는 코드베이스에 .editorconfig 파일을 추가해도 기존 스타일이 새 스타일로 변환되지는 않습니다. 새로 추가한 줄에만 적용됩니다. 프로젝트 또는 코드베이스에서 .editorconfig 파일을 제거하는 경우 편집기 설정에 대한 코드 파일을 다시 로드하여 전역 설정으로 되돌려야 합니다. .editorconfig 파일에 오류가 있으면 Visual studio의 오류 창에 모두 보고됩니다.

언어 서비스에 대한 EditorConfig 지원

대부분의 경우 Visual Studio 언어 서비스를 구현할 때 EditorConfig 유니버설 속성을 지원하기 위해 추가 작업이 필요하지 않습니다. 사용자가 파일을 열면 코어 편집기에서 .editorconfig 파일을 자동으로 검색하여 읽은 다음 적절한 텍스트 버퍼와 보기 옵션을 설정합니다. 하지만 일부 언어 서비스에서는 사용자가 텍스트를 편집하거나 서식을 지정할 때 항목에 대한 전역 설정(예: 탭, 공백) 대신 적절한 상황별 텍스트 보기 옵션을 사용하도록 선택합니다. 이러한 경우 EditorConfig 파일을 지원하도록 언어 서비스를 업데이트해야 합니다.

다음 표에서는 EditorConfig 파일을 지원하도록 언어 서비스를 업데이트하는 데 필요한 변경 내용을 보여 줍니다.

사용되지 않는 전역 언어별 옵션 상황에 맞는 옵션 바꾸기
Microsoft.VisualStudio.TextManager.Interop.LANGPREFERENCES.fInsertTabs 또는 Microsoft.VisualStudio.Package.LanguagePreferences.InsertTabs !textBufferOptions.GetOptionValue(DefaultOptions.ConvertTabsToSpacesOptionId) 또는 !textView.Options.GetOptionValue(DefaultOptions.ConvertTabsToSpacesOptionId)
Microsoft.VisualStudio.TextManager.Interop.LANGPREFERENCES.uIndentSize 또는 Microsoft.VisualStudio.Package.LanguagePreferences.InsertTabs.IndentSize textBufferOptions.GetOptionValue(DefaultOptions. IndentSizeOptionId) 또는 textView.Options.GetOptionValue(DefaultOptions. IndentSizeOptionId)
Microsoft.VisualStudio.TextManager.Interop.LANGPREFERENCES.uTabSize 또는 Microsoft.VisualStudio.Package.LanguagePreferences.InsertTabs.TabSize textBufferOptions.GetOptionValue(DefaultOptions.TabSizeOptionId) 또는 textView.Options.GetOptionValue(DefaultOptions.TabSizeOptionId)

참고 항목

EditorConfig를 사용하여 휴대용, 사용자 지정 편집기 옵션 만들기