vscode "Reveal in Explorer View"在工作区之外的文件中表现异常

1l5u6lss  于 2个月前  发布在  Vscode
关注(0)|答案(6)|浏览(41)

当前行为:当用户从非工作区文件的上下文菜单中选择“在资源管理器视图中显示”时,该文件并不总是在资源管理器视图中显示(对于“显示”一词的任何合理定义)。

预期行为:当用户从文件的上下文菜单中选择“在资源管理器视图中显示”时,该文件应在资源管理器视图中显示。

当所有扩展都被禁用时,此问题是否发生?:是

  • VS Code版本:1.73.1(并从当前主分支7f65f02审查源代码)
  • 操作系统版本:Linux x64

重现步骤:

  1. 打开一个文件夹或工作区,并从中打开一些文件(例如,foo.c和foo.h)。
  2. 打开一个不在文件夹或工作区中的文件(例如,/usr/include/stdio.h)。
  3. 当活动的工作区文件(例如,foo.h)处于活动状态时,右键单击非工作区文件并选择“在资源管理器视图中显示”:

  1. 观察非工作区文件如何在资源管理器视图中没有被显示。相反,活动的workspace文件被高亮显示:

预期的行为可能是像这样“部分高亮”非工作区文件:

相关源代码部分:
vscode/src/vs/workbench/contrib/files/browser/fileCommands.ts
第330行至第343行 7f65f02
| | if(uri&&contextService.isInsideWorkspace(uri)){ |
| | constexplorerView=viewlet.getExplorerView(); |
| | if(explorerView){ |
| | explorerView.setExpanded(true); |
| | awaitexplorerService.select(uri,'force'); |
| | explorerView.focus(); |
| | } |
| | }else{ |
| | constopenEditorsView=viewlet.getOpenEditorsView(); |
| | if(openEditorsView){ |
| | openEditorsView.setExpanded(true); |
| | openEditorsView.focus(); |
| | } |
| | } |

vu8f3i0k

vu8f3i0k1#

感谢您提出这个问题!看起来您可能正在使用旧版本的VS Code,最新稳定版本是1.74.2。请尝试升级到最新版本并检查此问题是否仍然存在。
快乐编码!

lmyy7pcs

lmyy7pcs2#

在资源管理器视图中,Reveal in explorer view不会改变打开的编辑器视图。你可以通过重复描述的步骤来看到这一点,但是当文件位于工作区时会发生什么。

jmp7cifd

jmp7cifd3#

描述的行为是它应该如何工作的。如果您不同意,请详细解释预期的内容和不符合预期的内容。另请参阅我们的issue reporting guidelines
快乐编码!

rwqw0loc

rwqw0loc4#

请在关闭之前更仔细地阅读这个问题和你的回复。这个问题专门关于非工作区文件。工作区中的文件按预期工作。
我在问题开头添加了更多关于观察到的行为和预期行为的详细描述。以下是进一步的详细说明。
目前,当将“在资源管理器视图中显示”应用于非工作区文件时,如果适用,则会展开“打开编辑器视图”,并且“打开编辑器视图”也会获得焦点。在“打开编辑器视图”或其他视图上没有采取任何针对特定文件的操作。这可以从我上面链接的代码片段中看出。
如果一个文件的上下文菜单项说“在资源管理器视图中显示”,那么预期的行为是——猜猜是什么——在资源管理器视图中显示该文件。“无操作”不是预期的行为。显示另一个文件也不是预期的行为。
在第三张截图中,我提出了一种潜在的方法,可以在资源管理器视图的“打开编辑器视图”中显示非工作区文件。我不知道“部分高亮显示”或“预选择”文件的确切术语,但我建议可以通过将焦点切换到“打开编辑器视图”并按下向上或向下箭头键来模拟它。
可能还有更合适的方法来实现预期行为。此外,即使采用了建议的方法,还应确保调整“打开编辑器视图”的可滚动区域,以使文件可见。当应用普通的 select 方法时(如代码第334行),这会自动发生,但我不确定所提议的“预选择”是否会无条件地将文件带入可滚动区域的视图。我认为可见性是满足预期行为的基本要求,因为当某物被“揭示”时,这是最低的要求。
如果这一切都无法实现,那么上下文菜单项应该被删除。

6fe3ivhb

6fe3ivhb5#

@lramos15 你能理解吗?还是需要更多的帮助?

iecba09b

iecba09b6#

我建议我们只是禁用对工作区外文件的输入,因为分割选择和焦点可能会变得非常混乱。
感谢@bpasero的想法。

相关问题