Geração de diagnósticos

Atualmente, os diagnósticos do código fonte são todos gerados utilizando o ESlint e o plugin ESLint Stylistic. Para tanto, é preciso que o desenvolvedor possua em sua máquina o pacote @stylistic/eslint-plugin instalado globalmente e ESLint instalado globalmente ou em um pacote node aberto no workspace.

A extensão suporta o ESLint a partir da versão 9 e utiliza o formato de configuração flat. Para migrar de uma versão anterior para a 9, confira o manual de migração do ESLint 9 e o manual de migração para flat config.

Configurando

O language server utiliza internamente uma própria configuração base já adequada para o uso geral em arquivos da VFS, sendo possível utilizar um arquivo eslint.config.js na raiz da VFS para customizar essa configuração. A mesma configuração é aplicada aos scratchpads como se eles fossem arquivos na raiz da VFS.

A configuração na VFS é automaticamente estendida pela configuração base da extensão, e já inclui o plugin @stylistic/eslint-plugin com algumas regras recomendadas. Para ajustar as regras do plugin a partir do arquivo de configuração da VFS, basta utilizar o prefixo @stylistic/ nestas regras.

Abaixo o exemplo de um eslint.config.js a ser inserido na VFS:

module.exports = [
    {
        files: ['*'],
        languageOptions: {
            globals: {
                Connection: 'writable'
            }
        },
        rules: {
            'no-debugger': 'error',
            '@stylistic/max-len': ['warn', { code: 120, tabWidth: 4 }]
        }
    }
];

Caso o arquivo eslint.config.js seja modificado, o VS Code precisa ser reiniciado para que a nova configuração seja carregada.

Observação: o antigo formato utilizando arquivos eslintrc não é mais suportado pela extensão. Quaisquer arquivos eslintrc na VFS serão ignorados.

Mais detalhes na documentação de configuração do ESLint.

Corrigindo problemas

Alguns dos problemas detectados podem ser automaticamente corrigidos por meio de ações de código disponibilizadas pela extensão. Essas ações podem ser acessadas descansando o cursor sobre o problema no código, usando o atalho ctrl + ., ou através do menu de contexto da aba de problemas no terminal.

Existem três tipos de correção:

  • Correção individual, em que apenas o problema selecionado é corrigido;
  • Correção de problemas de mesma regra, em que todos os problemas no código que compartilham a mesma regra do problema selecionado são corrigidos;
  • Correção de problemas de mesma fonte, em que todos os problemas de uma determinada fonte geradora de diagnósticos são corrigidos (atualmente a única fonte é o ESLint).

Exemplos de correções automáticas:

Fix all ESLint problems

Fix all semi problems

Utilização de plugins

O funcionamento do flat config permite o uso de outros plugins no eslint.config.js da VFS. O desenvolvedor deve possuir o mesmo plugin instalado globalmente em sua máquina para conseguir usar o ESLint na VFS correspondente sem gerar erros, e não será avisado pela extensão sobre a necessidade de instalação de um plugin configurado dessa maneira.

A extensão suporta oficialmente apenas o plugin @stylistic/eslint-plugin, já presente na configuração base. A compatibilidade com outros plugins não é garantida e deve ser verificada pelo responsável por configurar o ESLint na VFS.