Cosmos/source/Cosmos.VS.ReadMe.html
2017-03-19 09:29:46 -05:00

147 lines
5.2 KiB
HTML

<p>
Projects that provide Visual Studio IDE support.</p>
<h2>
Debugging</h2>
<p>
Debugging VS packages can be a royal PITA. The hive can be used but install.bat
often requires it to be reset each time.</p>
<p>
Hive: </p>
<p>
Cosmos.VS.ProjectSystem is setup for debugging via a second (non hive) instance but
the path is set for the default directory on x64.</p>
<p>
Hive:<br />
C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\devenv.exe<br />
<a href="file:///D:/source/Cosmos/source/Cosmos.sln">
D:\source\Cosmos\source\Cosmos.sln</a> /ranu /rootsuffix Exp</p>
<p>
Non hive:<br />
C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\devenv.exe<br />
<a href="file:///D:/source/Cosmos/source/Cosmos.sln">D:\source\Cosmos\source\Cosmos.sln</a></p>
<h2>
Resources</h2>
<h3>
VSIX</h3>
<ul>
<li><a href="http://msdn.microsoft.com/en-us/library/ff363239.aspx">MSDN: VSIX
Deployment</a></li>
<li><a href="http://superuser.com/questions/73675/how-do-i-install-a-vsix-file-in-visual-studio">
How do I deploy a VSIX file?</a></li>
</ul>
<h3>
MEF</h3>
<ul>
<li>MSDN<ul>
<li><a href="http://code.msdn.microsoft.com/vsx">Visual Studio 2010 Editor
Extensibility Samples</a></li>
<li><a href="http://msdn.microsoft.com/en-us/library/dd885242.aspx">Extending the
editor</a></li>
<li><a href="http://msdn.microsoft.com/en-us/library/dd885013.aspx">Managed
Extensibility Framework in the Editor</a></li>
<li><a href="http://msdn.microsoft.com/en-us/library/dd885122.aspx">Getting Started
with Editor Extensions</a></li>
<li><a href="http://msdn.microsoft.com/en-us/library/dd393694.aspx">Visual Studio
Extension Deployment</a></li>
</ul>
</li>
<li><a href="http://channel9.msdn.com/blogs/vsipmarketing/vsx212-adding-a-language-service-into-visual-studio-2010">
How to integrate a language service (Video)</a></li>
<li><a href="http://channel9.msdn.com/posts/VSIPMarketing/VSX212-Adding-a-Language-Service-into-Visual-Studio-2010/">
Chris Granger&#39;s talk on Language Integration in the 2010 Editor</a></li>
<li><a href="http://channel9.msdn.com/posts/VSIPMarketing/VSX103-Lighting-up-the-new-Visual-Studio-2010-Editor-with-Rich-Extensions/">
Chris Granger&#39;s talk on Lighting up the editor with extensions</a></li>
</ul>
<h2>
Projects</h2>
<p>
Note that some VS parts, the custom VS debugger for example is in \Debug.</p>
<h3>
Cosmos.VS.ProjectSystem</h3>
<p>
MPF project.
Does not appear to be a VS Package. So what is it? This was our first package
from very old VS, might be old crapp COM model?</p>
<p>
Provides:</p>
<ul>
<li>Support for the .Cosmos project type</li>
<li>Project configuration dialogs</li>
<li>X# custom tool generator - Move to Cosmos.VS.XSharp probably</li>
</ul>
<h3>
Cosmos.VS.Windows</h3>
<p>
Provides UI for Cosmos debug windows in VS.
Contains windows, toolbars and menu options. </p>
<p>
Separate from other pacakges
because:</p>
<ul>
<li>Threading and hosting issues</li>
<li>It is a different project
type.</li>
<li>Allows external testing by Cosmos.VS.Windows.Test</li>
</ul>
<h3>
Cosmos.VS.Windows.Test</h3>
<p>
Testing project for Cosmos.VS.Windows. Not used by VS itself.</p>
<h3>
Cosmos.VS.Wizards</h3>
<p>
Not VSIX, not MEF, not MPF. Why is this a separate assembly?</p>
<p>
Provides:</p>
<ul>
<li>Support for creating new Cosmos projects from within Visual Studio.</li>
</ul>
<h3>
Cosmos.VS.XSharp</h3>
<p>
MPF project and VS Package.</p>
<p>
XSharp Language Service</p>
<p>
Provides:</p>
<ul>
<li>Syntax coloring for X#.
</li>
<li>Code completion / intellisense (future)
</li>
</ul>
<p>
X# custom tool generator is in Cosmos.VS.ProjectSystem.</p>
<h3>
Comos.Launch.VMware</h3>
<p>
VS debugger requires a process that starts paused, and is then later started. To
do this and to unify the process that is used, we use a proxy process which then
controls the actual execution environment (VMWare, QEMU, etc).</p>
<h3>
Comos.Debug.VSDebugEngine</h3>
<p>
This provides a custom debug engine to Visual Studio to handle tracing,
breakpoints, stepping, watches, etc.</p>
<ul>
<li>AD7.Impl \ AD7Process.cs<ul>
<li>Launches DebugHost, which then launches
VMWare etc</li>
<li>Contains pipes for communicating to VMWare&#39;s serial port to DebugStub</li>
</ul>
</li>
<li>BreakpointManager.cs<ul>
<li>contains notes on breakpoints</li>
</ul>
</li>
</ul>
<p>
References</p>
<ul>
<li>http://archive.msdn.microsoft.com/debugenginesample/Release/ProjectReleases.aspx?ReleaseId=4149</li>
</ul>
<p>
&nbsp;</p>