C# 创建VS2010加载项以折叠活动文档的每个方法
我正在寻找使用VS2010插件折叠活动文档的每个方法的源代码。C# 创建VS2010加载项以折叠活动文档的每个方法,c#,visual-studio-2010,visual-studio-addins,C#,Visual Studio 2010,Visual Studio Addins,我正在寻找使用VS2010插件折叠活动文档的每个方法的源代码。 目前,我解析文档的文本内容,试图匹配行是否为方法签名。如果是这样的话,我就把方法折叠起来 TextSelection selection = (TextSelection)_applicationObject.ActiveDocument.Selection; var editPoint = selection.ActivePoint.CreateEditPoint(); editPoint.MoveToLineAndOffset(
目前,我解析文档的文本内容,试图匹配行是否为方法签名。如果是这样的话,我就把方法折叠起来
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);
我希望这能有所帮助也许我问得不太好。我真正的目标是折叠所有代码:属性、方法、注释和//,使用;但不是区域。
这里有一个解决方案:
// 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);
我希望这能有所帮助只是好奇,它与Ctrl+M+L有什么不同?c#编辑器的组合键Ctrl-M-O就可以了。谢谢大家,但我想在VS加载项中以编程方式使用折叠功能。你可以简单地以编程方式触发现有命令。只是好奇,它与Ctrl+M+L有什么不同?c#editor的组合键Ctrl-M-O可以做到这一点。谢谢各位,但我想在VS加载项中以编程方式使用折叠功能。您只需以编程方式触发现有命令即可。