描述错误
JavaScriptSnippets在 Svelte 组件中停止工作或变得非常缓慢。 还不断打破 prettier-vscode 格式。
再现
安装JavaScriptSnippets ,打开一个相当大的 svelte 文件并尝试触发一个片段。
预期行为
片段应该像在 js 文件中那样立即打开,不会挂起几秒钟/无限期
系统(请填写以下信息):
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 会发生什么?
@jasonlyu123如果没有tsconfig.json
或jsconfig.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我可以确认问题已经消失 - 随时关闭 🎉
非常感谢大家 - 喜欢这个扩展。 👏