void CreateWorkspace(ITextBuffer buffer) { if (buffer.GetWorkspace() != null || !buffer.ContentType.IsOfType("Roslyn Languages")) return; var componentModel = (IComponentModel)ExportProvider.GetService(typeof(SComponentModel)); var workspace = new EditorWorkspace(MefV1HostServices.Create(componentModel.DefaultExportProvider)); var project = workspace.CurrentSolution .AddProject("Sample Project", "SampleProject", contentTypeLanguages[buffer.ContentType.DisplayName]) .AddMetadataReferences(new[] { "mscorlib", "System", "System.Core", "System.Xml.Linq" } .Select(EditorWorkspace.CreateFrameworkReference) ); project = project.WithParseOptions(project.ParseOptions.WithKind(SourceCodeKind.Script)); workspace.TryApplyChanges(project.Solution); workspace.CreateDocument(project.Id, buffer); }
void CreateWorkspace(ITextBuffer buffer) { if (buffer.GetWorkspace() != null || !buffer.ContentType.IsOfType("Roslyn Languages")) { return; } var componentModel = (IComponentModel)ExportProvider.GetService(typeof(SComponentModel)); var workspace = new EditorWorkspace(MefV1HostServices.Create(componentModel.DefaultExportProvider)); var project = workspace.CurrentSolution .AddProject("Sample Project", "SampleProject", contentTypeLanguages[buffer.ContentType.DisplayName]) .AddMetadataReferences(new[] { "mscorlib", "System", "System.Core", "System.Xml.Linq" } .Select(EditorWorkspace.CreateFrameworkReference) ); project = project.WithParseOptions(project.ParseOptions.WithKind(SourceCodeKind.Script)); workspace.TryApplyChanges(project.Solution); workspace.CreateDocument(project.Id, buffer); }