// 关于Markdown Preview Enhanced插件该插件有一个自动打开md预览的功能,即左边是代码区,右边是预览区(ok)
问题:每次鼠标点击右边预览区后再双击打开其他文件,发现其他文件在右边窗口被打开并使得刚才的预览看不到了
原理:因为打开文件后vscode会调用async openEditor(e, t, i)方法,大概在148867行进行打开Editor
首先会先去findTargetGroup(e, t, i)(大概在148882行)找目标组,默认情况是找到了active的那个组(鼠标激活的Editor所在的组)
然后之后的代码全部在基于这个组上进行操作
解决:在findTargetGroup若遇到.md结尾的文件始终返回第一个组
代码:将这个代码加到findTargetGroup上部(在let o;后面)if(e&&e.resource&&e.resource.path&&e.resource.path.indexOf(“.md”)!=-1){o=this.editorGroupService.getGroups()[0];return o;}
其他:
Markdown Preview Enhanced第一次创建WebviewPanel(用来呈现Editor的内容面板)
插件调用关键点
extensionHostProcess.js内的createWebviewPanel方法->workbench.desktop.main.js的$createWebviewPanel方法(vscode用这个函数来创建窗口Panel)