Gerador de EditorConfig

.editorconfig
Resultados

Um .editorconfig na raiz do repositório informa a cada IDE moderna como este projeto formata seus arquivos, encerrando a discussão tabs vs espaços arquivo por arquivo. Python: 4 espaços. JavaScript: 2. Makefile: tabs (obrigatório). Este gerador cria um .editorconfig a partir das suas escolhas de formatação (estilo e tamanho de indentação, fim de linha, charset, comprimento máximo de linha, nova linha final e remoção de espaços em branco no final) e sempre inclui os dois ajustes comuns: [*.md] mantém os espaços finais para as quebras de linha do Markdown, e [Makefile] usa tabs, como o make exige.

Como construir um .editorconfig

  1. 1

    Defina os padrões globais

    Charset (utf-8 por padrão), fim de linha (lf vs crlf), estilo e tamanho de indentação, comprimento máximo de linha, inserir nova linha final, remover espaços em branco no final.

  2. 2

    Confira os ajustes integrados

    O gerador sempre adiciona `[*.md]` com `trim_trailing_whitespace = false` (o Markdown precisa de espaços finais para quebras de linha) e `[Makefile]` com `indent_style = tab`, exigido pelo próprio make.

  3. 3

    Copie o arquivo

    Use o botão de copiar para obter o `.editorconfig` gerado e coloque-o na raiz do repositório.

  4. 4

    Amplie depois

    Precisa de regras por linguagem? Adicione suas próprias seções, por exemplo `[*.py]` com `indent_size = 4`.

O que .editorconfig faz

Um arquivo chamado .editorconfig na raiz de um projeto (ou em qualquer diretório) declara convenções de formatação. Editores com suporte a EditorConfig (todas as principais IDEs e a maioria dos editores de texto modernos) aplicam essas regras ao abrir arquivos.

Exemplo de saída

Com as configurações padrão (espaços, tamanho 4, LF, utf-8) o gerador produz:

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

Diretrizes principais

Diretriz Valores aceitos Notas
root true / false Defina como true na raiz do projeto para que a busca pare
charset utf-8, utf-8-bom, latin1, utf-16-be, utf-16-le utf-8 é o padrão
end_of_line lf, crlf, cr lf para multiplataforma; crlf para repositórios apenas Windows
indent_style space, tab
indent_size inteiro Número de espaços, ignorado quando tab
tab_width inteiro Largura visual de um tab (tamanho de indentação padrão)
insert_final_newline true / false Garante arquivos compatíveis com POSIX
trim_trailing_whitespace true / false Desative para Markdown (espaços em branco no final significam quebras de linha)

Convenções de linguagem em resumo

Linguagem / arquivo Convenção
JS, TS, JSON 2 espaços
HTML, CSS, YAML 2 espaços
Python 4 espaços (PEP 8)
PHP 4 espaços (PSR-12)
Ruby 2 espaços
Go Tabs (gofmt impõe)
Rust 4 espaços (rustfmt impõe)
Java 4 espaços
Makefile Tabs (obrigatório pelo make)
Markdown Mantenha espaços em branco no final (usado para <br>)
Batch/CMD (.bat) quebras de linha crlf

Armadilha: espaços em branco no final do Markdown

No Markdown, dois espaços em branco no final de uma linha significam “insira um <br> aqui”. Se seu .editorconfig remove espaços em branco no final para todos os arquivos, essas quebras de linha desaparecem. Substitua com trim_trailing_whitespace = false para [*.md].

Seu IDE suporta isso?

Suporte nativo: VS Code, família JetBrains IntelliJ, Sublime Text, Vim (via plugin), Emacs (via plugin), Atom, Notepad++, Xcode. Se um editor não suporta EditorConfig por padrão, geralmente tem um plugin. O arquivo também é legível por máquina, então linters e formatadores podem respeitá-lo.

Perguntas frequentes

Na raiz do projeto com root = true. Você pode adicionar arquivos .editorconfig adicionais em subdiretórios para substituir caminhos específicos; a busca sobe na árvore e para no primeiro arquivo root = true que encontrar.

Não. O EditorConfig lida com o básico de espaços em branco e quebras de linha em todos os editores. O Prettier e linters específicos de linguagem lidam com regras de estilo mais profundas (citações, ponto e vírgula, vírgulas finais). Os dois se complementam.

Defina end_of_line = crlf se as ferramentas do Windows no repositório realmente exigirem isso. Melhor opção: comite end_of_line = lf e adicione um .gitattributes com * text=auto para que o git normalize as quebras de linha no commit enquanto os checkouts são apropriados para o SO.

Não. Suas escolhas são usadas apenas para gerar o arquivo; nada é armazenado em nossos servidores nem mantido depois que você sai da página.

Ferramentas relacionadas

Ferramenta disponível em outros idiomas