Language-tools: 对每个工具使用 svelte.config.js 中的 onwarn 和其他选项

创建于 2021-03-03  ·  10评论  ·  资料来源: sveltejs/language-tools

目前,我应该在三个地方为 svelte 的 a11y 警告配置忽略:

  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并在那里配置与 svelte 相关的所有内容。
这东西也是: https :

最有用的评论

在我看来,协调 onwarn 的候选者是:language-server、svelte-check、rollup 插件、webpack 插件。

所有10条评论

男性对我来说很有意义。 我想困难的部分将是就命名/应该如何指定达成一致

这对于警告之类的事情是有意义的。 我不同意所有语言服务器设置都应该从中读取,这应该是 IDE 的责任来提供这些设置并与语言服务器集成。

那么以目前的形式使用 onwarn 是可以接受的方向吗?
为了与现有配置兼容,我们可以实现类似的 onwarn 回调接口来拦截警告,就像目前在捆绑器的 svelte 插件中所做的那样。

可能不是全部,但是svelte.config.js语言服务器的一些配置的原因是至少通常在每个项目的基础上配置格式选项。 :思维:

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

格式化选项应该放在.prettierrc文件中,因为扩展使用 prettier 和 prettier 插件来完成格式化。 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 文件,或package.json文件中eslintConfig键的内容)合并的结果,以及我不认为 ESLint 会告诉插件这些文件在哪里,所以我不知道插件应该在哪里寻找svelte.config.js 。 有一种统一的方式来处理配置,ESLint 核心希望对此负责。

所以解决办法是:

  1. 教我的 LS 客户端从工作区读取配置文件并将配置传递给 LS,就像svelte-vscode那样。
  2. svelte.config.js导入配置并以某种方式在.eslintrc.js使用它。 制作一个带有忽略的列表,并在两个函数或其他东西中使用它。
  3. svelte-check从工作区加载配置。

看起来唯一值得修改的是svelte-check那么?

除了svelte-check ,感觉它在用户空间中是可行的。 :思维:

在我看来,协调 onwarn 的候选者是:language-server、svelte-check、rollup 插件、webpack 插件。

此页面是否有帮助?
0 / 5 - 0 等级

相关问题

jasonlyu123 picture jasonlyu123  ·  16评论

joebobmiles picture joebobmiles  ·  30评论

limitlessloop picture limitlessloop  ·  16评论

orta picture orta  ·  15评论

rob-balfre picture rob-balfre  ·  17评论