vscode 最近的入口URL对于Windows跳转列表来说可能过大,

7eumitmz  于 5个月前  发布在  Vscode
关注(0)|答案(7)|浏览(53)

这个问题在使用所有扩展都被禁用时是否发生?:是/否 N/A

- VS Code 版本:

版本:1.78.2(用户设置)
提交:b3e4e68
日期:2023-05-10T14:39:26.248Z
Electron:22.5.2
Chromium:108.0.5359.215
Node.js:16.17.1
V8:10.8.168.25-electron.0
操作系统:Windows_NT x64 10.0.22621
沙箱:是

- 操作系统版本:

操作系统名称 Microsoft Windows 11 Home
版本 10.0.22621 Build 22621
WSL 版本:1.2.5.0
内核版本:5.15.90.1
描述:Ubuntu 22.04.1 LTS
发布:22.04
代号:jammy
重现步骤:

  1. 使用链接启动 VScode,链接指向开发容器项目
    VScode 从快捷方式启动正常。然后我必须选择在 VScode 启动后选择“在开发容器中打开”。以前可以直接从指向开发容器的链接打开,这样开发容器就不需要手动启动了。这个功能突然停止工作,没有明显的原因。(例如,下面的“固定”链接可以正常工作,但“最近文件夹”链接无法正常工作)。
1cosmwyk

1cosmwyk1#

你能否

  • 运行命令 Developer: Log Storage Database Contents
  • 用命令 Developer: Toggle Developer Tools 打开开发者工具
  • 在开发者工具的控制台选项卡中,按 Ctrl + F(查找)并查找 history.recentlyOpenedPathsList
  • 将该条目的内容复制到这里

v2g6jxz6

v2g6jxz62#

@aeschli ,感谢回复。
当我尝试从快捷方式启动开发容器时,我得到以下结果:

当这种情况发生时,history.recentlyOpenedPathsListDeveloper: Log Storage Database Contents 输出中完全不出现。如果我从快捷方式启动到文件夹,我会得到这个结果:

在这种情况下,我确实会得到一个 history.recentlyOpenedPathsList ——我不确定你是想要在我实际在开发容器中重新打开之前还是之后的内容,但无论如何看起来都很相似。抱歉,没有一点格式化就很难捕捉到完整的输出:

ycl3bljg

ycl3bljg3#

非常感谢。
正在努力理解它。

  • 有一些文件夹URI条目缺少路径的/。这解释了日志中的错误(cannot call joinPath on URI without path)。但这些不是似乎不起作用的跳转列表中的条目

它们没有标签,所以不确定它们是否是由开发容器创建的
-> 我们永远不应该使用空路径打开工作区中的文件夹URI

beq87vna

beq87vna4#

在vscode/src/vs/platform/windows/electron-main/windowsMainService.ts文件中,我们对file方案进行了路径验证:
第1030行:| | constpathStat=awaitPromises.stat(path); |
你可以在这里添加远程路径验证:
vscode/src/vs/platform/windows/electron-main/windowsMainService.ts
第1147行:| | privatedoResolveRemotePath(path: string,options: IPathResolveOptions): IPathToOpen|undefined{ |

olmpazwi

olmpazwi5#

我认为我现在明白了发生了什么。我们创建的Windows jump list entry运行VS Code时带有一个参数:
例如:program: code-insiders args: --folder-uri 'vscode-remote://dev-container%28.... .
在开发容器的情况下,这变成了一个非常长的参数。由于某些操作系统限制(或Electron错误),参数被截断,VSCode在一个没有路径的远程URI上打开。这个无效的条目最终也会出现在最近的历史记录中:在recentlyOpenedPathsList中:条目3是截断的条目1
Electron API没有描述任何关于args的限制。我会针对Electron创建一个问题,看看还能做什么。也许开发容器可以让URI变得更短(@chrmarti)
我们当然想像@bpasero建议的那样验证打开的URI。

k2fxgqgv

k2fxgqgv6#

可能不相关,但我尝试创建一个尽可能短的项目文件夹 - 只是 /home/w 。当我尝试从 dev-container 快捷方式启动时,它仍然无法正常工作。我想 VScode 因为我之前的历史记录条目太多,甚至在尝试打开我的项目之前就放弃了。历史记录列表中的新条目是:

我猜插槽1中的条目是通过文件夹快捷方式打开的项目,而插槽0是 dev container 版本。我对 dev-container+7b22...7d7d 字符串的长十六进制部分进行了十六进制解码,解码结果为:
{"hostPath":"\\\\wsl.localhost\\Ubuntu\\home\\w","configFile":{"$mid":1,"path":"/home/w/.devcontainer/devcontainer.json","scheme":"vscode-fileHost"}}
有没有办法清除所有其他历史记录条目,以便我可以尝试更短的路径并看看何时会出问题?

btqmn9zl

btqmn9zl7#

是否有办法清除所有其他历史记录条目?
您可以使用 File: Clear recently opened 命令。但我建议不要花太多时间尝试获取较小的路径。目前,不要使用Windows跳转菜单来打开开发容器,而是打开一个空窗口并在VS Code中使用最近的菜单。

相关问题