public VsRInteractiveWorkflowProvider(ICoreShell shell)
        {
            _shell = shell;

            _connectionsProvider   = shell.GetService <IConnectionManagerProvider>();
            _containerProvider     = shell.GetService <IContainerManagerProvider>();
            _historyProvider       = shell.GetService <IRHistoryProvider>();
            _packagesProvider      = shell.GetService <IRPackageManagerProvider>();
            _plotsProvider         = shell.GetService <IRPlotManagerProvider>();
            _activeTextViewTracker = shell.GetService <IActiveWpfTextViewTracker>();
            _debuggerModeTracker   = shell.GetService <IDebuggerModeTracker>();

            _app              = _shell.GetService <IApplication>();
            _app.Terminating += OnApplicationTerminating;
        }
Ejemplo n.º 2
0
 public TestRInteractiveWorkflowProvider(IConnectionManagerProvider connectionManagerProvider
                                         , IContainerManagerProvider containerManagerProvider
                                         , IRHistoryProvider historyProvider
                                         , IRPackageManagerProvider packagesProvider
                                         , IRPlotManagerProvider plotsProvider
                                         , IActiveWpfTextViewTracker activeTextViewTracker
                                         , IDebuggerModeTracker debuggerModeTracker
                                         , ICoreShell shell)
 {
     _connectionManagerProvider = connectionManagerProvider;
     _containerManagerProvider  = containerManagerProvider;
     _historyProvider           = historyProvider;
     _packagesProvider          = packagesProvider;
     _plotsProvider             = plotsProvider;
     _activeTextViewTracker     = activeTextViewTracker;
     _debuggerModeTracker       = debuggerModeTracker;
     _shell = shell;
 }
        public static TestRInteractiveWorkflowProvider Create(IConnectionManagerProvider connectionsProvider    = null
                                                              , IContainerManagerProvider containerProvider     = null
                                                              , IRHistoryProvider historyProvider               = null
                                                              , IRPackageManagerProvider packagesProvider       = null
                                                              , IRPlotManagerProvider plotsProvider             = null
                                                              , IActiveWpfTextViewTracker activeTextViewTracker = null
                                                              , IDebuggerModeTracker debuggerModeTracker        = null
                                                              , ICoreShell shell    = null
                                                              , IRSettings settings = null)
        {
            connectionsProvider = connectionsProvider ?? ConnectionManagerProviderStubFactory.CreateDefault();
            containerProvider   = containerProvider ?? ContainerManagerProviderStubFactory.CreateDefault();
            historyProvider     = historyProvider ?? RHistoryProviderStubFactory.CreateDefault();
            packagesProvider    = packagesProvider ?? RPackageManagerProviderStubFactory.CreateDefault();
            plotsProvider       = plotsProvider ?? RPlotManagerProviderStubFactory.CreateDefault();

            activeTextViewTracker = activeTextViewTracker ?? new ActiveTextViewTrackerMock(string.Empty, RContentTypeDefinition.ContentType);
            debuggerModeTracker   = debuggerModeTracker ?? new VsDebuggerModeTracker(shell ?? Substitute.For <ICoreShell>());
            shell = shell ?? VsAppShell.Current;

            return(new TestRInteractiveWorkflowProvider(
                       connectionsProvider, containerProvider, historyProvider, packagesProvider,
                       plotsProvider, activeTextViewTracker, debuggerModeTracker, shell));
        }
Ejemplo n.º 4
0
        public RInteractiveWorkflow(IConnectionManagerProvider connectionsProvider
                                    , IContainerManagerProvider containerProvider
                                    , IRHistoryProvider historyProvider
                                    , IRPackageManagerProvider packagesProvider
                                    , IRPlotManagerProvider plotsProvider
                                    , IActiveWpfTextViewTracker activeTextViewTracker
                                    , IDebuggerModeTracker debuggerModeTracker
                                    , IServiceManager services)
        {
            _services = services
                        .AddService <IRInteractiveWorkflow>(this)
                        .AddService <IConsole, InteractiveWindowConsole>()
                        .AddService <IRSessionProvider, RSessionProvider>()
                        .AddService(s => connectionsProvider.CreateConnectionManager(this))
                        .AddService(s => containerProvider.CreateContainerManager(this))
                        .AddService(s => historyProvider.CreateRHistory(this))
                        .AddService(s => packagesProvider.CreateRPackageManager(this))
                        .AddService(s => plotsProvider.CreatePlotManager(this));

            _settings   = _services.GetService <IRSettings>();
            _mainThread = _services.MainThread();
            _operations = new RInteractiveWorkflowOperations(this, debuggerModeTracker, Services);

            RSession = RSessions.GetOrCreate(SessionNames.InteractiveWindow);

            _settings.PropertyChanged += OnSettingsChanged;
            activeTextViewTracker.LastActiveTextViewChanged += LastActiveTextViewChanged;
            RSession.Disconnected += RSessionDisconnected;

            _disposableBag = DisposableBag.Create <RInteractiveWorkflow>()
                             .Add(() => _settings.PropertyChanged -= OnSettingsChanged)
                             .Add(() => activeTextViewTracker.LastActiveTextViewChanged -= LastActiveTextViewChanged)
                             .Add(() => RSession.Disconnected -= RSessionDisconnected)
                             .Add(Operations)
                             .Add(_services);
        }