gpt4 book ai didi

visual-studio - 有没有办法在 Visual Studio 2008 中指定大纲默认值,以便打开文件时默认折叠成员?

转载 作者:行者123 更新时间:2023-12-04 06:26:28 25 4
gpt4 key购买 nike

我想做的是拥有VS2008,当我打开一个代码文件时,默认情况下折叠文件中类/接口(interface)的所有成员(包括任何XML文档和注释)。

我根本不想使用区域。

我还希望能够使用 ctrl+m、ctrl+l 和弦来切换所有成员大纲(例如,如果所有内容都折叠了,我希望它展开所有成员,而不是评论或 XML 文档)。

可能的?如何?

最佳答案

是的,第 1 部分。

不确定第 2 部分。

要让 VS2008 自动打开处于折叠状态的文件,您需要创建一个插件以在每个文档打开时运行“Edit.CollapsetoDefinition”。

这并不过分棘手 - 困难的部分似乎是您必须在文档实际打开几毫秒后运行代码,因此您需要使用 threed 池来执行此操作。

  • 为 VS2008 创建一个插件项目。
  • 将此代码(见下文)添加到 Connect 类的 OnConnection 方法的末尾。

  • switch (connectMode)
    {
    case ext_ConnectMode.ext_cm_UISetup:
    case ext_ConnectMode.ext_cm_Startup:
    //Do nothing OnStartup will be called once IDE is initialised.
    break;
    case ext_ConnectMode.ext_cm_AfterStartup:
    //The addin was started post startup so we need to call its initialisation manually
    InitialiseHandlers();
    break;
    }
  • 将此方法添加到 Connect 类

  • private void InitialiseHandlers()
    {
    this._openHandler = new OnOpenHandler(_applicationObject);
    }
  • 将对 InitialiseHandlers() 的调用添加到 Connect 类的 OnStartupComplete 方法。

  • public void OnStartupComplete(ref Array custom)
    {
    InitialiseHandlers();
    }
  • 将此类添加到项目中。

  • using System;
    using System.Collections.Generic;
    using System.Text;
    using EnvDTE80;
    using EnvDTE;
    using System.Threading;

    namespace Collapser
    {
    internal class OnOpenHandler
    {
    DTE2 _application = null;
    EnvDTE.Events events = null;
    EnvDTE.DocumentEvents docEvents = null;

    internal OnOpenHandler(DTE2 application)
    {
    _application = application;
    events = _application.Events;
    docEvents = events.get_DocumentEvents(null);
    docEvents.DocumentOpened +=new _dispDocumentEvents_DocumentOpenedEventHandler(OnOpenHandler_DocumentOpened);
    }

    void OnOpenHandler_DocumentOpened(EnvDTE.Document document)
    {
    if (_application.Debugger.CurrentMode != dbgDebugMode.dbgBreakMode)
    {
    ThreadPool.QueueUserWorkItem(new WaitCallback(Collapse));
    }
    }

    private void Collapse(object o)
    {
    System.Threading.Thread.Sleep(150);
    _application.ExecuteCommand("Edit.CollapsetoDefinitions", "");
    }
    }
    }

    现在所有打开的文件都应该完全折叠。

    关于visual-studio - 有没有办法在 Visual Studio 2008 中指定大纲默认值,以便打开文件时默认折叠成员?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/293806/

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