Language-tools: Как мы можем отключить тонкие предупреждения? (a11y и т. д.)

Созданный на 2 нояб. 2020  ·  12Комментарии  ·  Источник: sveltejs/language-tools

Эти предупреждения часто приносят больше вреда, чем пользы, и загрязняют нашу консоль.
Недопустимо засорять код <!-- svelte-ignore a11y-no-onchange --> и т. Д.

Обычно мы можем отфильтровать их в rollup.config, но svelte-check этого не выберет.

Как лучше всего их отфильтровать:

  • в консоли при использовании svelte-check --watch
  • в VScode (без необходимости указывать всем вручную добавлять тонны записей в свои настройки IDE)

Может быть, пора представить конфигурационный файл?

question

Самый полезный комментарий

нет, я не использую lsp-mode . Я использую встроенный LSP neovim, и он может передавать некоторые параметры LSP. Вот как это делается.

image

Я не знаю, как lsp-mode обрабатывает этот вариант. Я быстро прочитал его вики и думаю, что это возможно. Например, он может передавать некоторые параметры Lua LSP. https://emacs-lsp.github.io/lsp-mode/page/lsp-lua-language-server/

Все 12 Комментарий

Вы можете использовать опцию --compiler-warnings , например --compiler-warnings "css-unused-selector:ignore,unused-export-let:ignore" отфильтрует все предупреждения css-unused-selector и unused-export-let . См. Readme для
О VS Code: вы всегда можете добавить json-настройки рабочей области в свое репо, которые унаследуют все пользователи. Я не решаюсь помещать это в svelte.config.js поскольку нет официального соглашения, в каком направлении будет двигаться этот файл конфигурации, поэтому я не хочу добавлять туда что-то в спешке.

Спасибо.

--compiler-warnings сделает всю работу за cli, да. Что касается настроек рабочего пространства json, часто ли вы используете это в дополнение к .editorconfig ?

Что ж, если вы все используете VS Code и согласны с некоторыми настройками, я бы обязательно его использовал - в конце концов, это тоже своего рода файл конфигурации. Мы делаем это в одном из наших проектов прямо сейчас.

Относится ли это также к языковому серверу? Или только для стройности? Я попытался запустить языковой сервер как svelteserver --stdio --compiler-warnings a11y-autofocus:ignore,a11y-no-onchange:ignore , однако языковой сервер все еще выдает предупреждения:

image

Это в Emacs с использованием lsp-mode.

Это применимо только к vscode и svelte-check. Как другие IDE интегрируются с языковым сервером? Языковой сервер ожидает объект конфигурации (структура, как в файле readme расширения vscode) при запуске во время команды инициализации в соответствии с протоколом языкового сервера.

Попался. Все полнофункциональные клиенты языковых серверов, включая lsp-mode в Emacs, поддерживают передачу конфигурации серверу через JSONRPC. Теперь, когда я понимаю, где это должно быть настроено , должно быть несложно улучшить модуль Svelte в режиме lsp, чтобы привязать этот ключ конфигурации к удобной для пользователя опции. Соответственно, я подниму вопрос против lsp-mode.

Вероятно, стоит упомянуть об этом прямо в README: «Конфигурация языкового сервера происходит по протоколу LSP путем передачи объекта конфигурации; ваш клиент LSP должен иметь способ установки объекта конфигурации для сервера. Вот ссылка на спецификация поддерживаемой конфигурации [...] "

Также, возможно, стоит проанализировать параметры командной строки и / или выдать ошибку при их передаче; мне было неясно, поддерживаются ли параметры командной строки, поскольку --help не работает должным образом.

Спасибо за вашу помощь.

@elianiva в недавнем выпуске вы упомянули, что вы также запускаете LSP напрямую и можете настроить некоторые параметры - есть ли шанс, что вы используете тот же LSP-режим, о котором говорит

нет, я не использую lsp-mode . Я использую встроенный LSP neovim, и он может передавать некоторые параметры LSP. Вот как это делается.

image

Я не знаю, как lsp-mode обрабатывает этот вариант. Я быстро прочитал его вики и думаю, что это возможно. Например, он может передавать некоторые параметры Lua LSP. https://emacs-lsp.github.io/lsp-mode/page/lsp-lua-language-server/

Да, это полностью поддерживается lsp-mode и довольно продвинутым способом: каждый ключ конфигурации можно легко сопоставить с отдельно задокументированной пользовательской опцией. Вот пример для gopls: https://github.com/emacs-lsp/lsp-mode/blob/0349a1cc0976829fab8f73ecc033252be31a7cf6/clients/lsp-go.el#L215 -L221

@dummdidumm Я тоже решил попробовать neovim-lsp , и он отлично работает даже с zip-упакованными пакетами yarn 2, благодаря переопределяемой опции cmd:

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 svelte-vscode . : мышление:
Все больше редакторов реализуют lsp, поэтому лучше иметь параметры в файле readme language-server .
Вы хотите, чтобы я сделал PR-файл readme, который разъясняет процесс настройки для neovim-lsp и делает ссылку на параметры lsp, которые описаны в пакете svelte-vscode ?

По какой-то причине при разборе svelte.config.js language-server игнорирует onwarn , но использует preprocess . Это предназначено?
Мне кажется, что это проще настроить из svelte.config.js .
Кажется, не удается заставить compilerWarnings игнорировать работу, передав параметры из neovim-lsp . :расстроенный:

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

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

@ non25 это должно работать, потому что это svelte.plugin.svelte.compilerWarnings , а не svelte.compilerWarnings

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

Как мне подавить спад при использовании, например, команды "sapper dev"? Я вообще не вижу опции "предупреждения компилятора". Спасибо.

Была ли эта страница полезной?
0 / 5 - 0 рейтинги