这个问题是否在禁用所有扩展时发生?:是
类型:错误
我最近在本地使用以下配置构建了vscode,最后一次提交是61b242c。
Version: 1.92.0
Commit: Unknown
Date: Unknown
Electron: 30.1.2
ElectronBuildId: undefined
Chromium: 124.0.6367.243
Node.js: 20.14.0
V8: 12.4.254.20-electron.0
OS: Darwin arm64 23.5.0
我发现markdown预览的搜索功能无法正常工作。这似乎是一个最近引入的问题,因为当我尝试在稳定版本中执行搜索操作时,我可以在整个markdown预览中进行搜索。
重现问题的步骤:
- 预览一个Markdown文件
- 在markdown文件中搜索任何关键字。
- 您将看到它不会显示结果。
这个错误可能会在下一个版本中被推送,并可能导致即将发布的稳定版本出现问题。
PFA:该问题的POC视频。
vscode_find_issue.mp4
如果@mjbvz在这里能提供一些帮助就太好了。
1条答案
按热度按时间goqiplq21#
在尝试在调试过程中搜索Markdown预览时,代码确实会触发
WebViewMainService.findInFrame()
:vscode/src/vs/platform/webview/electron-main/webviewMainService.ts
第50行到第59行 in 709c3d7
| | publicasyncfindInFrame(windowId: WebviewWindowId,frameName: string,text: string,options: {findNext?: boolean;forward?: boolean}): Promise{ |
| | constinitialFrame=this.getFrameByName(windowId,frameName); |
| | |
| | typeWebFrameMainWithFindSupport=WebFrameMain&{ |
| | findInFrame?(text: string,findOptions: FindInFrameOptions): void; |
| | on(event: 'found-in-frame',listener: Function): WebFrameMain; |
| | removeListener(event: 'found-in-frame',listener: Function): WebFrameMain; |
| | }; |
| | constframe=initialFrameasunknownasWebFrameMainWithFindSupport; |
| | if(typeofframe.findInFrame==='function'){ |
然而,
frame.findInFrame
是undefined
,所以它跳过了函数的其余部分 - 这似乎是为什么它不起作用的原因。现在,根据这个问题 #201176 ,微软为VS Code发布使用了一个 自定义构建 的electron(来自 https://github.com/microsoft/vscode-electron-prebuilt ,该版本不对外公开),具有一个
WebFrameMain.FindInFrame()
实现,因此搜索可以正常工作。意图似乎是将更改逐渐上游到主要的electron仓库,但不幸的是,关于
FindInFrame
内容的PR目前已关闭: electron/electron#28274也许如果我们能够将那个PR合并到一个更新的electron本地构建中,那么我们就可以将其与我们的vscode一起用于调试? 🤔