Language-tools: Wie können wir schlanke Warnungen deaktivieren? (a11y usw.)

Erstellt am 2. Nov. 2020  ·  12Kommentare  ·  Quelle: sveltejs/language-tools

Diese Warnungen schaden oft mehr als sie nützen und verschmutzen unsere Konsolenimmobilien.
Es ist nicht akzeptabel, den Code mit <!-- svelte-ignore a11y-no-onchange --> usw. zu verunreinigen.

Wir können diese normalerweise in der rollup.config filtern, aber svelte-check wird das nicht auswählen.

Was ist der beste Weg, um diese zu filtern:

  • in der Konsole bei Verwendung von svelte-check --watch
  • in VScode (ohne dass jeder angewiesen werden muss, Tonnen von Einträgen in seinen IDE-Einstellungen manuell hinzuzufügen)

Ist es vielleicht an der Zeit, eine Konfigurationsdatei einzuführen?

question

Hilfreichster Kommentar

Nein, ich benutze nicht lsp-mode . Ich verwende den eingebauten LSP von neovim und er kann einige Optionen an den LSP übergeben. Hier ist, wie es gemacht wird.

image

Ich weiß nicht, wie lsp-mode mit dieser Option umgehen. Ich habe eine kurze Lektüre aus dem Wiki gemacht und ich denke , das ist möglich. Es kann zum Beispiel einige Optionen an Lua LSP übergeben. https://emacs-lsp.github.io/lsp-mode/page/lsp-lua-language-server/

Alle 12 Kommentare

Sie können die Option --compiler-warnings Beispiel: --compiler-warnings "css-unused-selector:ignore,unused-export-let:ignore" filtert alle Warnungen von css-unused-selector und unused-export-let . Weitere Informationen finden Sie in der
Informationen zur VS-Code-Sache: Sie können Ihrem Repo jederzeit einen Arbeitsbereichs-Json hinzufügen, den alle Benutzer erben. Ich zögere, dies in svelte.config.js da es keine offizielle Vereinbarung gibt, in welche Richtung diese Konfigurationsdatei gehen wird, sodass ich dort keine Eile hinzufügen möchte.

Vielen Dank.

Die --compiler-warnings würden den Job für die Cli machen, ja. Was die Arbeitsbereichseinstellungen von json betrifft, verwenden Sie diese häufig zusätzlich zu einem .editorconfig ?

Wenn Sie alle VS-Code verwenden und sich auf bestimmte Einstellungen einigen, würde ich ihn auf jeden Fall verwenden - schließlich handelt es sich auch um eine Art Konfigurationsdatei. Wir machen das gerade in einem unserer Projekte.

Gilt das auch für den Sprachserver? Oder nur zum schlanken Check? Ich habe versucht, den Sprachserver als svelteserver --stdio --compiler-warnings a11y-autofocus:ignore,a11y-no-onchange:ignore auszuführen, der Sprachserver gibt jedoch weiterhin Warnungen aus:

image

Dies ist in Emacs im LSP-Modus.

Dies gilt nur für vscode und svelte-check. Wie integrieren sich andere IDEs in den Sprachserver? Der Sprachserver erwartet beim Start während des Initialisierungsbefehls ein Konfigurationsobjekt (Struktur wie in der Readme-Datei der vscode-Erweiterung) gemäß dem Sprachserverprotokoll.

Erwischt. Alle voll funktionsfähigen Sprachserver-Clients, einschließlich des LSP-Modus unter Emacs, unterstützen die Übergabe einer Konfiguration über JSONRPC an den Server. Nachdem ich verstanden habe, wo dies konfiguriert werden soll , sollte es einfach sein, das Svelte-Modul im lsp-Modus zu erweitern, um diesen Konfigurationsschlüssel mit einer praktischen Benutzeroption zu verknüpfen. Ich werde dementsprechend ein Problem gegen den lsp-Modus eröffnen.

Es wäre wahrscheinlich erwähnenswert, dies explizit in der README-Datei zu erwähnen: "Die Konfiguration des Sprachservers erfolgt über das LSP-Protokoll, indem ein Konfigurationsobjekt übergeben wird. Ihr LSP-Client sollte eine Möglichkeit haben, das Konfigurationsobjekt für einen Server festzulegen. Hier ist ein Link zu die Spezifikation für die unterstützte Konfiguration [...] "

Es kann sich auch lohnen, die Befehlszeilenoptionen tatsächlich zu analysieren und / oder einen Fehler auszulösen, wenn irgendwelche übergeben werden. Mir war nicht klar, ob Befehlszeilenoptionen unterstützt wurden, da --help nicht wie erwartet funktionierte.

Danke für Ihre Hilfe.

@elianiva In einer kürzlich erschienenen Ausgabe haben Sie erwähnt, dass Sie den LSP auch direkt ausführen und einige Einstellungen konfigurieren konnten. Gibt es eine Möglichkeit, dass Sie denselben LSP-Modus verwenden, von dem

Nein, ich benutze nicht lsp-mode . Ich verwende den eingebauten LSP von neovim und er kann einige Optionen an den LSP übergeben. Hier ist, wie es gemacht wird.

image

Ich weiß nicht, wie lsp-mode mit dieser Option umgehen. Ich habe eine kurze Lektüre aus dem Wiki gemacht und ich denke , das ist möglich. Es kann zum Beispiel einige Optionen an Lua LSP übergeben. https://emacs-lsp.github.io/lsp-mode/page/lsp-lua-language-server/

Ja, dies wird vom lsp-Modus vollständig und auf ziemlich fortgeschrittene Weise unterstützt: Jeder Konfigurationsschlüssel kann einfach einer separat dokumentierten Benutzeroption zugeordnet werden. Hier ist ein Beispiel für gopls: https://github.com/emacs-lsp/lsp-mode/blob/0349a1cc0976829fab8f73ecc033252be31a7cf6/clients/lsp-go.el#L215 -L221

@dummdidumm Ich habe mich auch dazu entschlossen, neovim-lsp auszuprobieren, und es funktioniert auch mit zip-verpackten Garn-2-Paketen dank der überschreibbaren cmd-Option hervorragend:

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

language-server Readme-Datei von svelte-vscode . :Denken:
Immer mehr Redakteure führen ihre LSP-Implementierungen durch, daher ist es besser, Optionen auch in der Readme-Datei von language-server zu haben.
Möchten Sie, dass ich eine Readme-PR erstelle, die den Konfigurationsprozess für neovim-lsp verdeutlicht und einen Link zu den im Paket svelte-vscode beschriebenen LSP-Optionen herstellt?

Aus irgendeinem Grund ignoriert language-server beim Parsen von svelte.config.js onwarn , verwendet jedoch preprocess . Ist das beabsichtigt?
Ich denke, es ist einfacher, das von svelte.config.js aus zu konfigurieren.
Es kann nicht scheinen, dass compilerWarnings ignoriert wird, um zu funktionieren, indem Optionen von neovim-lsp . :enttäuscht:

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

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

@ non25 das sollte funktionieren, weil es svelte.plugin.svelte.compilerWarnings , nicht svelte.compilerWarnings

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

Wie unterdrücke ich ein Abnehmen, wenn ich zB den Befehl "sapper dev" verwende? Ich sehe überhaupt keine Option "Compiler-Warnungen". Vielen Dank.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen