Language-tools: 显示错误

创建于 2020-06-18  ·  3评论  ·  资料来源: sveltejs/language-tools

描述错误

<!doctype html>显示错误。 外观与https://github.com/sveltejs/language-tools/issues/143相关

重现

CleanShot 2020-06-18 at 09 50 11@2x
CleanShot 2020-06-18 at 09 54 13@2x

<!doctype html />
<html lang="en">
  <slot name="head" />
  <body>
    <slot name="view" />
    <slot name="script" />
  </body>
</html>

删除doctype可解决此问题。 我还尝试了<!doctype html> ,但是自动格式化仍然会插入<!doctype html />

预期行为

没有错误。 似乎它已经固定在svelte中: https :

我无法在Svelte REPL中重现它(我遇到了另一个错误),但是我认为这应该与SSR一起使用。

系统(请完成以下信息):

  • 作业系统:OSX
  • IDE:VSCode
  • 插件/软件包:Svelte Beta v99.0.46
bug good first issue

最有用的评论

@dummdidumm根据您的建议,我创建了一个拉取请求#213。

所有3条评论

这是一个svelte2tsx问题。 给定输入的输出为:

<></>;function render() {
<><!doctype html />
<html lang="en">
  <slot name="head" />
  <body>
    <slot name="view" />
    <slot name="script" />
  </body>
</html></>
return { props: {}, slots: {head: {}, view: {}, script: {}} }}

export default class {
    $$prop_def = __sveltets_partial(render().props)
    $$slot_def = render().slots
}

<!doctype html />不是有效的jsx标记,因此会引发这些语法错误。 我认为最好的解决方案是检查svelte2tsx是否在文档开头存在这样的字符串,并在转换为jsx的过程中使用正则表达式将其删除,以检查“是否有一个以他开头的标签开始”。

@dummdidumm根据您的建议,我创建了一个拉取请求#213。

谢谢@skippednote ! 该修复程序将在大约20小时后提供。

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