vscode 当处于非活动状态时,F5开始调试,但在活动状态下刷新页面,

yvgpqqbh  于 4个月前  发布在  Vscode
关注(0)|答案(6)|浏览(133)

当所有扩展都禁用时,是否会出现这个问题?:是的

  • VS Code 版本:1.80
  • OS 版本:macOS 13.4.1

重现步骤:
我不知道如何在VSCode中重现此问题,因为它没有原生的浏览器刷新功能,或者在vscode.dev中,它也没有调试功能,但这个问题出现在支持调试的谷歌Web版VSCode中,理想情况下应该在上游修复,因为您已经区分了isWeb和isPlatform,当您或任何人支持在web上调试时,这将被破坏。要让我们重现它,您需要使用F5开始调试,然后再次按F5刷新页面停止调试等。)
在浏览器中按F5是一个相当常见的刷新快捷键。我认为不应该用它来开始在web上调试(isWeb && !isStandalone())。相反,也许我们可以在web上使用alt-F5?似乎还没有人采用这个建议。
如果您愿意接受贡献,请告诉我。

yqhsw0fo

yqhsw0fo1#

我也在使用网页版时遇到了一些问题,按下F5和ctrl+R会刷新页面,或者按下ctrl+w会关闭浏览器标签页(如果不小心按到ctrl+w的话就相当糟糕)。
VSCode能否拦截这些快捷键绑定,即使没有为它们绑定任何命令?

kr98yfug

kr98yfug2#

这就像#181792。我不会删除web上的现有键绑定,但我会提交一个PR,将alt+F5作为另一个键绑定。

5kgi1eie

5kgi1eie3#

实际上,有两件事。看起来快捷键绑定实际上是被占用了

在Mac上的Edge和Chrome中,F5不起作用。也许那是仅限于Windows的?

ubby3x7f

ubby3x7f4#

你是对的,Mac似乎不使用F5进行刷新。我没有Windows系统可以测试,但在我的Linux系统上,F5确实会刷新。这个显然不可靠的来源声称“所有现代浏览器都使用F5进行刷新”,这在Mac上显然是错误的,但对于其他操作系统可能是正确的?https://www.computerhope.com/jargon/f/f5.htm#:~:text=In%20all%20modern%20Internet%20browsers,contents%20of%20the%20page%20again.
我认为另一个替代的键盘快捷键并不能解决问题,那就是根据你所处的状态,F5会执行非常不同的操作,而当你处于调试会话中时,它具有破坏性(F5重新加载页面并结束你的调试会话)。
我看到了两个主要方向:

  1. VSCode覆盖F5,即使在web上也是如此。在这种情况下,我想让它也覆盖它,并在尚未涵盖的情况下可能什么都不做,例如当调试器正在运行但当前没有暂停在断点上时,以避免破坏性的刷新,从而终止你的调试会话。
  2. VSCode在web上停止覆盖F5,因为至少在Linux和可能在Windows上,F5用于刷新页面。但是,然后替代的键盘快捷键不起作用 - 它需要完全停止占用F5,以便它始终可以用于刷新。
    我认为当前的混合状态非常令人沮丧,至少对于那些发生这种情况的系统的人来说。
0dxa2lsx

0dxa2lsx5#

@rehmsen的确,混合行为令人讨厌。在我看来,“刷新”按钮是危险的,因为它可能会被意外按下。而且由于这是一个“网络应用程序”,而不仅仅是一个“网页”,我认为F5键应该始终被覆盖——至少要做到“什么都不做”。用户仍然可以通过鼠标点击所有浏览器都具有的刷新按钮来启动真正的、有意的“刷新”。

b4qexyjb

b4qexyjb6#

我猜我没有在这里跟进- F5在debugState == inactive时执行"开始",在debugState == 'stopped'时执行"继续"。为了填补空白并阻止浏览器的按键绑定,可以添加一个在debugState不处于非活动或停止状态时运行的虚拟命令。

相关问题