- Em julho passado, o ESLint anunciou que pretende se transformar em um linter de uso mais geral no futuro, oferecendo recursos de linting para todas as linguagens
- Ao longo de vários meses, o trabalho avançou na extração das partes específicas de JavaScript e, como resultado desse esforço, o ESLint agora passou a oferecer suporte a linting de JSON e Markdown
Linting de JSON com @eslint/json
- O plugin
@eslint/json é um plugin de linguagem com suporte oficial
- Esse plugin fornece parsing para JSON, JSONC (JSON com comentários) e JSON5
- Para usar o plugin, é necessário instalá-lo via npm e atualizar o arquivo de configuração
- O plugin inclui algumas regras embutidas e está aberto a mais sugestões
Linting de Markdown com @eslint/markdown
- O plugin
@eslint/markdown é a versão de próxima geração do eslint-plugin-markdown e é um plugin de linguagem com suporte oficial
- Esse plugin fornece parsing e regras para CommonMark e GitHub-Flavored Markdown
- Para usar o plugin, é necessário instalá-lo via npm e atualizar o arquivo de configuração
- Assim como o plugin de JSON, ele inclui regras embutidas e está aberto a mais sugestões
Escrita de regras personalizadas e uso do Code Explorer
@eslint/json e @eslint/markdown, assim como o JavaScript, fazem o parsing do código-fonte em um AST e percorrem esse AST para executar regras
- Portanto, assim como no JavaScript, também é possível escrever regras personalizadas para JSON e Markdown
- A principal diferença está no formato do AST: JSON usa Momoa AST e Markdown usa mdast
- Como não há muitos recursos que ajudem a inspecionar diferentes formatos de AST, foi lançado o Code Explorer
- Com o Code Explorer, é possível visualizar e explorar ASTs de várias linguagens para ajudar na criação de regras personalizadas
Como escrever plugins de linguagem
- As linguagens do ESLint foram projetadas para poderem ser incluídas em qualquer plugin usando a nova chave
languages
- Os plugins
@eslint/json e @eslint/markdown não apenas oferecem linting para JSON e Markdown, como também servem como exemplos de como criar uma linguagem
- É possível consultar a documentação de linguagens para aprender a criar a sua própria
Conclusão
- Fazer linting de linguagens além de JavaScript fazia parte do roadmap do ESLint, por isso é muito empolgante ter chegado a esse marco
- O objetivo de longo prazo do ESLint é permitir linting, por meio de plugins de linguagem com suporte oficial ou plugins criados pela comunidade, para todos os tipos de arquivos que possam ser usados em projetos web
- Com JavaScript, JSON e Markdown, esse objetivo já está avançando bem
1 comentários
Markdown é legal.