gpt4 book ai didi

c# - 创建一个 VS2010 插件来折叠我的事件文档的每个方法

转载 作者:太空宇宙 更新时间:2023-11-03 16:39:18 26 4
gpt4 key购买 nike

我正在寻找使用 VS2010 插件折叠我的事件文档的所有方法的源代码。
目前,如果该行是方法签名,我会解析试图匹配的文档的文本内容。如果是这种情况,我会折叠该方法。

TextSelection selection = (TextSelection)_applicationObject.ActiveDocument.Selection;
var editPoint = selection.ActivePoint.CreateEditPoint();
editPoint.MoveToLineAndOffset(1, 1);

while (!editPoint.AtEndOfDocument)
{
editPoint.StartOfLine();
var line = editPoint.GetText(editPoint.LineLength).TrimStart();

if (line.StartsWith("public"))
{
selection.MoveToLineAndOffset(editPoint.Line, 1);
_applicationObject.ExecuteCommand("Edit.ToggleOutliningExpansion");
}

// go to the next line
}

有谁能告诉我我的方法是否正确,或者是否有最简单的方法?

最佳答案

也许我的问题问得不太好。我的真正目标是折叠所有代码:属性、方法、注释和///,使用;但不是地区。
这是一种解决方案:

// reduce everything like Ctrl+M+O
_applicationObject.ExecuteCommand("Edit.CollapsetoDefinitions");

// save the cursor position
TextSelection selection = (TextSelection)_applicationObject.ActiveDocument.Selection;
var selectedLine = selection.ActivePoint.Line;
var selectedColumn = selection.ActivePoint.DisplayColumn;

// open the regions
selection.StartOfDocument();
while (selection.FindText("#region", (int)vsFindOptions.vsFindOptionsMatchInHiddenText))
{
// do nothing since FindText automatically expands any found #region
}

// put back the cursor at its original position
selection.MoveToDisplayColumn(selectedLine, selectedColumn);

希望对你有帮助

关于c# - 创建一个 VS2010 插件来折叠我的事件文档的每个方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8152382/

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