11 pontos por xguru 2024-10-05 | 1 comentários | Compartilhar no WhatsApp
  • 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

 
laeyoung 2024-10-07

Markdown é legal.