Language-tools: كيف يمكننا تعطيل التحذيرات svelte؟ (a11y ، إلخ)

تم إنشاؤها على ٢ نوفمبر ٢٠٢٠  ·  12تعليقات  ·  مصدر: sveltejs/language-tools

غالبًا ما تضر هذه التحذيرات أكثر مما تنفع وتلوث عقارات وحدة التحكم الخاصة بنا.
من غير المقبول إلقاء الكود باستخدام <!-- svelte-ignore a11y-no-onchange --> وما إلى ذلك.

يمكننا عادة تصفية هذه العناصر في الملف التجميعي ولكن 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 . راجع الملف التمهيدي svelte-check لمزيد من المعلومات.
حول شيء رمز VS: يمكنك دائمًا إضافة إعدادات مساحة العمل 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. كيف تتكامل IDEs الأخرى مع خادم اللغة؟ يتوقع خادم اللغة كائن تكوين (بنية كما في الملف التمهيدي لامتداد vscode) عند بدء التشغيل أثناء أمر التهيئة وفقًا لبروتوكول خادم اللغة.

مسكتك. جميع عملاء خادم اللغة كامل الميزات ، بما في ذلك وضع lsp ضمن Emacs ، لديهم دعم لتمرير التكوين عبر JSONRPC إلى الخادم. الآن بعد أن فهمت المكان المقصود من تكوينه ، يجب أن يكون من السهل تحسين وحدة Svelte في وضع lsp لربط مفتاح التكوين هذا بخيار مستخدم مناسب. سأفتح مشكلة ضد وضع lsp وفقًا لذلك.

قد يكون من الجدير بالذكر هذا صراحة في التمهيدي: "يتم تكوين خادم اللغة عبر بروتوكول LSP عن طريق تمرير كائن التكوين ؛ يجب أن يكون لدى عميل LSP طريقة لتعيين كائن التكوين للخادم. إليك ارتباط إلى مواصفات التكوين المدعوم [...] "

قد يكون من المفيد أيضًا تحليل خيارات سطر الأوامر و / أو إلقاء خطأ عند تمرير أي منها ؛ لم يكن واضحًا بالنسبة لي ما إذا كانت خيارات سطر الأوامر مدعومة ، نظرًا لأن --help لم يعمل كما هو متوقع.

شكرا لمساعدتك.

elianiva في إصدار حديث ذكرته أنك تقوم أيضًا بتشغيل LSP مباشرةً وتمكّنت من تكوين بعض الإعدادات - هل هناك فرصة لاستخدام نفس وضع LSP الذي يتحدث عنه @ raxod502 ، فربما تكون قادرًا على المساعدة؟

كلا ، أنا لا أستخدم lsp-mode . أستخدم LSP المدمج من neovim ويمكنه تمرير بعض الخيارات إلى LSP. إليك كيف يتم ذلك.

image

لا أعرف كيف يتعامل lsp-mode مع هذا الخيار. لقد قمت بقراءة سريعة من الويكي الخاص بها وأعتقد أنه من الممكن القيام بذلك. يمكنه تمرير بعض الخيارات إلى Lua LSP على سبيل المثال. https://emacs-lsp.github.io/lsp-mode/page/lsp-lua-language-server/

نعم ، هذا مدعوم بالكامل من خلال وضع lsp ، وبطريقة متقدمة إلى حد ما: يمكن تعيين كل مفتاح تكوين بسهولة إلى خيار مستخدم موثق بشكل منفصل. فيما يلي مثال على gopls: https://github.com/emacs-lsp/lsp-mode/blob/0349a1cc0976829fab8f73ecc033252be31a7cf6/clients/lsp-go.el#L215 -L221

dummdidumm قررت أيضًا تجربة neovim-lsp ، وهي تعمل ببراعة حتى مع حزم خيوط 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 إلى خيارات التكوين ، والتي وجدتها في حزمة svelte-vscode . : التفكير:
يقوم المزيد من المحررين بإجراء تطبيقات lsp الخاصة بهم ، لذلك من الأفضل أن يكون لديك خيارات في الملف التمهيدي language-server أيضًا.
هل تريد مني أن أقوم بعمل علاقات عامة تمهيدية توضح عملية التكوين لـ neovim-lsp وتنشئ رابطًا لخيارات lsp الموضحة في حزمة svelte-vscode ؟

لسبب ما ، عند تحليل svelte.config.js ، يتجاهل onwarn 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 التقييمات