gpt4 book ai didi

visual-studio - 如何在选项卡关闭时禁用 VS2013 中的 MRU 行为

转载 作者:行者123 更新时间:2023-12-04 15:42:39 25 4
gpt4 key购买 nike

我已经将 ctl+tab 和 ctl+shift+tab 重新映射到 Window.NextTab 和 Window.PreviousTab。

但是当我调用 File.Close 时,Visual Studio 2013 仍然使用 MRU 来决定将哪个选项卡带到前台,这通常会导致焦点跳转到意想不到的地方。我想更改此行为,以便将刚刚关闭的选项卡(在选项卡井的右侧)之后的选项卡带到前台(如果存在)。这将使 VS 的行为与 ff、chrome、notepad++ 等的行为相匹配。

我尝试了很多扩展,虽然其中许多扩展更改或创建了自己的下一个/上一个选项卡功能,但似乎没有一个创建新版本的 File.Close。

有谁知道这是否可能或任何扩展的身份这样做?

最佳答案

您可以使用在 Visual Commander 中创建的以下命令而不是 File.Close 关闭后激活下一个选项卡:

public class C : VisualCommanderExt.ICommand
{
public void Run(EnvDTE80.DTE2 DTE, Microsoft.VisualStudio.Shell.Package package)
{
dte = DTE;
if (IsCommandAvailable("Window.NextTab"))
{
DTE.ExecuteCommand("Window.NextTab");
DTE.ExecuteCommand("Window.PreviousTab");
}
if (IsCommandAvailable("File.Close"))
DTE.ExecuteCommand("File.Close");
}

private bool IsCommandAvailable(string commandName)
{
EnvDTE80.Commands2 commands = dte.Commands as EnvDTE80.Commands2;
if (commands == null)
return false;

EnvDTE.Command command = commands.Item(commandName, 0);
if (command == null)
return false;

return command.IsAvailable;
}

private EnvDTE80.DTE2 dte;
}

更新 一个可能更好的实现,可以防止潜在的视觉副作用:
public void Run(EnvDTE80.DTE2 DTE, Microsoft.VisualStudio.Shell.Package package) 
{
dte = DTE;
if (IsCommandAvailable("Window.NextTab"))
{
EnvDTE.Window w = DTE.ActiveWindow;
DTE.ExecuteCommand("Window.NextTab");
w.Close();
}
else if (IsCommandAvailable("File.Close"))
DTE.ExecuteCommand("File.Close");
}

关于visual-studio - 如何在选项卡关闭时禁用 VS2013 中的 MRU 行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32237715/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com