Language-tools: 记录工具的 Svelte 编译器限制。

创建于 2021-02-04  ·  2评论  ·  资料来源: sveltejs/language-tools

回应https://github.com/sveltejs/language-tools/issues/726#issuecomment -773096834,特别是:

编写自定义解析器对于这样的功能来说听起来工作量太大。

我认为由于 Svelte 编译器的限制,还有其他问题被阻止或忽略了。 在sveltejs/language-tools包中也有与 Svelte 编译器对抗的技巧和变通方法。

您认为创建一个包装问题来识别可以改进工具的问题会有所帮助吗? 类似于https://github.com/sveltejs/svelte/issues/820https://github.com/sveltejs/language-tools/issues/83。 人们可以在可能的情况下做出零碎的贡献,或者如果出现 Svelte 4 大修情况,则会考虑此类问题。

最有用的评论

不知道我们是否需要一个大线程。 大多数可以追溯到几个根本原因。 我可以想到使用 svelte 编译器有两个主要限制:

编译器不是为编辑器设计的。

请参阅https://github.com/sveltejs/svelte/issues/4818。

在编辑过程中,代码无效的可能性非常高。 但是 svelte 编译器旨在抛出语法错误以警告用户。 因此,当出现语法错误时,依赖于 svelte 编译器的功能将不起作用。

我们确实考虑过为编辑器编写一个专用的解析器,但这似乎是太多的工作和维护负担。 所以这不是一个优先事项,但我不会说它永远不会发生。

预处理是异步的。

https://github.com/sveltejs/language-tools/issues/339
Typescript 的语言服务大多是同步的,所以我们不能在 svetle2tsx 之前进行预处理。 这也是 eslint-plugin-svelte3 的一大障碍。 也许svelte.preprocessSync可能会有所帮助。

所有2条评论

不知道我们是否需要一个大线程。 大多数可以追溯到几个根本原因。 我可以想到使用 svelte 编译器有两个主要限制:

编译器不是为编辑器设计的。

请参阅https://github.com/sveltejs/svelte/issues/4818。

在编辑过程中,代码无效的可能性非常高。 但是 svelte 编译器旨在抛出语法错误以警告用户。 因此,当出现语法错误时,依赖于 svelte 编译器的功能将不起作用。

我们确实考虑过为编辑器编写一个专用的解析器,但这似乎是太多的工作和维护负担。 所以这不是一个优先事项,但我不会说它永远不会发生。

预处理是异步的。

https://github.com/sveltejs/language-tools/issues/339
Typescript 的语言服务大多是同步的,所以我们不能在 svetle2tsx 之前进行预处理。 这也是 eslint-plugin-svelte3 的一大障碍。 也许svelte.preprocessSync可能会有所帮助。

我同意@jasonlyu123在那里的观点,以至于我将它们添加到 #83 并相应地更新了标题。 这现在应该很好地概述了今天可能发生的事情,仍然缺少什么以及一般限制是什么。

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

相关问题

arxpoetica picture arxpoetica  ·  3评论

scippio picture scippio  ·  3评论

matthewmueller picture matthewmueller  ·  5评论

vatro picture vatro  ·  3评论

JAD3N picture JAD3N  ·  5评论