Language-tools: Svelte Beta 打破了其他扩展,如 vscode-javascript 和 prettier-vscode

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

描述错误
JavaScriptSnippets在 Svelte 组件中停止工作或变得非常缓慢。 还不断打破 prettier-vscode 格式。

再现
安装JavaScriptSnippets ,打开一个相当大的 svelte 文件并尝试触发一个片段。

预期行为
片段应该像在 js 文件中那样立即打开,不会挂起几秒钟/无限期

系统(请填写以下信息):

  • 操作系统:MacOS 10.15.5
  • IDE:VSCode 1.46.1
  • 插件/包:Svelte Beta 和 JavaScriptSnippets

所有17条评论

Svelte Beta 也是一个格式提供者,我们使用 prettier 的 npm 包有自己的一套 prettier。 据我所知,你不能同时使用两者。 您的设置是完全有效还是有效但速度非常慢。

我删除了 prettier 但 JavaScriptSnippets 仍然不起作用。

问题视频: https :

片段出现需要 40 秒!

我说的只是更漂亮。 这两个是不同的问题。

关于 JavaScriptSnippets,其他 javascript 补全也那么慢吗?

@jarrodldavis 很公平,我猜是语言服务器挂起导致 vscode(包括扩展)挂起。

是的,所有自动完成都比较慢,只是慢了 40 秒,更多的是 5/10 秒

@rob-balfre 你是想提我还是 @jasonlyu123?

是的,完全是意外。 对不起

2020 年 6 月 19 日星期五,Jarrod Davis 16:49, notifications@ github.com 写道:

@rob-balfre https://github.com/rob-balfre你是想提到我还是
@jasonlyu123 https://github.com/jasonlyu123


你收到这个是因为你被提到了。
直接回复本邮件,在GitHub上查看
https://github.com/sveltejs/language-tools/issues/207#issuecomment-646468314
或取消订阅
https://github.com/notifications/unsubscribe-auth/AAUAM7RDP47JKUF5JGMLFBTRXMC57ANCNFSM4OCHZ2ZA
.

我打开了一个约 150 行的组件,建议立即出现。

您能否在重新加载窗口后重现该错误,然后将 Output-Svelte 的 VSCode 日志粘贴到此处?

Initialize language server at /Users/xx/xxui Initialize new ts service at Warning - unrecognized UnaryExpression operator 53! This is an edge case unaccounted for in svelte2tsx, please file an issue: https://github.com/sveltejs/language-tools/issues/new/choose !$xxelections Warning - unrecognized UnaryExpression operator 53! This is an edge case unaccounted for in svelte2tsx, please file an issue: https://github.com/sveltejs/language-tools/issues/new/choose !$xxelections SnapshotManager File Statistics: Project files: 2211 Svelte files: 0 From node_modules: 0 Total: 2211 Trying to load config for /Users/xx/xxui/svelte/components/xx/_SearchForm.svelte Warning - unrecognized UnaryExpression operator 53! This is an edge case unaccounted for in svelte2tsx, please file an issue: https://github.com/sveltejs/language-tools/issues/new/choose !$userDebtor Warning - unrecognized UnaryExpression operator 53! This is an edge case unaccounted for in svelte2tsx, please file an issue: https://github.com/sveltejs/language-tools/issues/new/choose !$UserIsConsultant Warning - unrecognized UnaryExpression operator 53! This is an edge case unaccounted for in svelte2tsx, please file an issue: https://github.com/sveltejs/language-tools/issues/new/choose !$xxelections Warning - unrecognized UnaryExpression operator 53! This is an edge case unaccounted for in svelte2tsx, please file an issue: https://github.com/sveltejs/language-tools/issues/new/choose !$xxelections Error walking node { start: 478, end: 533, type: 'IfBlock', expression: Node { type: 'MemberExpression', start: 484, end: 502, loc: SourceLocation { start: [Position], end: [Position] }, object: Node { type: 'Identifier', start: 484, end: 490, loc: [SourceLocation], name: 'sector' }, property: Node { type: 'Identifier', start: 491, end: 502, loc: [SourceLocation], name: 'CarrierName' }, computed: false }, children: [ { start: 503, end: 525, type: 'MustacheTag', expression: [Node] }, { start: 525, end: 526, type: 'Text', raw: ' ', data: ' ' } ] } Warning - unrecognized UnaryExpression operator 53! This is an edge case unaccounted for in svelte2tsx, please file an issue: https://github.com/sveltejs/language-tools/issues/new/choose !$helpPanelContentKey

@rob-balfre 这是唯一有问题的文件吗? 我可以重现警告,但完成仍然是实例显示给我。 我认为这与您面临的问题无关。

@jasonlyu123不仅仅是那个文件,而且似乎包含在那个项目中。 其他类似规模的项目似乎要顺利得多。 试图隔离问题 - 会让你知道

对我来说突出的是最初加载了 2211 个文件(看起来很多),没有一个是细长的文件,这看起来很奇怪。 你能粗略地描述一下从你运行 VSCode 的根目录开始的文件夹结构吗? 它是一个简单的 svelte 项目,还是 svelte 项目只是一个子文件夹,旁边还有诸如 Backend 或其他东西之类的东西?

在 svelte 项目的根目录下有jsconfig.json吗? 如果没有,如果您添加一个内容{} ,然后重新启动 VSCode 会发生什么?

@rob-balfre 我在这个分支中启用了打字稿的日志记录。 您可以按照此处的调试说明使用您的项目对其进行调试并在此处发布输出吗?

@jasonlyu123如果没有tsconfig.jsonjsconfig.json防止内存泄漏的一般想法-> 如果我们添加include: ["**/*.svelte"] -property 以防找不到配置怎么办(类似于extends逻辑)? 这样就不会加载 js/ts 文件,这可能会导致很多内存问题。

这似乎是一个好方法。 它可能更符合 vscode 在工作区中处理 js 的方式。

顺便说一句,当我尝试这种方法并从我们公司的项目中删除jsconfig.json时,突然出现@rob-balfre遇到的问题。 输出记录了 1000 秒的项目文件,来自 node_modules 的 2000 秒,完成需要 5 - 10 秒才能显示出来。 内存使用量也从 200MB 跃升至 900MB。 我想我遇到的问题是因为 dist 文件和我还有一些来自另一个包管理器的包,更准确地说是 NuGet,所以拥有 jsconfig 确实为我省去了很多麻烦。

@rob-balfre 你能检查一下错误是否仍然存在吗?

@dummdidumm我可以确认问题已经消失 - 随时关闭 🎉

非常感谢大家 - 喜欢这个扩展。 👏

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

相关问题

johanbissemattsson picture johanbissemattsson  ·  4评论

matthewmueller picture matthewmueller  ·  5评论

non25 picture non25  ·  5评论

baileyherbert picture baileyherbert  ·  3评论

AlexGalays picture AlexGalays  ·  5评论