Projects that provide Visual Studio IDE support.

## Debugging

Debugging VS packages can be a royal PITA. The hive can be used but install.bat often requires it to be reset each time.

Hive:

Cosmos.VS.ProjectSystem is setup for debugging via a second (non hive) instance but the path is set for the default directory on x64.

Hive:
C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\devenv.exe
D:\source\Cosmos\source\Cosmos.sln /ranu /rootsuffix Exp

Non hive:
C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\devenv.exe
D:\source\Cosmos\source\Cosmos.sln

## Resources

### VSIX

- MSDN: VSIX Deployment
- How do I deploy a VSIX file?

### MEF

- MSDN
  - Visual Studio 2010 Editor Extensibility Samples
  - Extending the editor
  - Managed Extensibility Framework in the Editor
  - Getting Started with Editor Extensions
  - Visual Studio Extension Deployment
- How to integrate a language service (Video)
- Chris Granger's talk on Language Integration in the 2010 Editor
- Chris Granger's talk on Lighting up the editor with extensions

## Projects

Note that some VS parts, the custom VS debugger for example is in \Debug.

### Cosmos.VS.ProjectSystem

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?

Provides:

- Support for the .Cosmos project type
- Project configuration dialogs
- X# custom tool generator - Move to XSharp.VS probably

### Cosmos.VS.Windows

Provides UI for Cosmos debug windows in VS. Contains windows, toolbars and menu options.

Separate from other pacakges because:

- Threading and hosting issues
- It is a different project type.
- Allows external testing by Cosmos.VS.Windows.Test

### Cosmos.VS.Windows.Test

Testing project for Cosmos.VS.Windows. Not used by VS itself.

### Cosmos.VS.Wizards

Not VSIX, not MEF, not MPF. Why is this a separate assembly?

Provides:

- Support for creating new Cosmos projects from within Visual Studio.

### Cosmos.VS.XSharp

MPF project and VS Package.

XSharp Language Service

Provides:

- Syntax coloring for X#.
- Code completion / intellisense (future)

X# custom tool generator is in Cosmos.VS.ProjectSystem.

### Comos.Launch.VMware

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).

### Comos.Debug.VSDebugEngine

This provides a custom debug engine to Visual Studio to handle tracing, breakpoints, stepping, watches, etc.

- AD7.Impl \ AD7Process.cs
  - Launches DebugHost, which then launches VMWare etc
  - Contains pipes for communicating to VMWare's serial port to DebugStub
- BreakpointManager.cs
  - contains notes on breakpoints

References

- http://archive.msdn.microsoft.com/debugenginesample/Release/ProjectReleases.aspx?ReleaseId=4149