.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.