【问题标题】:Visual Studio - I want "Go To Definition" to open Object Browser, not "metadata"Visual Studio - 我希望“转到定义”打开对象浏览器,而不是“元数据”
【发布时间】:2010-07-19 02:08:00
【问题描述】:

在 Visual Studio 2002 和 2003 版中,“转到定义”将在对象浏览器中找到选定的类型或成员。从 2005 年开始,它改为打开“从元数据生成”的源窗口。如何配置这些较新版本以转到对象浏览器? (换句话说,我遇到了与this one相反的问题。)

安装 ReSharper 会做出这种改变,所以我知道这一定是可能的,但是如果没有 ReSharper,我该怎么做呢?

【问题讨论】:

  • 在这种情况下,我总是有“转到定义”显示元数据,包括 VS2005(当然这总是在 C# 中)。它似乎基于您使用的语言:stackoverflow.com/questions/408959/…
  • 啊,是的,你说得对,2005 年也涉及元数据。我想到的是 2002 年和 2003 年 - 已编辑。
  • 作为一个主要使用VB.NET的人,这真是令人沮丧。我希望 GtD 导航到 ObjectBrowser!这是一个非常引人注目的功能,而且缺少它非常烦人。

标签: visual-studio visual-studio-2008 visual-studio-2010 go-to-definition


【解决方案1】:

作为解决方法,您可以创建以下宏:

Sub GoToDefinitionUsingObjectBrowser()
    DTE.ExecuteCommand("Edit.SelectCurrentWord")
    DTE.ExecuteCommand("View.ObjectBrowser")
    DTE.ExecuteCommand("View.ObjectBrowserSearch", DTE.ActiveDocument.Selection.Text)
End Sub

然后转到工具/选项/键盘并为此宏分配热键。

在 Visual Studio 2010 中测试。

【讨论】:

  • -1:我在几年前就已经这样做了。但是,此方法不能解决从上下文菜单、命令窗口或 IDE 中的其他位置使用“转到定义”的问题。这就是我添加赏金的原因。得到一个确定的答案。无法解决。
  • 这个宏并不真正起作用,因为对象浏览器中的搜索过于笼统。如果您的光标位于 Dictionary 的 Add 方法中,则搜索只会在整个对象列表中找到所有“Add”方法。
【解决方案2】:

我相信 re-sharper 正在做的是使用 Visual Studio SDK 对该点击事件进行一些挂钩,我认为没有任何简单的菜单或位置可以更改该设置。


说明(来自CODE Magazine)对与制作右键菜单相关的部分进行了一些编辑。

创建一个 VSPackage

...VS SDK 安装了几个项目 Visual Studio 中的模板,其中之一 他们是 Visual Studio 集成包(图 1), 位于其他项目类型下> 新项目的可扩展性 对话框。

在这个标准对话框之后, Visual Studio 集成包 向导将引导您完成创建 新包项目:

  1. 选择一种编程语言。该向导当前支持 Visual C++ 和 Visual C#。您可以创建或 选择一个密钥文件来签署新的 包。
  2. 提供基本的 VSPackage 信息。向导会提示您 有关公司名称等详细信息, VSPackage 名称、版本、图标、 详细信息和最低限度 Visual Studio 版本(如 专业或企业) 包被设计为在这一步。 此信息进入视觉 Studio 启动画面和关于对话框 框,也用于请求 PLK 用于包(稍后介绍)。
  3. 选择 VSPackage 选项。一个包可以添加三种类型 功能:菜单命令、工具 窗口和自定义编辑器。

菜单命令是添加到菜单中的命令 在 Visual Studio 的顶部或 到上下文菜单(右键单击)。

当向导完成其工作时, VS SDK 将核心元素添加到 支持新软件包的解决方案。 例如,如果您选择了工具 窗口作为功能的一部分 对于包,项目包含 应该放置的用户控件 窗口的视觉控制。 该项目还包含用于 .NET 代码来处理功能 您将添加到包中。

一个 CtcComponents 文件夹包含 伪 C++ 文件(ctc 文件) 定义菜单、组等内容, 按钮等。幸运的是,微软 正在逐步淘汰 CTC 文件并替换 他们使用更友好的、基于 XML 的 VSCT 文件格式(将在 适用于 Visual Studio 2008 的 SDK)。

向导会创建一些其他文件 具有所需的 .NET 代码 Visual 中的包装管道 工作室。其中一些文件包含 将 C++ 常量映射到的类 .NET 常量和其他文件包含 的配置信息 安装时打包。

【讨论】:

  • 是的,这也是我的假设。我希望得到更具体的答案,特别是插件或宏。
【解决方案3】:

我知道这已经很长时间了,但至少在用于 VB(基本)语言的 Visual Studio 的较新版本中,它似乎是选项中的一个设置。 文本编辑器 > 基本 > 高级 在“转到定义”下。

我不知道为什么他们没有其他语言的...

【讨论】:

    【解决方案4】:

    将鼠标光标放在对象浏览器上要访问的对象上。然后,使用键盘快捷键 ctrl + alt + j,这将带您直接进入对象浏览器窗口。

    【讨论】:

    • 我试过了,虽然它确实打开了对象浏览器窗口,但它并没有打开所选项目的树。解决方案似乎不起作用。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-09-09
    • 2011-11-01
    • 2010-11-15
    • 1970-01-01
    • 2011-03-23
    • 1970-01-01
    • 2017-06-25
    相关资源
    最近更新 更多