.editorconfig i ustalone czy mają być w projecie spacje czy taby
Jedną z głupich wojenek w internecie jest dyskusja czy do wcięć w kodzie używać tabów czy spacji. Sprawa wydaje się na tyle poważna, że trafiła do serialu Silicon Valley.
Na pytanie „taby czy spacje?” odpowiadam: To zależy, co zostało ustalone wewnątrz twojego zespołu i tego należy się trzymać po grób.
Na pytanie „Michał, czego używasz w projekcie The Ship Game„. Odpowiadam: Po pierwsze nie jestem Michał, a po drugie używam taba, do wstawienia 4 spacji.
Woah.
O dbania o porządek w projekcie związanym z poziomem wcięć i innymi paroma rzeczami pomaga mi EditorConfig. Dostępny jako plugin do twojego ulubionego edytora. W tym Visual Studio Code, normalny duży Visual Studio też ma.
Działa to tak, że wstawia się plik .editorconfig
do głównego katalogu projektu. A twój edytor zaciąga go i stosuje wprowadzone zasady na plikach.
Mój aktualny .editorconfig
w The Ship Game wygląda tak:
root = true
mówi pluginowi, że nie należy szukać innych plików.editorconfig
wyżej w drzewie katalogów.[*]
oznacza, że poniższe reguły mają dotyczyć wszystkich plików.end_of_line = crlf
oznacza, że koniec linii ma kończyć się w Windowsowym stylu\r\n
.charset = utf-8
oznacza, że kodowanie znaków ma byćutf-8
.indent_style = space
oznacza, że do wcięć w kodzie ma być używana spacja.indent_size = 4
oznacza, że wcięcia mają być rozmiaru 4 spacji.trim_trailing_whitespace = true
oznacza, że edytor ma usuwać białe znaki na końcach linii przy zapisie pliku.[*.{ts,tsx}]
oznacza, że poniższe reguły będą stosowane wobec plików z rozszerzeniami.ts
oraz.tsx
insert_final_newline = true
oznacza, że na koniec pliku mają być dodawana pusta linia. Przydatne, gdy stosuje się narzędzia konsolowe, dzięki temu ma się ładniejsze wyjście.
Jeżeli taki pliczek wrzuci się do kontroli wersji to ma się pewność, że ludzie (a co ważnie i ich edytory), będą się stosowały do reguł, które zostały ustalone.