一怒之下,禁掉了 Ruff

6 月 23 日
 teli
一个目录,通过网盘客户端在两台电脑上同步,内容自然一模一样
同样的 vs 插件
不同的只是,一台笔记本,一台台式机
笔记本在写代码时,哪怕一点点改动,Ruff 就会卡在那,没提示,不保存……

大家说,原因是什么?
3337 次点击
所在节点    Visual Studio Code
1 条回复
CapNemo
6 月 24 日
首先,通过网盘同步代码会引入不少问题,建议走 Git 。其次,网盘同步通常依赖系统的文件修改回调,而 VSCode 中的 Ruff 扩展作为 LSP (语言服务器)服务器,会实时响应文件变更(包括输入过程中的诊断和保存时的格式化),并非仅依赖“保存”事件。当网盘客户端和 Ruff 同时监听文件变化时,可能形成循环触发:VSCode 修改文件 → 系统通知网盘 → 网盘同步时可能再次修改文件元数据或状态 → 再次触发系统通知 → Ruff 再次响应,如此反复。如果任何一方未处理好频繁修改或增量同步逻辑,就可能导致任务队列积压,进而引发卡顿。此外,网盘客户端可能只在完成上传同步后才通知系统写入成功,这改变了“落盘”的语义,使得每次保存的完成信号延迟,而代码项目包含大量频繁改动的小文件,配合无线网络的高延迟,容易造成 I/O 请求积压,最终导致界面无响应。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1222378

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX