Language-tools: Gunakan onwarn dan opsi lain dari svelte.config.js untuk setiap alat

Dibuat pada 3 Mar 2021  ·  10Komentar  ·  Sumber: sveltejs/language-tools

Saat ini ada tiga tempat di mana saya harus mengonfigurasi pengabaian untuk peringatan a11y svelte:

  1. server bahasa
    lua lspconfig.svelte.setup{ cmd = { "yarn", "svelteserver", "--stdio" }; on_attach = on_attach; settings = { svelte = { plugin = { svelte = { compilerWarnings = { ["a11y-no-onchange"] = "ignore" } } } } } }
  2. svelte-check , yang membuat package.json terlihat jelek saat dikonfigurasi dan ini adalah satu-satunya tempat untuk mengkonfigurasinya

    {
      "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',
      // ...
    },
    

Saya ingin mengonfigurasinya di satu tempat: svelte.config.js . Itu tidak dapat dihindari karena svelte-preprocess dan juga alat-alat ini tetap membacanya untuk svelte-preprocess , mengapa tidak menggunakannya untuk onwarn ?

Juga dalam situasi saat ini saya tidak dapat membuat konfigurasi per proyek untuk server bahasa.

Idealnya, saya ingin menggunakan svelte.config.js baik dalam alat bahasa dan bundler dan mengonfigurasi semua yang berhubungan dengan langsing di sana.
Hal ini juga: https://github.com/sveltejs/language-tools/tree/master/packages/svelte-vscode#settings

Komentar yang paling membantu

Kandidat harmonisasi onwarn menurut saya adalah: language-server, svelte-check, rollup plugin, webpack plugin.

Semua 10 komentar

Laki-laki masuk akal bagi saya. Saya membayangkan bagian yang sulit akan menyetujui penamaan / bagaimana tepatnya itu harus ditentukan

Masuk akal untuk hal-hal seperti peringatan. Saya tidak setuju bahwa semua pengaturan server bahasa harus dibaca darinya, yang seharusnya menjadi tanggung jawab IDE untuk menyediakannya dan berintegrasi dengan server bahasa.

Jadi menggunakan onwarn dalam bentuknya saat ini adalah arah yang dapat diterima?
Agar kompatibel dengan konfigurasi yang ada, kami dapat mengimplementasikan antarmuka panggilan balik onwarn yang serupa untuk mencegat peringatan seperti yang dilakukan saat ini di plugin svelte untuk bundler.

Alasan untuk memiliki mungkin tidak semua, tetapi beberapa konfigurasi untuk server bahasa di svelte.config.js adalah bahwa setidaknya opsi format biasanya dikonfigurasi per proyek. :pemikiran:

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

Opsi pemformatan harus dimasukkan ke dalam file .prettierrc karena ekstensi menggunakan kombinasi yang lebih cantik dengan plugin yang lebih cantik untuk menyelesaikan pemformatan. https://www.npmjs.com/package/prettier-plugin-svelte

Saya memiliki lebih cantik sebagai pengait pra-komit. Konfigurasi ada di package.json .

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

Apakah ada sesuatu yang istimewa dalam doa yang lebih cantik dari LS? Atau harus memuat konfigurasi ini seperti biasanya? :pemikiran:

Ini akan berhasil juga. Maksud saya adalah bahwa opsi pemformatan seharusnya tidak menjadi perhatian svelte.config.js .

Saya setuju, sekarang saya tidak melihat hal lain selain onwarn untuk pindah ke svelte.config.js wajar.

Tidak banyak yang harus diputuskan.

Apakah melakukan panggilan balik onwarn di setiap alat terdengar seperti solusi yang bagus?
Konfigurasi terpadu yang kompatibel dengan yang sekarang di bundler.

Saya agak khawatir tentang menambahkan dukungan svelte.config.js ke hal-hal yang sudah memiliki mekanisme konfigurasi yang mapan. Di ESLint, misalnya, plugin baru saja melewati objek konfigurasi yang telah dimuat ESLint. Ini bisa menjadi hasil dari penggabungan beberapa hirarkis .eslintrc.js file (atau file JSON, atau file YAML, atau isi dari eslintConfig kunci di package.json file), dan Saya tidak berpikir ESLint memberi tahu plugin di mana file-file ini berada, jadi saya tidak tahu di mana plugin harus mencari svelte.config.js . Ada satu cara terpadu untuk menangani konfigurasi, dan inti ESLint ingin bertanggung jawab untuk itu.

Jadi solusinya adalah:

  1. Ajari klien LS saya untuk membaca file konfigurasi dari ruang kerja dan meneruskan konfigurasi ke LS seperti yang dilakukan svelte-vscode .
  2. Impor konfigurasi dari svelte.config.js dan gunakan di .eslintrc.js entah bagaimana. Buat daftar dengan mengabaikan dan menggunakannya di kedua fungsi atau sesuatu.
  3. Ajarkan svelte-check untuk memuat konfigurasi dari ruang kerja.

Sepertinya satu-satunya hal yang layak dimodifikasi adalah svelte-check lalu ?

Selain svelte-check , rasanya bisa dilakukan di userland. :pemikiran:

Kandidat harmonisasi onwarn menurut saya adalah: language-server, svelte-check, rollup plugin, webpack plugin.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat