【问题标题】:Visual Studio - Automatically refresh class view when changing classVisual Studio - 更改类时自动刷新类视图
【发布时间】:2020-09-03 01:15:19
【问题描述】:

我来自 Java 背景,并且已经使用 Eclipse 多年。我在使用 Visual Studio (2008) 时错过的一项功能是,当我更改类时,类视图不会自动刷新。在 Eclipse 中,它有一个(类)“大纲”窗口,它代表当前类并显示方法/属性等,它总是更新到正在使用的类。

VS 中等效的“类视图”不会根据我正在访问的当前类自动刷新。我想知道是否有人知道实现这一点的方法?

理想情况下,我希望 VS 视图尽可能与 Eclipse 相似,但这一特性会很棒。

提前致谢, 会

【问题讨论】:

  • Eclipse 并不孤单,Netbeans 也是如此。
  • 老问题,但很重要!建议使用 Tools->Options->Environment->Keyboard 绑定一个键,看看能不能找到“View.SynchronizeClassView”。但是很有用,它在许多版本的 Visual Studio 中都被破坏了,包括 VS 2019 16.4.3。作为一种解决方法,如果您使用的是 Resharper(大多数人都这样做),您可以使用自动同步的文件结构窗口,如果每个类有 1 个文件,则几乎可以提供相同的信息。

标签: .net visual-studio visual-studio-2008 eclipse ide


【解决方案1】:

看了kingmaxxx的回复,我去Tools->Options->Environment->Keyboard,在Text Editor视图中绑定Ctrl+Shift+C到View.SynchronizeClassView。这似乎取代和补充了原始行为 (View.ClassView),因为如果 ClassView 不可见,它将显示它并专注于当前类。

(Visual Studio 2008)

【讨论】:

  • 在 MFC 项目的 VS2012 中损坏 - 未修复 connect.microsoft.com/VisualStudio/feedback/details/780808/…
  • 在VS2013中我得到的是选择的是项目,而不是类。
  • 我在 VS2013 中得到的只是聚焦或打开的“类视图”。
  • @Avi - 需要额外单击才能将类视图范围限定为特定成员 - 在同步之前单击文本编辑器视图中的任何类、属性或方法的名称。然后类视图将突出显示正确的成员。
  • 我经常使用这个,但在 VS 2019 16.4.3 中又被破坏了
【解决方案2】:

对于 Visual Studio 2005

我找到了一个不会自动更新视图的解决方案,但至少你得到了一个有帮助的上下文条目:

http://blogs.msdn.com/ansonh/archive/2005/12/09/502020.aspx

你也可以定义一个快捷键:

Tools->Options->Environment->Keyboard 看看能不能找到“View.SynchronizeClassView”。


哦,只是为了笑 - 这是微软的答案: http://msdn.microsoft.com/en-us/library/2dae8h2s.aspx

...您可以在代码编辑器中选择任何符号,然后 立即找到它...

经过7个步骤...

“类视图自动滚动 到所选符号的位置 在其层次结构中。 "

【讨论】:

  • 为了澄清,View.SynchronizeClassView 键盘快捷键确实适用于 VS2010 RC。
  • Microsoft 文档确实(可能是无意的)有趣。他们如何将如此缓慢的手动过程视为“即时和自动”的,这令人难以置信。
  • 山姆,我同意。同步类视图是一种自然需要。如果他们真的会使用他们自己的编译器和工具(他们不会),那么就不必问这些问题了。而且文档会更好。
  • 我经常使用这个,但在 VS 2019 16.4.3 中又被破坏了
【解决方案3】:

最好的方法是在代码编辑器中右键单击类型时创建上下文菜单。 工具->自定义 单击“命令”选项卡。选择上下文菜单单选按钮,然后选择“编辑器上下文菜单|代码窗口”。 然后“添加命令”并选择查看->同步类视图。

现在,无论何时右键单击一个类型,您都可以选择“同步类视图”。它是最顶部的上下文菜单项。 看起来像这样:

【讨论】:

    【解决方案4】:

    我无法在课堂视图方面为您提供帮助,但也许您想尝试一下解决方案资源管理器?您可以通过以下方式进行同步:

    tools -> options -> projects and solutions -> general
    enable "track active item in solution explorer"
    

    【讨论】:

    • 这是我用的!类视图同步键盘快捷键不适用于各种绑定。
    【解决方案5】:

    View.SynchronizeClassView 的问题是当从虚拟文件夹查看类时它不起作用。

    【讨论】:

      【解决方案6】:

      根据 kingmaxxx 的回复,我发现您可以在工具栏上添加一个按钮来做同样的事情:

      工具|自定义 -> 命令[选项卡] -> 视图[类别]

      抓住 Synchronize Class View 按钮并将其拖到您的工具栏之一。

      【讨论】:

        【解决方案7】:

        我还没有时间让它工作,但是有一个用于自动同步的 VS2003/2005 插件代码here(参见标有“答案”的帖子)。

        顺便说一句,这个问题似乎与this one 重复。

        【讨论】:

          【解决方案8】:

          对于 Visual Studio 2017,CodeMaid Spade 非常完美地提供了救援。

          Codemaid VS Extension

          起初,我找不到“类视图”的等价物。它叫黑桃。

          它会自动同步到当前打开的课程。

          【讨论】:

            【解决方案9】:

            我不知道有什么方法可以做到这一点,但我同意这将是一个不错的功能。

            您可以在解决方案资源管理器中跟踪项目(选项->项目和解决方案->常规->在解决方案资源管理器中跟踪活动项目)。

            【讨论】:

              【解决方案10】:

              同样来自 java (Eclipse),我错过了大纲(类查看器)。我尝试了很多解决方案,我发现最好的方法是使用CODEMAID extension

              它还提供了很多其他工具,但你可以不使用它!

              【讨论】:

                【解决方案11】:

                来自 Eclipse,您会错过很多这样的功能。我最想念的导航是一个简单的去类型去继承者等等。其他功能,例如 nUnit 支持也不是 vanilla Visual Studio 的一部分。以下是弥补差距的插件列表:

                但缺点是:它们都向您收费(TestDriven.net 仅用于商业用途)。但是,它们都提供免费试用。

                【讨论】:

                • IIRC 你可以使用 shift-F12 /go to type/。
                • Ctrl+F12、Shift+F12 或自定义快捷键
                【解决方案12】:

                工具菜单 -> 选项

                然后,在“项目和解决方案”区域,您可以选择跟踪活动项目。

                【讨论】:

                • 在 Visual Studio 2008 上验证(带 Resharper 4.1)
                • 这适用于解决方案资源管理器,但不适用于 OP 正在寻找的类视图。
                【解决方案13】:

                使用 Resharper,ALT+SHIFT+L 可以转到解决方案资源管理器中的当前文件。

                【讨论】:

                • 它只适用于 Resharper,所以我不认为这是一个答案,尽管它适用于我的 Visual Studio + resharper 4.1
                猜你喜欢
                • 2019-11-02
                • 1970-01-01
                • 2011-11-06
                • 1970-01-01
                • 2012-12-09
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                相关资源
                最近更新 更多