Generator EditorConfig

.editorconfig
Wyniki

Plik .editorconfig w katalogu głównym repozytorium informuje każde nowoczesne IDE, jak ten projekt formatuje swoje pliki, rozstrzygając spór tabulatory kontra spacje plik po pliku. Python: 4 spacje. JavaScript: 2. Makefile: tabulatory (wymagane). Ten generator tworzy .editorconfig na podstawie twoich ustawień formatowania (styl i rozmiar wcięcia, koniec linii, kodowanie, maksymalna długość linii, końcowy znak nowej linii i usuwanie końcowych białych znaków) i zawsze dodaje dwie typowe poprawki: [*.md] zachowuje końcowe białe znaki dla łamań linii w Markdown, a [Makefile] używa tabulatorów, czego wymaga make.

Jak zbudować .editorconfig

  1. 1

    Ustaw globalne wartości domyślne

    Kodowanie (domyślnie utf-8), koniec linii (lf kontra crlf), styl i rozmiar wcięcia, maksymalna długość linii, wstawianie końcowego znaku nowej linii, usuwanie końcowych białych znaków.

  2. 2

    Sprawdź wbudowane poprawki

    Generator zawsze dodaje `[*.md]` z `trim_trailing_whitespace = false` (Markdown potrzebuje końcowych spacji do łamania linii) oraz `[Makefile]` z `indent_style = tab`, czego wymaga samo make.

  3. 3

    Skopiuj plik

    Użyj przycisku kopiowania, aby pobrać wygenerowany `.editorconfig`, i umieść go w katalogu głównym repozytorium.

  4. 4

    Rozbuduj później

    Potrzebujesz reguł per język? Dodaj własne sekcje, na przykład `[*.py]` z `indent_size = 4`.

Co robi .editorconfig

Plik o nazwie .editorconfig w katalogu głównym projektu (lub w dowolnym katalogu) deklaruje konwencje formatowania. Edytory z obsługą EditorConfig (każde główne IDE i większość nowoczesnych edytorów tekstu) stosują te reguły przy otwarciu pliku.

Przykładowy wynik

Przy ustawieniach domyślnych (spacje, rozmiar 4, LF, utf-8) generator tworzy:

root = true

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

[*.md]
trim_trailing_whitespace = false

[Makefile]
indent_style = tab

Kluczowe dyrektywy

Dyrektywa Przyjmowane wartości Uwagi
root true / false Ustaw true w katalogu głównym projektu, aby wyszukiwanie się zatrzymało
charset utf-8, utf-8-bom, latin1, utf-16-be, utf-16-le utf-8 jest domyślne
end_of_line lf, crlf, cr lf dla wielu platform; crlf dla repozytoriów tylko pod Windows
indent_style space, tab
indent_size liczba całkowita Liczba spacji, ignorowana przy tab
tab_width liczba całkowita Wizualna szerokość tabulatora (domyślnie indent_size)
insert_final_newline true / false Zapewnia pliki zgodne z POSIX
trim_trailing_whitespace true / false Wyłącz dla Markdown (końcowe spacje oznaczają łamanie linii)

Konwencje języków w skrócie

Język / plik Konwencja
JS, TS, JSON 2 spacje
HTML, CSS, YAML 2 spacje
Python 4 spacje (PEP 8)
PHP 4 spacje (PSR-12)
Ruby 2 spacje
Go Tabulatory (wymusza gofmt)
Rust 4 spacje (wymusza rustfmt)
Java 4 spacje
Makefile Tabulatory (wymagane przez samo make)
Markdown Zachowaj końcowe białe znaki (używane dla <br>)
Batch/CMD (.bat) Końce linii crlf

Pułapka: końcowe białe znaki w Markdown

W Markdown dwie końcowe spacje na końcu linii oznaczają „wstaw tu <br>”. Jeśli twój .editorconfig usuwa końcowe białe znaki ze wszystkich plików, te łamania linii znikają. Nadpisz przez trim_trailing_whitespace = false dla [*.md].

Czy twoje IDE to obsługuje?

Natywne wsparcie: VS Code, rodzina JetBrains IntelliJ, Sublime Text, Vim (przez wtyczkę), Emacs (przez wtyczkę), Atom, Notepad++, Xcode. Jeśli edytor nie obsługuje EditorConfig od razu, zwykle ma wtyczkę. Plik jest też czytelny maszynowo, więc lintery i formatery mogą go respektować.

Najczęściej zadawane pytania

W katalogu głównym projektu z root = true. Możesz dodać kolejne pliki .editorconfig w podkatalogach, aby nadpisać konkretne ścieżki; wyszukiwanie wędruje w górę drzewa i zatrzymuje się na pierwszym napotkanym pliku z root = true.

Nie. EditorConfig obsługuje podstawy białych znaków i końców linii w każdym edytorze. Prettier i lintery specyficzne dla języka obsługują głębsze reguły stylu (cudzysłowy, średniki, końcowe przecinki). Te dwa uzupełniają się nawzajem.

Ustaw end_of_line = crlf, jeśli narzędzia Windows w repozytorium faktycznie tego wymagają. Lepsza opcja: zatwierdź end_of_line = lf i dodaj .gitattributes z * text=auto, aby git normalizował końce linii przy commicie, a checkouty były odpowiednie dla systemu operacyjnego.

Nie. Twoje wybory służą tylko do utworzenia pliku; nic nie jest przechowywane na naszych serwerach ani zachowywane po opuszczeniu strony.

Powiązane narzędzia

Narzędzie jest dostępne w innych językach