创建VS2010 Addin以折叠活动文档的每个方法

时间:2011-11-16 13:24:30

标签: c# visual-studio-2010 visual-studio-addins

我正在寻找使用VS2010 Addin折叠活动文档的每个方法的源代码。
目前,如果该行是方法签名,我会解析试图匹配的文档的文本内容。如果是这种情况,我会崩溃该方法。

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
}

有没有人可以告诉我,我是否采取了良好的方式或是否有最简单的方法?

1 个答案:

答案 0 :(得分:0)

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

// 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);

我希望这可以帮助

相关问题