Language-tools: ¿Cómo podemos desactivar las advertencias esbeltas? (a11y, etc)

Creado en 2 nov. 2020  ·  12Comentarios  ·  Fuente: sveltejs/language-tools

Estas advertencias a menudo hacen más daño que bien y contaminan el espacio de nuestra consola.
No es aceptable ensuciar el código con <!-- svelte-ignore a11y-no-onchange --> etc.

Por lo general, podemos filtrarlos en rollup.config, pero svelte-check no lo seleccionará.

¿Cuál es la mejor manera de filtrar estos?

  • en la consola al usar svelte-check --watch
  • en VScode (sin tener que decirles a todos que agreguen manualmente toneladas de entradas en sus preferencias de IDE)

¿Quizás es hora de introducir un archivo de configuración?

question

Comentario más útil

no, no uso lsp-mode . Utilizo el LSP incorporado de neovim y puede pasar algunas opciones al LSP. Así es como se hace.

image

No sé cómo lsp-mode manejar esta opción. Hice una lectura rápida de su wiki y creo que es posible hacerlo. Puede pasar algunas opciones a Lua LSP, por ejemplo. https://emacs-lsp.github.io/lsp-mode/page/lsp-lua-language-server/

Todos 12 comentarios

Puede usar la opción --compiler-warnings , por ejemplo, --compiler-warnings "css-unused-selector:ignore,unused-export-let:ignore" filtrará todas las advertencias de css-unused-selector y unused-export-let . Consulte el archivo Léame de svelte-check para obtener más información.
Acerca de VS Code: siempre puede agregar un json de configuración de espacio de trabajo a su repositorio que todos los usuarios heredarán. No me atrevo a poner esto dentro de svelte.config.js ya que no hay un acuerdo oficial en qué dirección irá este archivo de configuración, por lo que no quiero agregar cosas apresuradamente allí.

Gracias.

El --compiler-warnings haría el trabajo para el cli, sí. En cuanto a la configuración del espacio de trabajo json, ¿es algo que usa a menudo además de .editorconfig ?

Bueno, si todos usan VS Code y están de acuerdo con ciertas configuraciones, ciertamente lo usaría; después de todo, también es una especie de archivo de configuración. Lo hacemos en uno de nuestros proyectos ahora mismo.

¿Esto también se aplica al servidor de idiomas? ¿O solo para comprobarlo? Intenté ejecutar el servidor de idiomas como svelteserver --stdio --compiler-warnings a11y-autofocus:ignore,a11y-no-onchange:ignore , sin embargo, el servidor de idiomas sigue produciendo advertencias:

image

Esto está en Emacs usando lsp-mode.

Esto solo se aplica a vscode y svelte-check. ¿Cómo se integran otros IDE con el servidor de idiomas? El servidor de idiomas espera un objeto de configuración (estructura como en el léame de la extensión vscode) en el inicio durante el comando de inicialización de acuerdo con el protocolo del servidor de idiomas.

Entendido. Todos los clientes de servidor de idiomas con todas las funciones, incluido el modo lsp en Emacs, tienen soporte para pasar una configuración a través de JSONRPC al servidor. Ahora que entiendo dónde se pretende configurar esto , debería ser sencillo mejorar el módulo Svelte en modo lsp para conectar esa clave de configuración a una opción de usuario conveniente. En consecuencia, abriré un problema contra lsp-mode.

Probablemente valdría la pena mencionar esto explícitamente en el archivo README: "La configuración del servidor de idiomas se realiza a través del protocolo LSP al pasar un objeto de configuración; su cliente LSP debe tener una forma de configurar el objeto de configuración para un servidor. Aquí hay un enlace a la especificación de la configuración que se admite [...] "

También podría valer la pena analizar las opciones de la línea de comandos y / o arrojar un error cuando se pasa alguna; No me quedó claro si las opciones de la línea de comandos eran compatibles, ya que --help no funcionó como se esperaba.

Gracias por tu ayuda.

@elianiva en un número reciente mencionaste que también ejecutaste el LSP directamente y habla @ raxod502, por lo que podría ser de ayuda?

no, no uso lsp-mode . Utilizo el LSP incorporado de neovim y puede pasar algunas opciones al LSP. Así es como se hace.

image

No sé cómo lsp-mode manejar esta opción. Hice una lectura rápida de su wiki y creo que es posible hacerlo. Puede pasar algunas opciones a Lua LSP, por ejemplo. https://emacs-lsp.github.io/lsp-mode/page/lsp-lua-language-server/

Sí, esto es totalmente compatible con lsp-mode y de una manera bastante avanzada: cada clave de configuración se puede asignar fácilmente a una opción de usuario documentada por separado. Aquí hay un ejemplo para gopls: https://github.com/emacs-lsp/lsp-mode/blob/0349a1cc0976829fab8f73ecc033252be31a7cf6/clients/lsp-go.el#L215 -L221

@dummdidumm Yo también decidí probar neovim-lsp , y funciona de manera brillante incluso con paquetes de hilo 2 empaquetados en zip, gracias a la opción cmd reemplazable:

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
      }
    }
  }
}

El archivo Léame de language-server carece de opciones de configuración, que he encontrado en el paquete svelte-vscode . :pensando:
Más editores realizan sus implementaciones lsp, por lo que es mejor tener opciones en el archivo Léame de language-server también.
¿Quieres que haga un readme PR que aclare el proceso de configuración para neovim-lsp y haga un enlace a las opciones lsp que se describen en el paquete svelte-vscode ?

Por alguna razón, al analizar svelte.config.js , language-server ignora onwarn , pero usa preprocess . ¿Es eso intencionado?
Siento que es más sencillo configurar eso desde svelte.config.js .
Parece que no puede hacer que compilerWarnings ignore funcione pasando opciones de neovim-lsp . :decepcionado:

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

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

@ non25 esto debería funcionar porque es svelte.plugin.svelte.compilerWarnings , no svelte.compilerWarnings

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

¿Cómo suprimo una menguante cuando uso, por ejemplo, el comando "sapper dev"? No veo ninguna opción de "advertencias del compilador" en absoluto. Gracias.

¿Fue útil esta página
0 / 5 - 0 calificaciones