<devzera

Aprendendo e compartilhando tecnologia

EditorConfig

Padronizando a codificação de seus projetos

Vamos falar sobre um problema

Nem sempre temos controle ou poder sobre todos os projetos que mexemos, e isso acontece muito quando pego algum freela.

Já aconteceu de eu precisar dar manutenção em um projeto juntamente com outros 2 programadores, e cada um de nós usávamos uma ferramenta diferente, com configurações de coding style distintas. O que aconteceu? O código sempre ficava horrível de ser ler sempre que abríamos um arquivo que havia sido editado previamente pelo outro, e o código não mantinha um padrão de leitura. O que poderia ser feito?

Uma solução simples

Fazendo uma tradução do que o próprio site do EditorConfig diz:

O EditorConfig ajuda os desenvolvedores a definirem e manter um coding style consistente entre diferentes editores de texto e IDEs.O projeto EditorConfig consiste em um formato de arquivo para definir o coding style, e vários editores de textos e IDEs conseguem ler esse formato de arquivo e aplicar as configurações ali especificadas. Esse arquivo do EditorConfig é bem fácil de ler e funciona tranquilamente integrado com sistemas de controle de versão.

Se isso não foi claro, segue o que ele é: um formato de arquivo para você definir o coding style de várias linguagens pra uma porrada de editor/IDE conseguir aplicar.

Vamos a um exemplo?

Exemplo de configuração

Explicando

  • root = trueindica que esse arquivo está na raiz do projeto e também que ele é o principal — digo isso pois é possível colocar outros arquivos em outras pastas;
  • [*.js]indica que todas as regras abaixo serão definidas apenas para arquivos Javascript;
  • charset = utf-8indica o charset do arquivo;
  • end_of_line = lfindica que tipo de quebra de linha será usado — lf(Unix), crlf(Windows) e cr(macOS);
  • insert_final_newline = trueindica que uma nova linha deve ser criada ao final;
  • indent_style = spaceindica que o tipo de espaço utilizado(quando se usa o tab) será usando espaços;
  • indent_size = 2indica o tamanho do tab;
  • trim_trailing_whitespace = trueindica que devem ser removidos espaços em branco no fim de todas as linhas.

Compatibilidade

Abaixo as ferramentas que suportam esse formado de arquivo nativamente:

Ferramentas que aceitam nativamente

E aqui, as ferramentas que aceitam através de plugins:

Ferramentas que aceitam através de plugins

Ele não chega a ser um lint — é uma ferramenta que faz análise do seu código para ver se você está seguindo um padrão previamente configurado — , mas deixará seu editor/IDE com configurações básicas para deixar parte do código padronizado.

Referências

Comentários