public SimpleCompletionProvider(ScriptCs.ScriptServices service, ICSharpCode.AvalonEdit.Document.TextDocument text) { this._service = service; this.text = text; eProvider = new EnumProvider(); sProvider = new StaticProvider(); }
public CompletionProvider(ScriptCs.ScriptServices service, ICSharpCode.AvalonEdit.Document.TextDocument text) { _simp = new SimpleCompletionProvider(service, text); var currentPath = Assembly.GetExecutingAssembly().Location; currentPath = Path.GetDirectoryName(currentPath); var f1 = Path.Combine(currentPath, "Microsoft.CodeAnalysis.Features.dll"); var f2 = Path.Combine(currentPath, "Microsoft.CodeAnalysis.CSharp.Features"); var f3 = Path.Combine(currentPath, "Microsoft.CodeAnalysis.Workspaces.Desktop"); if (!File.Exists(f1)) { File.WriteAllBytes(f1, Resources.Microsoft_CodeAnalysis_Features); } if (!File.Exists(f2)) { File.WriteAllBytes(f2, Resources.Microsoft_CodeAnalysis_CSharp_Features); } if (!File.Exists(f3)) { File.WriteAllBytes(f3, Resources.Microsoft_CodeAnalysis_Workspaces_Desktop); } _host = MefHostServices.Create(MefHostServices.DefaultAssemblies.Concat(new[] { Assembly.LoadFrom(f1), Assembly.LoadFrom(f2) })); _ws = new InteractiveWorkspace(_host); _parseOptions = new CSharpParseOptions(kind: SourceCodeKind.Interactive); _references = _assemblyTypes.Select(t => MetadataReference.CreateFromAssembly(t.Assembly)).ToArray(); _compilationOptions = new CSharpCompilationOptions(OutputKind.DynamicallyLinkedLibrary, usings: _assemblyTypes.Select(x => x.Namespace).ToImmutableArray()); var container = new CompositionContainer(new AssemblyCatalog(typeof(ISignatureHelpProvider).Assembly), CompositionOptions.DisableSilentRejection | CompositionOptions.IsThreadSafe); _signatureHelpProviders = container.GetExportedValues <ISignatureHelpProvider>().ToArray(); }