本文整理匯總了C#中Microsoft.VisualStudioTools.VisualStudioApp.ExecuteCommand方法的典型用法代碼示例。如果您正苦於以下問題:C# VisualStudioApp.ExecuteCommand方法的具體用法?C# VisualStudioApp.ExecuteCommand怎麽用?C# VisualStudioApp.ExecuteCommand使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類Microsoft.VisualStudioTools.VisualStudioApp
的用法示例。
在下文中一共展示了VisualStudioApp.ExecuteCommand方法的1個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的C#代碼示例。
示例1: ActivateInteractiveWindow
public override ToolWindowPane ActivateInteractiveWindow(VisualStudioApp app, string executionMode)
{
string description = null;
if (Version.IsCPython) {
description = string.Format("{0} {1}",
Version.Isx64 ? "Python 64-bit" : "Python 32-bit",
Version.Version.ToVersion()
);
} else if (Version.IsIronPython) {
description = string.Format("{0} {1}",
Version.Isx64 ? "IronPython 64-bit" : "IronPython",
Version.Version.ToVersion()
);
}
Assert.IsNotNull(description, "Unknown interpreter");
var automation = (IVsPython)app.Dte.GetObject("VsPython");
var options = (IPythonOptions)automation;
var replOptions = options.Interactive;
Assert.IsNotNull(replOptions, "Could not find options for " + description);
var oldAddNewLineAtEndOfFullyTypedWord = options.Intellisense.AddNewLineAtEndOfFullyTypedWord;
app.OnDispose(() => options.Intellisense.AddNewLineAtEndOfFullyTypedWord = oldAddNewLineAtEndOfFullyTypedWord);
options.Intellisense.AddNewLineAtEndOfFullyTypedWord = AddNewLineAtEndOfFullyTypedWord;
bool success = false;
for (int retries = 1; retries < 20; ++retries) {
try {
app.ExecuteCommand("Python.Interactive", "/e:\"" + description + "\"");
success = true;
break;
} catch (AggregateException) {
}
app.DismissAllDialogs();
app.SetFocus();
Thread.Sleep(retries * 100);
}
Assert.IsTrue(success, "Unable to open " + description + " through DTE");
var interpreters = app.ComponentModel.GetService<IInterpreterRegistryService>();
var replId = PythonReplEvaluatorProvider.GetEvaluatorId(
interpreters.FindConfiguration(Version.Id)
);
return app.ServiceProvider.GetUIThread().Invoke(() => {
var provider = app.ComponentModel.GetService<InteractiveWindowProvider>();
return (ToolWindowPane)provider.OpenOrCreate(replId);
});
}