V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
yudengqing
V2EX  ›  程序员

想问问关于 VS Code 的问题

  •  
  •   yudengqing · 2022-06-16 19:34:22 +08:00 · 2725 次点击
    这是一个创建于 915 天前的主题,其中的信息可能已经有所发展或是发生改变。

    用 vscode 编辑一个 js 文件,大约 2w+行,然后就会发现渲染明显卡顿,跳转,补全啥的基本不会 work

    其他情况,比如打开一个 4k 行左右的 py 文件,补全啥的也很慢,

    不知道是不是只有我遇到了这个问题

    8 条回复    2022-06-17 21:16:32 +08:00
    fds
        1
    fds  
       2022-06-16 19:42:05 +08:00
    依我看,这不是 VSC 的问题,是代码文件的问题。这点 go 语言做得不错,同一 module 下随便分多少个文件都可以。
    Buges
        2
    Buges  
       2022-06-16 19:46:15 +08:00 via Android
    @fds 那就多分几个 module 。
    go 那种,看到别的包里引入了一个 module ,点进去不知道要找的函数在哪个文件里也挺麻烦的。(指的是 GitHub 这种非 IDE 中的情况)
    28ms
        3
    28ms  
       2022-06-16 20:11:03 +08:00 via iPhone
    很正常,我之前用 pycharm2021 改 4k 行的代码,渲染也慢的。现在用 vscode 反而倒是还行。
    python 是原罪
    darklights
        4
    darklights  
       2022-06-16 20:50:40 +08:00
    在我电脑上能找到最大的, tsserver.js, 10M+,有点延迟,没有明显的卡顿,还算可接受范围,其它没什么异常。js 本来就是跳转、不全基本不会 work ,要么写 jsdoc 要么转 ts ,不然很多地方没上下文没法做语义分析。

    补全、跳转慢是因为 lsp 慢,py 不清楚,js 的 lsp 跑的是 node ,用 js 分析 js ,性能上限天生就被封印了。
    fqy12300
        5
    fqy12300  
       2022-06-17 11:02:20 +08:00
    与其去编辑一个 2w 行的 JS 文件,为啥不去编辑 10 个 2K 行 JS 文件呢?
    wangtian2020
        6
    wangtian2020  
       2022-06-17 11:20:45 +08:00
    更新版本,精简插件库,尝试关闭所有插件
    很多有用的插件会提取文件内的单词,在你这种场景下会耗费巨量的性能
    补全跳转可能是工作的,只是需要几十秒才弹得出来

    是只有你遇到这个问题,现代前端是不会编辑这么大的单 js 文件的,文件大说明可拆分
    nothingistrue
        7
    nothingistrue  
       2022-06-17 13:41:21 +08:00
    你的问题跟 vscode 无关,跟 2w+ 行有关。不信你试试用记事本打开你文件,别说编辑,打开都可能卡死。
    haolongsun
        8
    haolongsun  
       2022-06-17 21:16:32 +08:00
    vscode 的语法解析最近换成了 tree-sitter, 正常 2w 行应该没有卡顿,检查一下是不是哪些插件造成的卡顿。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3841 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 05:11 · PVG 13:11 · LAX 21:11 · JFK 00:11
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.