Language-tools: استخدم onwarn والخيارات الأخرى من svelte.config.js لكل أداة

تم إنشاؤها على ٣ مارس ٢٠٢١  ·  10تعليقات  ·  مصدر: sveltejs/language-tools

يوجد حاليًا ثلاثة أماكن يجب أن أقوم بتكوين التجاهل فيها لتحذيرات a11y الخاصة بـ svelte:

  1. خادم اللغة
    lua lspconfig.svelte.setup{ cmd = { "yarn", "svelteserver", "--stdio" }; on_attach = on_attach; settings = { svelte = { plugin = { svelte = { compilerWarnings = { ["a11y-no-onchange"] = "ignore" } } } } } }
  2. svelte-check ، مما يجعل package.json يبدو قبيحًا عند تكوينه وهذا هو المكان الوحيد لتكوينه

    {
      "val": "svelte-check --compiler-warnings a11y-no-onchange:ignore",
      "validate": "yarn val --threshold warning && yarn tsc --noEmit"
    }
    
  3. eslint

    settings: {
      'svelte3/ignore-warnings': ({ code }) => code === 'a11y-no-onchange',
      // ...
    },
    

أود تكوينه في مكان واحد: svelte.config.js . لا يمكن تجنبه بسبب svelte-preprocess وأيضًا هذه الأدوات تقرأه على أي حال مقابل svelte-preprocess ، فلماذا لا تستخدمه مقابل onwarn ؟

أيضًا في الوضع الحالي لا يمكنني إجراء تكوينات لكل مشروع لخادم اللغة.

من الناحية المثالية ، أرغب في استخدام svelte.config.js في كلٍّ من أدوات اللغة والمُجمِّع وتهيئة كل شيء مرتبط به هناك.
هذه الأشياء أيضًا: https://github.com/sveltejs/language-tools/tree/master/packages/svelte-vscode#settings

التعليق الأكثر فائدة

المرشحون لمواءمة onwarn في رأيي هم: language-server ، svelte-check ، rollup plugin ، webpack plugin.

ال 10 كومينتر

إحساس الذكور بالنسبة لي. أتخيل أن الجزء الصعب سيكون الموافقة على التسمية / كيف يجب تحديده بالضبط

من المنطقي بالنسبة لأشياء مثل التحذيرات. لا أوافق على أنه يجب قراءة جميع إعدادات خادم اللغة منه ، حيث يجب أن يكون ذلك من مسؤولية IDE لتوفيرها والتكامل مع خادم اللغة.

لذا فإن استخدام onwarn بصيغته الحالية هو اتجاه مقبول للذهاب؟
لكي نكون متوافقين مع التكوينات الحالية ، يمكننا تنفيذ واجهة رد اتصال onwarn مماثلة لاعتراض التحذيرات كما يتم إجراؤها حاليًا في المكونات الإضافية svelte للحزم.

السبب في وجود ربما ليس كل شيء ، ولكن بعض التهيئة لخادم اللغة في svelte.config.js هو أن خيارات التنسيق على الأقل عادة ما يتم تكوينها على أساس كل مشروع. : التفكير:

https://github.com/sveltejs/language-tools/tree/master/packages/svelte-vscode#sveltepluginsvelteformatenable

يجب وضع خيارات التنسيق في ملف .prettierrc حيث أن الامتداد يستخدم أجمل في تركيبة مع ملحق أجمل لإنجاز التنسيق. https://www.npmjs.com/package/prettier-plugin-svelte

لدي أجمل كخطاف للالتزام المسبق. التكوين في package.json .

{
  "prettier": {
    "singleQuote": true,
    "printWidth": 80,
    "plugins": [
      "prettier-plugin-svelte"
    ]
  }
}

هل هناك شيء خاص في الدعاء الأجمل من LS؟ أو يجب تحميل هذا التكوين كما يفعل عادة؟ : التفكير:

هذا سوف يعمل أيضا كانت وجهة نظري أن خيارات التنسيق يجب ألا تكون موضع اهتمام svelte.config.js .

أوافق ، الآن لا أرى أي شيء آخر غير onwarn للانتقال بشكل معقول إلى svelte.config.js .

ليس هناك الكثير لتقرره.

هل يبدو إجراء إعادة الاتصال بـ onwarn في كل أداة حلاً جيدًا؟
تكوين موحد متوافق مع التكوين الحالي في الحزم.

أنا مهتم بدلاً من ذلك بإضافة دعم svelte.config.js للأشياء التي لديها بالفعل آليات راسخة للتكوين. في ESLint ، على سبيل المثال ، يتم تمرير المكونات الإضافية للتو في كائن التكوين الذي قام ESLint بتحميله بالفعل. هذا يمكن أن يكون نتيجة لدمج عدة الهرمية .eslintrc.js الملفات (أو ملفات JSON، أو ملفات YAML، أو محتويات eslintConfig المفاتيح في package.json الملفات)، و لا أعتقد أن ESLint يخبر المكون الإضافي بمكان وجود أي من هذه الملفات ، لذلك لا أعرف أين يجب أن يبحث المكون الإضافي عن svelte.config.js . هناك طريقة واحدة موحدة للتعامل مع التكوين ، ويريد ESLint core أن يكون مسؤولاً عن ذلك.

إذن الحل هو:

  1. قم بتعليم عميل LS الخاص بي لقراءة ملفات التكوين من مساحة العمل وتمرير التكوين إلى LS مثل svelte-vscode يفعل.
  2. قم باستيراد التكوين من svelte.config.js واستخدمه في .eslintrc.js بطريقة ما. قم بعمل قائمة مع التجاهل واستخدمها في كلتا الوظيفتين أو شيء ما.
  3. قم بتعليم svelte-check لتحميل التكوين من مساحة العمل.

يبدو أن الشيء الوحيد الذي يستحق التعديل هو svelte-check إذن؟

بخلاف svelte-check ، يبدو أنه يمكن تنفيذه في أرض المستخدم. : التفكير:

المرشحون لمواءمة onwarn في رأيي هم: language-server ، svelte-check ، rollup plugin ، webpack plugin.

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات