Language-tools: Como podemos desativar os avisos svelte? (a11y, etc)

Criado em 2 nov. 2020  ·  12Comentários  ·  Fonte: sveltejs/language-tools

Esses avisos geralmente fazem mais mal do que bem e poluem o espaço do nosso console.
Não é aceitável sujar o código com <!-- svelte-ignore a11y-no-onchange --> etc.

Normalmente podemos filtrá-los no rollup.config, mas o svelte-check não escolherá isso.

Qual é a melhor maneira de filtrar estes:

  • no console ao usar svelte-check --watch
  • no VScode (sem ter que dizer a todos para adicionar manualmente toneladas de entradas em suas preferências de IDE)

É hora de introduzir um arquivo de configuração?

question

Comentários muito úteis

não, eu não uso lsp-mode . Eu uso o LSP embutido do neovim e ele pode passar algumas opções para o LSP. Veja como isso é feito.

image

Não sei como lsp-mode lida com essa opção. Fiz uma leitura rápida de seu wiki e acho que é possível fazer. Ele pode passar algumas opções para Lua LSP por exemplo. https://emacs-lsp.github.io/lsp-mode/page/lsp-lua-language-server/

Todos 12 comentários

Você pode usar a opção --compiler-warnings , por exemplo --compiler-warnings "css-unused-selector:ignore,unused-export-let:ignore" filtrará todos os avisos css-unused-selector e unused-export-let . Veja o leia-me de verificação svelte para mais informações.
Sobre o código do VS: Você sempre pode adicionar um json de configurações de espaço de trabalho ao seu repo que todos os usuários herdarão. Hesito em colocar isso dentro de svelte.config.js pois não há acordo oficial sobre a direção para a qual esse arquivo de configuração irá, então não quero adicionar coisas apressadas lá.

Obrigado.

O --compiler-warnings faria o trabalho para o cli, sim. Quanto às configurações do espaço de trabalho json, isso é algo que você costuma usar além de .editorconfig ?

Bem, se todos vocês usam o VS Code e concordam com certas configurações, eu certamente o usaria - é uma espécie de arquivo de configuração, afinal. Fazemos isso em um de nossos projetos agora.

Isso se aplica ao servidor de idioma também? Ou apenas para conferir? Tentei executar o servidor de idioma como svelteserver --stdio --compiler-warnings a11y-autofocus:ignore,a11y-no-onchange:ignore , mas o servidor de idioma ainda está produzindo avisos:

image

Isso está no Emacs usando o modo lsp.

Isso se aplica apenas a vscode e svelte-check. Como outros IDEs se integram ao servidor de idioma? O servidor de idioma espera um objeto de configuração (estrutura como no leiame da extensão vscode) na inicialização durante o comando de inicialização de acordo com o protocolo do servidor de idioma.

Peguei vocês. Todos os clientes de servidor de linguagem com recursos completos, incluindo o modo lsp no Emacs, têm suporte para passar uma configuração sobre JSONRPC para o servidor. Agora que entendi onde isso deve ser configurado , deve ser simples aprimorar o módulo Svelte no modo lsp para conectar essa chave de configuração a uma opção de usuário conveniente. Abrirei um problema contra o modo lsp de acordo.

Provavelmente valeria a pena mencionar isso explicitamente no README: "A configuração do servidor de linguagem acontece sobre o protocolo LSP, passando um objeto de configuração; seu cliente LSP deve ter uma maneira de definir o objeto de configuração para um servidor. Aqui está um link para a especificação da configuração que é suportada [...] "

Também pode valer a pena realmente analisar as opções de linha de comando e / ou lançar um erro quando algum for passado; não estava claro para mim se as opções de linha de comando eram suportadas, uma vez que --help não funcionou como esperado.

Obrigado pela ajuda.

@elianiva em uma edição recente, você mencionou que também executou o LSP diretamente e foi capaz de definir algumas configurações - há alguma chance de você usar o mesmo modo LSP de que @ raxod502 está falando, então pode ajudar?

não, eu não uso lsp-mode . Eu uso o LSP embutido do neovim e ele pode passar algumas opções para o LSP. Veja como isso é feito.

image

Não sei como lsp-mode lida com essa opção. Fiz uma leitura rápida de seu wiki e acho que é possível fazer. Ele pode passar algumas opções para Lua LSP por exemplo. https://emacs-lsp.github.io/lsp-mode/page/lsp-lua-language-server/

Sim, isso é totalmente compatível com o modo lsp e de uma forma bastante avançada: cada chave de configuração pode ser facilmente mapeada para uma opção de usuário documentada separadamente. Aqui está um exemplo para gopls: https://github.com/emacs-lsp/lsp-mode/blob/0349a1cc0976829fab8f73ecc033252be31a7cf6/clients/lsp-go.el#L215 -L221

@dummdidumm Eu também decidi tentar neovim-lsp , e funciona perfeitamente mesmo com pacotes de fio 2 embalados com zíper, graças à opção de cmd substituível:

lspconfig.tsserver.setup{
  cmd = { "yarn", "typescript-language-server", "--stdio" };
  on_attach = on_attach;
}

lspconfig.svelte.setup{
  cmd = { "yarn", "svelteserver", "--stdio" };
  on_attach = on_attach;
  settings = {
    svelte = {
      compilerWarnings = {
        ["a11y-no-onchange"] = "ignore"; -- <<< This doesn't work, svelte still spams me with this warning
      }
    }
  }
}

O readme de language-server carece de opções de configuração, que encontrei no pacote svelte-vscode . :pensamento:
Mais editores fazem suas implementações lsp, então é melhor ter opções no readme de language-server também.
Você quer que eu faça um PR readme que esclareça o processo de configuração de neovim-lsp e faça um link para as opções lsp que são descritas no pacote svelte-vscode ?

Por alguma razão, ao analisar svelte.config.js , language-server ignora onwarn , mas usa preprocess . Isso é intencional?
Acho que é mais simples configurar isso a partir de svelte.config.js .
Não consigo fazer compilerWarnings ignorar o funcionamento passando opções de neovim-lsp . : desapontado:

const sveltePreprocess = require('svelte-preprocess');

module.exports = {
  preprocess: sveltePreprocess(),
  onwarn: (warning, handler) => {
    if (warning.code === 'a11y-no-onchange') return;
    handler(warning);
  },
};

@ non25 isso deve funcionar porque é svelte.plugin.svelte.compilerWarnings , não svelte.compilerWarnings

lspconfig.svelte.setup{
  cmd = { "yarn", "svelteserver", "--stdio" };
  on_attach = on_attach;
  settings = {
    svelte = {
      plugin = {
        svelte = {
          compilerWarnings = {
            ["a11y-no-onchange"] = "ignore"
          }
        }
      }
    }
  }
}

Como suprimo uma diminuição ao usar, por exemplo, o comando "sapper dev"? Não vejo nenhuma opção de "avisos do compilador". Obrigada.

Esta página foi útil?
0 / 5 - 0 avaliações

Questões relacionadas

brunnerh picture brunnerh  ·  3Comentários

johanbissemattsson picture johanbissemattsson  ·  4Comentários

matthewmueller picture matthewmueller  ·  3Comentários

JAD3N picture JAD3N  ·  5Comentários

vatro picture vatro  ·  3Comentários