Перейти к содержимому

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 легко интегрируется с большинством современных редакторов благодаря встроенной поддержке или лёгким плагинам, что делает его одним из самых простых способов обеспечить согласованность стиля кода без дополнительных инструментов сборки или линтеров. Команды, работающие над проектами с открытым исходным кодом, корпоративными кодовыми базами или в совместной среде, получают наибольшие преимущества, так как это создаёт единый источник истины для предпочтений форматирования. Инструмент особенно полезен для полиглотских проектов, где существует несколько языков программирования, так как правила .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.