Эти предупреждения часто приносят больше вреда, чем пользы, и загрязняют нашу консоль.
Недопустимо засорять код <!-- svelte-ignore a11y-no-onchange -->
и т. Д.
Обычно мы можем отфильтровать их в rollup.config, но svelte-check этого не выберет.
Как лучше всего их отфильтровать:
Может быть, пора представить конфигурационный файл?
Вы можете использовать опцию --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
, однако языковой сервер все еще выдает предупреждения:
Это в 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. Вот как это делается.
Я не знаю, как 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"? Я вообще не вижу опции "предупреждения компилятора". Спасибо.
Самый полезный комментарий
нет, я не использую
lsp-mode
. Я использую встроенный LSP neovim, и он может передавать некоторые параметры LSP. Вот как это делается.Я не знаю, как
lsp-mode
обрабатывает этот вариант. Я быстро прочитал его вики и думаю, что это возможно. Например, он может передавать некоторые параметры Lua LSP. https://emacs-lsp.github.io/lsp-mode/page/lsp-lua-language-server/