본문으로 건너뛰기
🛠️ToolsShed

EditorConfig Generator

편집기 전체에서 일관된 코딩 스타일을 위해 .editorconfig 파일을 생성합니다.

# EditorConfig — https://editorconfig.org
root = true

[*]
indent_style = space
indent_size = 2
end_of_line = lf
charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true
max_line_length = 120

[*.json]
indent_size = 2

[*.md]
trim_trailing_whitespace = false

이 도구 소개

EditorConfig는 개발팀이 서로 다른 에디터와 IDE에서 일관된 코드 형식을 유지하도록 돕는 설정 파일 형식입니다. 팀원들이 Visual Studio Code, JetBrains IDE, Sublime Text, Vim 등 다양한 에디터를 사용할 때, .editorconfig 파일은 들여쓰기, 줄 끝, 문자 집합 및 기타 형식 규칙을 통일하여 각자 선호하는 도구와 관계없이 일관성을 보장합니다. 이는 버전 관리 시스템에서의 형식 충돌을 제거하고 스타일 논의에 소요되는 시간을 줄입니다.

이 생성기를 사용하려면 들여쓰기 유형(탭 또는 스페이스), 들여쓰기 크기, 줄 끝 스타일(LF, CRLF 또는 자동 감지), 문자 집합을 선택하기만 하면 됩니다. Python, JavaScript, JSON 또는 작업하는 다른 언어와 같은 특정 파일 유형의 규칙도 구성할 수 있습니다. 모든 설정을 사용자 정의한 후 생성된 파일을 다운로드하여 프로젝트 루트 디렉토리에 배치합니다. 팀원의 에디터는 해당 프로젝트에서 파일을 열 때 이러한 규칙을 자동으로 적용합니다.

EditorConfig는 내장 지원 또는 경량 플러그인을 통해 대부분의 최신 에디터와 원활하게 통합되어, 추가 빌드 도구나 린터 없이 코드 스타일 일관성을 적용하는 가장 간단한 방법 중 하나입니다. 오픈소스 프로젝트, 기업 코드베이스 또는 협업 환경에서 작업하는 팀이 가장 이득을 봅니다. 이 도구는 여러 프로그래밍 언어가 공존하는 다중언어 프로젝트에 특히 유용합니다. 파일 확장자별로 .editorconfig 규칙을 맞춤화할 수 있기 때문입니다.

자주 묻는 질문

코드 구현

# Generate a .editorconfig file programmatically

def generate_editorconfig(indent_style="space", indent_size=2, end_of_line="lf",
                           charset="utf-8", trim_trailing_whitespace=True,
                           insert_final_newline=True) -> str:
    lines = [
        "# EditorConfig is awesome: https://editorconfig.org",
        "",
        "# top-most EditorConfig file",
        "root = true",
        "",
        "[*]",
        f"indent_style = {indent_style}",
        f"indent_size = {indent_size}",
        f"end_of_line = {end_of_line}",
        f"charset = {charset}",
        f"trim_trailing_whitespace = {str(trim_trailing_whitespace).lower()}",
        f"insert_final_newline = {str(insert_final_newline).lower()}",
        "",
        "[*.md]",
        "trim_trailing_whitespace = false",
        "",
        "[Makefile]",
        "indent_style = tab",
        "",
        "[*.{json,yml,yaml}]",
        "indent_size = 2",
    ]
    return "\n".join(lines)

config = generate_editorconfig(indent_style="space", indent_size=4)
print(config)

# Write to file
with open(".editorconfig", "w") as f:
    f.write(config)

Comments & Feedback

Comments are powered by Giscus. Sign in with GitHub to leave a comment.