Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(168)

Unified Diff: visual_studio/NativeClientVSAddIn/NativeClientVSAddIn/Connect.cs

Issue 11085093: Remove windows lines endings (Closed) Base URL: http://nativeclient-sdk.googlecode.com/svn/trunk/src
Patch Set: Created 8 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: visual_studio/NativeClientVSAddIn/NativeClientVSAddIn/Connect.cs
diff --git a/visual_studio/NativeClientVSAddIn/NativeClientVSAddIn/Connect.cs b/visual_studio/NativeClientVSAddIn/NativeClientVSAddIn/Connect.cs
index 41d59131e24ec59847ff3da5ed3949b4fd4e1c97..8b39386e60de7aff7c58587f511e4b7a482e04f4 100644
--- a/visual_studio/NativeClientVSAddIn/NativeClientVSAddIn/Connect.cs
+++ b/visual_studio/NativeClientVSAddIn/NativeClientVSAddIn/Connect.cs
@@ -1,337 +1,337 @@
-// Copyright (c) 2012 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-namespace NativeClientVSAddIn
-{
- using System;
-
- using EnvDTE;
- using EnvDTE80;
- using Extensibility;
- using Microsoft.VisualStudio;
- using Microsoft.VisualStudio.VCProjectEngine;
- using System.Collections.Generic;
- using System.Diagnostics;
-
- /// <summary>The object for implementing an Add-in.</summary>
- /// <seealso class='IDTExtensibility2' />
- public class Connect : IDTExtensibility2
- {
- /// <summary>
- /// The main Visual Studio interface.
- /// </summary>
- private DTE2 dte_;
-
- /// <summary>
- /// Receives events related to starting/stopping debugging.
- /// </summary>
- private DebuggerEvents debuggerEvents_;
-
- /// <summary>
- /// Receives all generic events from Visual Studio.
- /// </summary>
- private CommandEvents commandEvents_;
-
- /// <summary>
- /// Holds methods related to debugging.
- /// </summary>
- private PluginDebuggerBase debugger_;
-
- /// <summary>
- /// The web server launched during debugging.
- /// </summary>
- private WebServer webServer_;
-
- /// <summary>
- /// Visual Studio output window pane that captures output from the web server, and displays
- /// other web-server related information.
- /// </summary>
- private OutputWindowPane webServerOutputPane_;
-
- /// <summary>
- /// Implements the OnConnection method of the IDTExtensibility2 interface.
- /// Receives notification that the Add-in is being loaded.
- /// </summary>
- /// <param name="application">Root object of the host application.</param>
- /// <param name="connectMode">
- /// Describes how the Add-in is being loaded (e.g. command line or UI). This is unused since
- /// the add-in functions the same regardless of how it was loaded.
- /// </param>
- /// <param name="addInInst">Object representing this Add-in.</param>
- /// <param name="custom">Unused, but could contain host specific data for the add-in.</param>
- /// <seealso class='IDTExtensibility2' />
- public void OnConnection(
- object application,
- ext_ConnectMode connectMode,
- object addInInst,
- ref Array custom)
- {
- dte_ = (DTE2)application;
-
- debuggerEvents_ = dte_.Events.DebuggerEvents;
- debuggerEvents_.OnEnterDesignMode += DebuggerOnEnterDesignMode;
- debuggerEvents_.OnEnterRunMode += DebuggerOnEnterRunMode;
-
- commandEvents_ = dte_.Events.CommandEvents;
- commandEvents_.AfterExecute += CommandEventsAfterExecute;
-
- try
- {
- webServerOutputPane_ = dte_.ToolWindows.OutputWindow.OutputWindowPanes.Item(
- Strings.WebServerOutputWindowTitle);
- }
- catch (ArgumentException)
- {
- // This exception is expected if the window pane hasn't been created yet.
- webServerOutputPane_ = dte_.ToolWindows.OutputWindow.OutputWindowPanes.Add(
- Strings.WebServerOutputWindowTitle);
- }
- }
-
- /// <summary>
- /// Implements the OnDisconnection method of the IDTExtensibility2
- /// interface. Receives notification that the Add-in is being unloaded.
- /// </summary>
- /// <param name='disconnectMode'>Describes how the Add-in is being unloaded.</param>
- /// <param name='custom'>Array of parameters that are host application specific.</param>
- /// <seealso class='IDTExtensibility2' />
- public void OnDisconnection(ext_DisconnectMode disconnectMode, ref Array custom)
- {
- }
-
- /// <summary>
- /// Implements the OnAddInsUpdate method of the IDTExtensibility2 interface.
- /// Receives notification when the collection of Add-ins has changed.
- /// </summary>
- /// <param name='custom'>Array of parameters that are host application specific.</param>
- /// <seealso class='IDTExtensibility2' />
- public void OnAddInsUpdate(ref Array custom)
- {
- }
-
- /// <summary>
- /// Implements the OnStartupComplete method of the IDTExtensibility2 interface.
- /// Receives notification that the host application has completed loading.
- /// </summary>
- /// <param name='custom'>Array of parameters that are host application specific.</param>
- /// <seealso class='IDTExtensibility2' />
- public void OnStartupComplete(ref Array custom)
- {
- }
-
- /// <summary>
- /// Implements the OnBeginShutdown method of the IDTExtensibility2 interface.
- /// Receives notification that the host application is being unloaded.
- /// </summary>
- /// <param name='custom'>Array of parameters that are host application specific.</param>
- /// <seealso class='IDTExtensibility2' />
- public void OnBeginShutdown(ref Array custom)
- {
- }
-
- /// <summary>
- /// Receives notification after any generic VS command has executed.
- /// Here we capture the SolutionPlatform event which indicates the solution platform has
- /// changed. We use this event to trigger a modification of property settings since this
- /// event happens immediately after the platforms are added. See PerformPropertyModifications()
- /// for what sort of modifications we are doing.
- /// </summary>
- /// <param name="guid">Guid of the command grouping.</param>
- /// <param name="id">ID of the command within its grouping.</param>
- /// <param name="customIn">Command specific input.</param>
- /// <param name="customOut">Command specific parameter.</param>
- private void CommandEventsAfterExecute(string guid, int id, object customIn, object customOut)
- {
- const string VSStd2KCmdIDEnumGuid = "{1496A755-94DE-11D0-8C3F-00C04FC2AAE2}";
- if (guid.Equals(VSStd2KCmdIDEnumGuid, StringComparison.OrdinalIgnoreCase))
- {
- // If loading a NaCl or Pepper platform, perform property modifications.
- if (id == (int)VSConstants.VSStd2KCmdID.SolutionPlatform)
- {
- string platform = customOut as string;
- if (PropertyManager.IsNaClPlatform(platform) || PropertyManager.IsPepperPlatform(platform))
- {
- PerformPropertyModifications();
- }
- }
- }
- }
-
- /// <summary>
- /// Goes through all projects in the solution and updates their properties with necessary
- /// modifications if they are NaCl or Pepper configurations. We add the version information
- /// here so that the version is stored directly in the project file. The call to
- /// PerformPropertyFixes() performs a work around on the property pages to force Visual Studio
- /// to save some specific properties into the project file to get around issue 140162.
- /// </summary>
- private void PerformPropertyModifications()
- {
- string naclAddInVersion = GetAddInVersionFromDescription();
-
- var configs = Utility.GetPlatformVCConfigurations(dte_, Strings.PepperPlatformName);
- configs.AddRange(Utility.GetPlatformVCConfigurations(dte_, Strings.NaCl64PlatformName));
- configs.AddRange(Utility.GetPlatformVCConfigurations(dte_, Strings.NaCl32PlatformName));
-
- var properties = new PropertyManager();
- foreach (VCConfiguration config in configs)
- {
- properties.SetTarget(config);
- if (properties.NaClAddInVersion != naclAddInVersion)
- {
- Debug.WriteLine("Modifying Config: " + config.Name);
-
- // Set the NaCl add-in version so that it is stored in the project file.
- properties.SetProperty("ConfigurationGeneral", "NaClAddInVersion", naclAddInVersion);
-
- // Expand the CHROME_PATH variable to its full path.
- string expandedChrome = properties.GetProperty(
- "WindowsLocalDebugger", "LocalDebuggerCommand");
- properties.SetProperty("WindowsLocalDebugger", "LocalDebuggerCommand", expandedChrome);
-
- // Change the library includes to have the appropriate extension.
- string libs = properties.GetProperty("Link", "AdditionalDependencies");
- if (properties.ProjectPlatform == PropertyManager.ProjectPlatformType.NaCl)
- {
- libs = libs.Replace(".lib", string.Empty);
- }
- else if (properties.ProjectPlatform == PropertyManager.ProjectPlatformType.Pepper)
- {
- string[] libsList = libs.Split(';');
- libs = string.Empty;
- foreach (string lib in libsList)
- {
- string baseLibName = lib.Replace(".lib", string.Empty);
- if (!string.IsNullOrWhiteSpace(lib))
- {
- libs = string.Concat(libs, baseLibName, ".lib;");
- }
- }
- }
-
- properties.SetProperty("Link", "AdditionalDependencies", libs);
-
- // Work around for issue 140162. Forces some properties to save to the project file.
- PerformPropertyFixes(config);
- }
- }
- }
-
- /// <summary>
- /// Takes a project configuration and sets values in the project file to work around some
- /// problems in Visual Studio. This is a work around for issue 140162.
- /// </summary>
- /// <param name="config">A configuration that needs modification.</param>
- private void PerformPropertyFixes(VCConfiguration config)
- {
- IVCRulePropertyStorage debugger = config.Rules.Item("WindowsLocalDebugger");
- string arguments = debugger.GetUnevaluatedPropertyValue("LocalDebuggerCommandArguments");
- debugger.SetPropertyValue("LocalDebuggerCommandArguments", arguments);
-
- // NaCl Platform Specific:
- if (PropertyManager.IsNaClPlatform(config.Platform.Name))
- {
- IVCRulePropertyStorage general = config.Rules.Item("ConfigurationGeneral");
- string[] keys = {"VSNaClSDKRoot"};
- Dictionary<string, string> values = new Dictionary<string, string>();
- foreach (var key in keys)
- {
- values[key] = general.GetUnevaluatedPropertyValue(key);
- general.DeleteProperty(key);
- }
-
- foreach (var key in keys)
- {
- general.SetPropertyValue(key, values[key]);
- }
- }
-
- IVCRulePropertyStorage directories = config.Rules.Item("ConfigurationDirectories");
- string includePath = directories.GetUnevaluatedPropertyValue("IncludePath");
- string libraryPath = directories.GetUnevaluatedPropertyValue("LibraryPath");
- directories.DeleteProperty("IncludePath");
- directories.DeleteProperty("LibraryPath");
- directories.SetPropertyValue("IncludePath", includePath);
- directories.SetPropertyValue("LibraryPath", libraryPath);
-
- // Pepper specific:
- if (config.Platform.Name == Strings.PepperPlatformName)
- {
- string executablePath = directories.GetUnevaluatedPropertyValue("ExecutablePath");
- directories.SetPropertyValue("ExecutablePath", executablePath);
- }
- }
-
- /// <summary>
- /// During the build process we dynamically put the add-in version number into the add-in
- /// description. This function extracts that version number.
- /// </summary>
- /// <returns>The add-in version number.</returns>
- private string GetAddInVersionFromDescription()
- {
- string naclAddinVersion = "missing";
- foreach (AddIn addin in dte_.AddIns)
- {
- if (addin.Name.Equals(Strings.AddInName))
- {
- string identifier = "Version: [";
- int start = addin.Description.IndexOf(identifier) + identifier.Length;
- int end = addin.Description.LastIndexOf(']');
- if (start >= 0 && end >= 0)
- {
- naclAddinVersion = addin.Description.Substring(start, end - start);
- break;
- }
- }
- }
-
- return naclAddinVersion;
- }
-
- /// <summary>
- /// Called when Visual Studio ends a debugging session.
- /// Shuts down the web server and debugger.
- /// </summary>
- /// <param name="reason">The parameter is not used.</param>
- private void DebuggerOnEnterDesignMode(dbgEventReason reason)
- {
- if (debugger_ != null)
- {
- debugger_.Dispose();
- debugger_ = null;
- }
-
- if (webServer_ != null)
- {
- webServer_.Dispose();
- webServer_ = null;
- }
- }
-
- /// <summary>
- /// Called when Visual Studio starts a debugging session.
- /// Here we kick off the debugger and web server if appropriate.
- /// </summary>
- /// <param name="reason">Indicates how we are entering run mode (breakpoint or launch).</param>
- private void DebuggerOnEnterRunMode(dbgEventReason reason)
- {
- // If we are starting debugging (not re-entering from a breakpoint)
- // then load project settings and start the debugger-helper.
- if (reason == dbgEventReason.dbgEventReasonLaunchProgram)
- {
- PropertyManager properties = new PropertyManager();
- properties.SetTargetToActive(dte_);
- if (properties.ProjectPlatform == PropertyManager.ProjectPlatformType.NaCl)
- {
- debugger_ = new PluginDebuggerGDB(dte_, properties);
- webServer_ = new WebServer(webServerOutputPane_, properties);
- }
- else if (properties.ProjectPlatform == PropertyManager.ProjectPlatformType.Pepper)
- {
- debugger_ = new PluginDebuggerVS(dte_, properties);
- webServer_ = new WebServer(webServerOutputPane_, properties);
- }
- }
- }
- }
-}
+// Copyright (c) 2012 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+namespace NativeClientVSAddIn
+{
+ using System;
+
+ using EnvDTE;
+ using EnvDTE80;
+ using Extensibility;
+ using Microsoft.VisualStudio;
+ using Microsoft.VisualStudio.VCProjectEngine;
+ using System.Collections.Generic;
+ using System.Diagnostics;
+
+ /// <summary>The object for implementing an Add-in.</summary>
+ /// <seealso class='IDTExtensibility2' />
+ public class Connect : IDTExtensibility2
+ {
+ /// <summary>
+ /// The main Visual Studio interface.
+ /// </summary>
+ private DTE2 dte_;
+
+ /// <summary>
+ /// Receives events related to starting/stopping debugging.
+ /// </summary>
+ private DebuggerEvents debuggerEvents_;
+
+ /// <summary>
+ /// Receives all generic events from Visual Studio.
+ /// </summary>
+ private CommandEvents commandEvents_;
+
+ /// <summary>
+ /// Holds methods related to debugging.
+ /// </summary>
+ private PluginDebuggerBase debugger_;
+
+ /// <summary>
+ /// The web server launched during debugging.
+ /// </summary>
+ private WebServer webServer_;
+
+ /// <summary>
+ /// Visual Studio output window pane that captures output from the web server, and displays
+ /// other web-server related information.
+ /// </summary>
+ private OutputWindowPane webServerOutputPane_;
+
+ /// <summary>
+ /// Implements the OnConnection method of the IDTExtensibility2 interface.
+ /// Receives notification that the Add-in is being loaded.
+ /// </summary>
+ /// <param name="application">Root object of the host application.</param>
+ /// <param name="connectMode">
+ /// Describes how the Add-in is being loaded (e.g. command line or UI). This is unused since
+ /// the add-in functions the same regardless of how it was loaded.
+ /// </param>
+ /// <param name="addInInst">Object representing this Add-in.</param>
+ /// <param name="custom">Unused, but could contain host specific data for the add-in.</param>
+ /// <seealso class='IDTExtensibility2' />
+ public void OnConnection(
+ object application,
+ ext_ConnectMode connectMode,
+ object addInInst,
+ ref Array custom)
+ {
+ dte_ = (DTE2)application;
+
+ debuggerEvents_ = dte_.Events.DebuggerEvents;
+ debuggerEvents_.OnEnterDesignMode += DebuggerOnEnterDesignMode;
+ debuggerEvents_.OnEnterRunMode += DebuggerOnEnterRunMode;
+
+ commandEvents_ = dte_.Events.CommandEvents;
+ commandEvents_.AfterExecute += CommandEventsAfterExecute;
+
+ try
+ {
+ webServerOutputPane_ = dte_.ToolWindows.OutputWindow.OutputWindowPanes.Item(
+ Strings.WebServerOutputWindowTitle);
+ }
+ catch (ArgumentException)
+ {
+ // This exception is expected if the window pane hasn't been created yet.
+ webServerOutputPane_ = dte_.ToolWindows.OutputWindow.OutputWindowPanes.Add(
+ Strings.WebServerOutputWindowTitle);
+ }
+ }
+
+ /// <summary>
+ /// Implements the OnDisconnection method of the IDTExtensibility2
+ /// interface. Receives notification that the Add-in is being unloaded.
+ /// </summary>
+ /// <param name='disconnectMode'>Describes how the Add-in is being unloaded.</param>
+ /// <param name='custom'>Array of parameters that are host application specific.</param>
+ /// <seealso class='IDTExtensibility2' />
+ public void OnDisconnection(ext_DisconnectMode disconnectMode, ref Array custom)
+ {
+ }
+
+ /// <summary>
+ /// Implements the OnAddInsUpdate method of the IDTExtensibility2 interface.
+ /// Receives notification when the collection of Add-ins has changed.
+ /// </summary>
+ /// <param name='custom'>Array of parameters that are host application specific.</param>
+ /// <seealso class='IDTExtensibility2' />
+ public void OnAddInsUpdate(ref Array custom)
+ {
+ }
+
+ /// <summary>
+ /// Implements the OnStartupComplete method of the IDTExtensibility2 interface.
+ /// Receives notification that the host application has completed loading.
+ /// </summary>
+ /// <param name='custom'>Array of parameters that are host application specific.</param>
+ /// <seealso class='IDTExtensibility2' />
+ public void OnStartupComplete(ref Array custom)
+ {
+ }
+
+ /// <summary>
+ /// Implements the OnBeginShutdown method of the IDTExtensibility2 interface.
+ /// Receives notification that the host application is being unloaded.
+ /// </summary>
+ /// <param name='custom'>Array of parameters that are host application specific.</param>
+ /// <seealso class='IDTExtensibility2' />
+ public void OnBeginShutdown(ref Array custom)
+ {
+ }
+
+ /// <summary>
+ /// Receives notification after any generic VS command has executed.
+ /// Here we capture the SolutionPlatform event which indicates the solution platform has
+ /// changed. We use this event to trigger a modification of property settings since this
+ /// event happens immediately after the platforms are added. See PerformPropertyModifications()
+ /// for what sort of modifications we are doing.
+ /// </summary>
+ /// <param name="guid">Guid of the command grouping.</param>
+ /// <param name="id">ID of the command within its grouping.</param>
+ /// <param name="customIn">Command specific input.</param>
+ /// <param name="customOut">Command specific parameter.</param>
+ private void CommandEventsAfterExecute(string guid, int id, object customIn, object customOut)
+ {
+ const string VSStd2KCmdIDEnumGuid = "{1496A755-94DE-11D0-8C3F-00C04FC2AAE2}";
+ if (guid.Equals(VSStd2KCmdIDEnumGuid, StringComparison.OrdinalIgnoreCase))
+ {
+ // If loading a NaCl or Pepper platform, perform property modifications.
+ if (id == (int)VSConstants.VSStd2KCmdID.SolutionPlatform)
+ {
+ string platform = customOut as string;
+ if (PropertyManager.IsNaClPlatform(platform) || PropertyManager.IsPepperPlatform(platform))
+ {
+ PerformPropertyModifications();
+ }
+ }
+ }
+ }
+
+ /// <summary>
+ /// Goes through all projects in the solution and updates their properties with necessary
+ /// modifications if they are NaCl or Pepper configurations. We add the version information
+ /// here so that the version is stored directly in the project file. The call to
+ /// PerformPropertyFixes() performs a work around on the property pages to force Visual Studio
+ /// to save some specific properties into the project file to get around issue 140162.
+ /// </summary>
+ private void PerformPropertyModifications()
+ {
+ string naclAddInVersion = GetAddInVersionFromDescription();
+
+ var configs = Utility.GetPlatformVCConfigurations(dte_, Strings.PepperPlatformName);
+ configs.AddRange(Utility.GetPlatformVCConfigurations(dte_, Strings.NaCl64PlatformName));
+ configs.AddRange(Utility.GetPlatformVCConfigurations(dte_, Strings.NaCl32PlatformName));
+
+ var properties = new PropertyManager();
+ foreach (VCConfiguration config in configs)
+ {
+ properties.SetTarget(config);
+ if (properties.NaClAddInVersion != naclAddInVersion)
+ {
+ Debug.WriteLine("Modifying Config: " + config.Name);
+
+ // Set the NaCl add-in version so that it is stored in the project file.
+ properties.SetProperty("ConfigurationGeneral", "NaClAddInVersion", naclAddInVersion);
+
+ // Expand the CHROME_PATH variable to its full path.
+ string expandedChrome = properties.GetProperty(
+ "WindowsLocalDebugger", "LocalDebuggerCommand");
+ properties.SetProperty("WindowsLocalDebugger", "LocalDebuggerCommand", expandedChrome);
+
+ // Change the library includes to have the appropriate extension.
+ string libs = properties.GetProperty("Link", "AdditionalDependencies");
+ if (properties.ProjectPlatform == PropertyManager.ProjectPlatformType.NaCl)
+ {
+ libs = libs.Replace(".lib", string.Empty);
+ }
+ else if (properties.ProjectPlatform == PropertyManager.ProjectPlatformType.Pepper)
+ {
+ string[] libsList = libs.Split(';');
+ libs = string.Empty;
+ foreach (string lib in libsList)
+ {
+ string baseLibName = lib.Replace(".lib", string.Empty);
+ if (!string.IsNullOrWhiteSpace(lib))
+ {
+ libs = string.Concat(libs, baseLibName, ".lib;");
+ }
+ }
+ }
+
+ properties.SetProperty("Link", "AdditionalDependencies", libs);
+
+ // Work around for issue 140162. Forces some properties to save to the project file.
+ PerformPropertyFixes(config);
+ }
+ }
+ }
+
+ /// <summary>
+ /// Takes a project configuration and sets values in the project file to work around some
+ /// problems in Visual Studio. This is a work around for issue 140162.
+ /// </summary>
+ /// <param name="config">A configuration that needs modification.</param>
+ private void PerformPropertyFixes(VCConfiguration config)
+ {
+ IVCRulePropertyStorage debugger = config.Rules.Item("WindowsLocalDebugger");
+ string arguments = debugger.GetUnevaluatedPropertyValue("LocalDebuggerCommandArguments");
+ debugger.SetPropertyValue("LocalDebuggerCommandArguments", arguments);
+
+ // NaCl Platform Specific:
+ if (PropertyManager.IsNaClPlatform(config.Platform.Name))
+ {
+ IVCRulePropertyStorage general = config.Rules.Item("ConfigurationGeneral");
+ string[] keys = {"VSNaClSDKRoot"};
+ Dictionary<string, string> values = new Dictionary<string, string>();
+ foreach (var key in keys)
+ {
+ values[key] = general.GetUnevaluatedPropertyValue(key);
+ general.DeleteProperty(key);
+ }
+
+ foreach (var key in keys)
+ {
+ general.SetPropertyValue(key, values[key]);
+ }
+ }
+
+ IVCRulePropertyStorage directories = config.Rules.Item("ConfigurationDirectories");
+ string includePath = directories.GetUnevaluatedPropertyValue("IncludePath");
+ string libraryPath = directories.GetUnevaluatedPropertyValue("LibraryPath");
+ directories.DeleteProperty("IncludePath");
+ directories.DeleteProperty("LibraryPath");
+ directories.SetPropertyValue("IncludePath", includePath);
+ directories.SetPropertyValue("LibraryPath", libraryPath);
+
+ // Pepper specific:
+ if (config.Platform.Name == Strings.PepperPlatformName)
+ {
+ string executablePath = directories.GetUnevaluatedPropertyValue("ExecutablePath");
+ directories.SetPropertyValue("ExecutablePath", executablePath);
+ }
+ }
+
+ /// <summary>
+ /// During the build process we dynamically put the add-in version number into the add-in
+ /// description. This function extracts that version number.
+ /// </summary>
+ /// <returns>The add-in version number.</returns>
+ private string GetAddInVersionFromDescription()
+ {
+ string naclAddinVersion = "missing";
+ foreach (AddIn addin in dte_.AddIns)
+ {
+ if (addin.Name.Equals(Strings.AddInName))
+ {
+ string identifier = "Version: [";
+ int start = addin.Description.IndexOf(identifier) + identifier.Length;
+ int end = addin.Description.LastIndexOf(']');
+ if (start >= 0 && end >= 0)
+ {
+ naclAddinVersion = addin.Description.Substring(start, end - start);
+ break;
+ }
+ }
+ }
+
+ return naclAddinVersion;
+ }
+
+ /// <summary>
+ /// Called when Visual Studio ends a debugging session.
+ /// Shuts down the web server and debugger.
+ /// </summary>
+ /// <param name="reason">The parameter is not used.</param>
+ private void DebuggerOnEnterDesignMode(dbgEventReason reason)
+ {
+ if (debugger_ != null)
+ {
+ debugger_.Dispose();
+ debugger_ = null;
+ }
+
+ if (webServer_ != null)
+ {
+ webServer_.Dispose();
+ webServer_ = null;
+ }
+ }
+
+ /// <summary>
+ /// Called when Visual Studio starts a debugging session.
+ /// Here we kick off the debugger and web server if appropriate.
+ /// </summary>
+ /// <param name="reason">Indicates how we are entering run mode (breakpoint or launch).</param>
+ private void DebuggerOnEnterRunMode(dbgEventReason reason)
+ {
+ // If we are starting debugging (not re-entering from a breakpoint)
+ // then load project settings and start the debugger-helper.
+ if (reason == dbgEventReason.dbgEventReasonLaunchProgram)
+ {
+ PropertyManager properties = new PropertyManager();
+ properties.SetTargetToActive(dte_);
+ if (properties.ProjectPlatform == PropertyManager.ProjectPlatformType.NaCl)
+ {
+ debugger_ = new PluginDebuggerGDB(dte_, properties);
+ webServer_ = new WebServer(webServerOutputPane_, properties);
+ }
+ else if (properties.ProjectPlatform == PropertyManager.ProjectPlatformType.Pepper)
+ {
+ debugger_ = new PluginDebuggerVS(dte_, properties);
+ webServer_ = new WebServer(webServerOutputPane_, properties);
+ }
+ }
+ }
+ }
+}

Powered by Google App Engine
This is Rietveld 408576698