Расширение для Visual Studio 2013 : вызов форматирования кода
Скажите пожалуйста как вызвать программно (из расширения к VS) форматирование (упорядочивание) кода, которое вызывается нажатием Ctrl+K+F ?
Источник: Stack Overflow на русском
Скажите пожалуйста как вызвать программно (из расширения к VS) форматирование (упорядочивание) кода, которое вызывается нажатием Ctrl+K+F ?
Короткий вариант - вызов по имени:
_applicationObject.ExecuteCommand("Edit.FormatSelection"); // или "Edit.FormatDocument"
длинный - по ID:
var vsStd2KCmdGuid = VSConstants.CMDSETID.StandardCommandSet2K_string;
object customin = null, customout = null;
_applicationObject.Commands.Raise(vsStd2KCmdGuid,
(int)Microsoft.VisualStudio.VSConstants.VSStd2KCmdID.FORMATDOCUMENT,
ref customin, ref customout);
_applicationObject
- это инстансDTE2
. Для констант нужен референс на Microsoft.VisualStudio.Shell.12.0
.
Список ID для стандартных команд в MSDN
Вариант для VS Package, без использования DTE2
:
private void MenuItemCallback(object sender, EventArgs e)
{
IVsUIShell uiShell = (IVsUIShell)GetService(typeof(SVsUIShell));
var vsStd2KCmdGuid = VSConstants.CMDSETID.StandardCommandSet2K_guid;
uint customin = 0;
object customout = null;
uiShell.PostExecCommand(ref vsStd2KCmdGuid,
(int)Microsoft.VisualStudio.VSConstants.VSStd2KCmdID.FORMATDOCUMENT,
customin, ref customout);
}