コード例 #1
0
ファイル: RPlotDeviceCommands.cs プロジェクト: Microsoft/RTVS
        public RPlotDeviceCommands(IRInteractiveWorkflow interactiveWorkflow, IRPlotDeviceVisualComponent visualComponent) {
            if (interactiveWorkflow == null) {
                throw new ArgumentNullException(nameof(interactiveWorkflow));
            }

            if (visualComponent == null) {
                throw new ArgumentNullException(nameof(visualComponent));
            }

            _interactiveWorkflow = interactiveWorkflow;
            _visualComponent = visualComponent;

            ActivatePlotDevice = new PlotDeviceActivateCommand(_interactiveWorkflow, _visualComponent);
            ExportAsImage = new PlotDeviceExportAsImageCommand(_interactiveWorkflow, _visualComponent);
            ExportAsPdf = new PlotDeviceExportAsPdfCommand(_interactiveWorkflow, _visualComponent);
            Cut = new PlotDeviceCutCopyCommand(_interactiveWorkflow, _visualComponent, cut: true);
            Copy = new PlotDeviceCutCopyCommand(_interactiveWorkflow, _visualComponent, cut: false);
            Paste = new PlotDevicePasteCommand(_interactiveWorkflow, _visualComponent);
            CopyAsBitmap = new PlotDeviceCopyAsBitmapCommand(_interactiveWorkflow, _visualComponent);
            CopyAsMetafile = new PlotDeviceCopyAsMetafileCommand(_interactiveWorkflow, _visualComponent);
            RemoveAllPlots = new PlotDeviceRemoveAllCommand(_interactiveWorkflow, _visualComponent);
            RemoveCurrentPlot = new PlotDeviceRemoveCurrentCommand(_interactiveWorkflow, _visualComponent);
            NextPlot = new PlotDeviceMoveNextCommand(_interactiveWorkflow, _visualComponent);
            PreviousPlot = new PlotDeviceMovePreviousCommand(_interactiveWorkflow, _visualComponent);
            EndLocator = new PlotDeviceEndLocatorCommand(_interactiveWorkflow, _visualComponent);
        }
コード例 #2
0
 public ShowHelpOnCurrentCommand(
     IRInteractiveWorkflow workflow,
     IActiveWpfTextViewTracker textViewTracker,
     IActiveRInteractiveWindowTracker activeReplTracker) :
     base(RGuidList.RCmdSetGuid, RPackageCommandId.icmdHelpOnCurrent,
         workflow, textViewTracker, activeReplTracker, Resources.OpenFunctionHelp) {
 }
コード例 #3
0
 public LoadWorkspaceCommand(IApplicationShell appShell, IRInteractiveWorkflow interactiveWorkflow, IProjectServiceAccessor projectServiceAccessor) :
     base(RGuidList.RCmdSetGuid, RPackageCommandId.icmdLoadWorkspace) {
     _appShell = appShell;
     _interactiveWorkflow = interactiveWorkflow;
     _rSession = interactiveWorkflow.RSession;
     _projectServiceAccessor = projectServiceAccessor;
 }
コード例 #4
0
ファイル: ConnectionManager.cs プロジェクト: Microsoft/RTVS
        public ConnectionManager(IStatusBar statusBar, IRSettings settings, IRInteractiveWorkflow interactiveWorkflow) {
            _statusBar = statusBar;
            _sessionProvider = interactiveWorkflow.RSessions;
            _settings = settings;
            _interactiveWorkflow = interactiveWorkflow;
            _shell = interactiveWorkflow.Shell;
            _securityService = _shell.Services.Security;

            _statusBarViewModel = new ConnectionStatusBarViewModel(this, interactiveWorkflow.Shell);
            _hostLoadIndicatorViewModel = new HostLoadIndicatorViewModel(_sessionProvider, interactiveWorkflow.Shell);

            _disposableBag = DisposableBag.Create<ConnectionManager>()
                .Add(_statusBarViewModel)
                .Add(_hostLoadIndicatorViewModel)
                .Add(() => _sessionProvider.BrokerStateChanged -= BrokerStateChanged)
                .Add(() => _interactiveWorkflow.ActiveWindowChanged -= ActiveWindowChanged);

            _sessionProvider.BrokerStateChanged += BrokerStateChanged;
            _interactiveWorkflow.ActiveWindowChanged += ActiveWindowChanged;

            // Get initial values
            var connections = CreateConnectionList();
            _connections = new ConcurrentDictionary<string, IConnection>(connections);

            UpdateRecentConnections(save: false);
            CompleteInitializationAsync().DoNotWait();
        }
コード例 #5
0
        public SessionInformationCommand(IRInteractiveWorkflow interactiveWorkflow, IConsole console) {
            _interactiveWorkflow = interactiveWorkflow;
            _console = console;

            _interactiveWorkflow.RSession.Interactive += OnRSessionInteractive;
            _interactiveWorkflow.RSession.Disposed += OnRSessionDisposed;
        }
コード例 #6
0
 public CurrentDirectoryTest() {
     var sessionProvider = VsAppShell.Current.ExportProvider.GetExportedValue<IRSessionProvider>();
     var historyProvider = VsAppShell.Current.ExportProvider.GetExportedValue<IRHistoryProvider>();
     var activeTextViewTracker = new ActiveTextViewTrackerMock(string.Empty, string.Empty);
     var debuggerModeTracker = new TestDebuggerModeTracker();
     _interactiveWorkflow = new RInteractiveWorkflow(sessionProvider, historyProvider, activeTextViewTracker, debuggerModeTracker, null, VsAppShell.Current, RToolsSettings.Current, () => {});
 }
コード例 #7
0
ファイル: RHistoryProvider.cs プロジェクト: Microsoft/RTVS
 public IRHistory CreateRHistory(IRInteractiveWorkflow interactiveWorkflow) {
     var contentType = _contentTypeRegistryService.GetContentType(RHistoryContentTypeDefinition.ContentType);
     var textBuffer = _textBufferFactory.CreateTextBuffer(contentType);
     var history = new RHistory(interactiveWorkflow, textBuffer, new FileSystem(), _settings, _editorOperationsFactory, _rtfBuilderService, () => RemoveRHistory(textBuffer));
     _histories[textBuffer] = history;
     return history;
 }
コード例 #8
0
        public InteractiveWorkflowAsyncCommand(IRInteractiveWorkflow interactiveWorkflow) {
            if (interactiveWorkflow == null) {
                throw new ArgumentNullException(nameof(interactiveWorkflow));
            }

            InteractiveWorkflow = interactiveWorkflow;
        }
コード例 #9
0
        public ShowMainPlotWindowCommand(IRInteractiveWorkflow workflow) {
            if (workflow == null) {
                throw new ArgumentNullException(nameof(workflow));
            }

            _workflow = workflow;
        }
コード例 #10
0
        public ReplCommandTest() {
            _debuggerModeTracker = new VsDebuggerModeTracker();

            _componentContainerFactory = new InteractiveWindowComponentContainerFactoryMock();
            _workflowProvider = TestRInteractiveWorkflowProviderFactory.Create(debuggerModeTracker: _debuggerModeTracker);
            _workflow = _workflowProvider.GetOrCreate();
        }
コード例 #11
0
 public RPackageManagerViewModelTest(RComponentsMefCatalogFixture catalog, TestMethodFixture testMethod, TestFilesFixture testFiles) {
     _exportProvider = catalog.CreateExportProvider();
     var workflowProvider = _exportProvider.GetExportedValue<TestRInteractiveWorkflowProvider>();
     _workflow = UIThreadHelper.Instance.Invoke(() => workflowProvider.GetOrCreate());
     _testMethod = testMethod.MethodInfo;
     _testFiles = testFiles;
 }
コード例 #12
0
 protected FunctionIndexBasedTest(AssemblyMefCatalogFixture catalog) {
     ExportProvider = catalog.CreateExportProvider();
     Workflow = UIThreadHelper.Instance.Invoke(() => ExportProvider.GetExportedValue<IRInteractiveWorkflowProvider>().GetOrCreate());
     EditorShell = ExportProvider.GetExportedValue<IEditorShell>();
     FunctionIndex = ExportProvider.GetExportedValue<IFunctionIndex>();
     PackageIndex = ExportProvider.GetExportedValue<IPackageIndex>();
 }
コード例 #13
0
        public PlotDeviceNewCommand(IRInteractiveWorkflow workflow) {
            if (workflow == null) {
                throw new ArgumentNullException(nameof(workflow));
            }

            _workflow = workflow;
        }
コード例 #14
0
ファイル: ReplCommandTest.cs プロジェクト: Microsoft/RTVS
        public ReplCommandTest() {
            _debuggerModeTracker = new VsDebuggerModeTracker();

            _workflowProvider = TestRInteractiveWorkflowProviderFactory.Create(
                connectionsProvider: new ConnectionManagerProvider(new TestStatusBar(), RToolsSettings.Current),
                debuggerModeTracker: _debuggerModeTracker);
            _workflow = _workflowProvider.GetOrCreate();
        }
コード例 #15
0
ファイル: PlotHistoryCommand.cs プロジェクト: Microsoft/RTVS
        public PlotHistoryCommand(IRInteractiveWorkflow interactiveWorkflow, IRPlotHistoryVisualComponent visualComponent) :
            base(interactiveWorkflow) {
            if (visualComponent == null) {
                throw new ArgumentNullException(nameof(visualComponent));
            }

            VisualComponent = visualComponent;
        }
コード例 #16
0
        public SendToReplCommand(ITextView textView, IRInteractiveWorkflow interactiveWorkflow) :
            base(textView, new[] {
                new CommandId(VSConstants.VsStd11, (int)VSConstants.VSStd11CmdID.ExecuteLineInInteractive),
                new CommandId(VSConstants.VsStd11, (int)VSConstants.VSStd11CmdID.ExecuteSelectionInInteractive)
            }, false) {

            _interactiveWorkflow = interactiveWorkflow;
        }
コード例 #17
0
 public SearchWebForCurrentCommand(
     IRInteractiveWorkflow workflow,
     IActiveWpfTextViewTracker textViewTracker,
     IActiveRInteractiveWindowTracker activeReplTracker,
     IWebBrowserServices webBrowserServices) :
     base(RGuidList.RCmdSetGuid, RPackageCommandId.icmdSearchWebForCurrent,
         workflow, textViewTracker, activeReplTracker, Resources.SearchWebFor) {
     _webBrowserServices = webBrowserServices;
 }
コード例 #18
0
        public RInteractiveEvaluatorTest(RComponentsMefCatalogFixture catalog) {
            _exportProvider = catalog.CreateExportProvider();

            var settings = _exportProvider.GetExportedValue<IRSettings>();
            settings.RCodePage = 1252;

            _workflowProvider = _exportProvider.GetExportedValue<IRInteractiveWorkflowProvider>();
            _workflow = UIThreadHelper.Instance.Invoke(() => _workflowProvider.GetOrCreate());
        }
コード例 #19
0
 public RPlotIntegrationTest(RComponentsMefCatalogFixture catalog, TestMethodFixture testMethod, TestFilesFixture testFiles) {
     _exportProvider = catalog.CreateExportProvider();
     _workflowProvider = _exportProvider.GetExportedValue<TestRInteractiveWorkflowProvider>();
     _workflow = _workflowProvider.GetOrCreate();
     _plotDeviceVisualComponentContainerFactory = _exportProvider.GetExportedValue<TestRPlotDeviceVisualComponentContainerFactory>();
     _plotHistoryVisualComponentContainerFactory = _exportProvider.GetExportedValue<IRPlotHistoryVisualComponentContainerFactory>();
     _testMethod = testMethod.MethodInfo;
     _testFiles = testFiles;
 }
コード例 #20
0
        public SendHistoryToSourceCommand(ITextView textView, IRHistoryProvider historyProvider, IRInteractiveWorkflow interactiveWorkflow, IContentTypeRegistryService contentTypeRegistry, IActiveWpfTextViewTracker textViewTracker)
            : base(textView, RGuidList.RCmdSetGuid, RPackageCommandId.icmdSendHistoryToSource, false) {

            _textViewTracker = textViewTracker;
            _interactiveWorkflow = interactiveWorkflow;
            _history = historyProvider.GetAssociatedRHistory(textView);

            _contentTypes.Add(contentTypeRegistry.GetContentType(RContentTypeDefinition.ContentType));
            _contentTypes.Add(contentTypeRegistry.GetContentType(MdProjectionContentTypeDefinition.ContentType));
        }
コード例 #21
0
 public ConfigurationSettingCommand(
         int id, string settingNameTemplate,
         IProjectSystemServices pss,
         IProjectConfigurationSettingsProvider pcsp,
         IRInteractiveWorkflow workflow) : base(id, workflow) {
     _id = id;
     _settingNameTemplate = settingNameTemplate;
     _projectSystemServices = pss;
     _projectConfigurationSettingsProvider = pcsp;
 }
コード例 #22
0
ファイル: RSessionCallback.cs プロジェクト: Microsoft/RTVS
        public RSessionCallback(IInteractiveWindow interactiveWindow, IRSession session, IRSettings settings, ICoreShell coreShell, IFileSystem fileSystem) {
            _interactiveWindow = interactiveWindow;
            _session = session;
            _settings = settings;
            _coreShell = coreShell;
            _fileSystem = fileSystem;

            var workflowProvider = _coreShell.ExportProvider.GetExportedValue<IRInteractiveWorkflowProvider>();
            _workflow = workflowProvider.GetOrCreate();
        }
コード例 #23
0
        public VsRHistoryCommandFactory(IRHistoryProvider historyProvider,
            IRInteractiveWorkflowProvider interactiveWorkflowProvider,
            IContentTypeRegistryService contentTypeRegistry,
            IActiveWpfTextViewTracker textViewTracker) {

            _historyProvider = historyProvider;
            _interactiveWorkflow = interactiveWorkflowProvider.GetOrCreate();
            _contentTypeRegistry = contentTypeRegistry;
            _textViewTracker = textViewTracker;
        }
コード例 #24
0
ファイル: InterruptRCommand.cs プロジェクト: Microsoft/RTVS
        public InterruptRCommand(IRInteractiveWorkflow interactiveWorkflow, IDebuggerModeTracker debuggerModeTracker) {
            _interactiveWorkflow = interactiveWorkflow;
            _session = interactiveWorkflow.RSession;
            _debuggerModeTracker = debuggerModeTracker;

            _session.Connected += OnConnected;
            _session.Disconnected += OnDisconnected;

            _session.BeforeRequest += OnBeforeRequest;
            _session.AfterRequest += OnAfterRequest;
        }
コード例 #25
0
        public RSessionCallback(IInteractiveWindow interactiveWindow, IRSession session, IRSettings settings, IServiceContainer services, IFileSystem fileSystem)
        {
            _interactiveWindow = interactiveWindow;
            _session           = session;
            _settings          = settings;
            _services          = services;
            _fileSystem        = fileSystem;

            var workflowProvider = _services.GetService <IRInteractiveWorkflowProvider>();

            _workflow = workflowProvider.GetOrCreate();
        }
コード例 #26
0
 public HelpOnCurrentCommandBase(
     Guid group, int id,
     IRInteractiveWorkflow workflow, 
     IActiveWpfTextViewTracker textViewTracker, 
     IActiveRInteractiveWindowTracker activeReplTracker,
     string baseCommandName) :
     base(group, id) {
     _activeReplTracker = activeReplTracker;
     _workflow = workflow;
     _textViewTracker = textViewTracker;
     _baseCommandName = baseCommandName;
 }
コード例 #27
0
        public FilesCompletionProvider(string directoryCandidate, IServiceContainer services, bool forceR = false)
        {
            Check.ArgumentNull(nameof(directoryCandidate), directoryCandidate);

            _fs           = services.GetService <IFileSystem>();
            _workflow     = services.GetService <IRInteractiveWorkflowProvider>().GetOrCreate();
            _imageService = services.GetService <IImageService>();
            _forceR       = forceR;

            _enteredDirectory = ExtractDirectory(directoryCandidate);
            _task             = GetRootDirectoryAsync(_enteredDirectory);
        }
コード例 #28
0
        public AD7Engine()
        {
            var compModel = (IComponentModel)Package.GetGlobalService(typeof(SComponentModel));

            if (compModel == null)
            {
                throw new InvalidOperationException(Invariant($"{typeof(AD7Engine).FullName} requires {nameof(IComponentModel)} global service"));
            }

            compModel.DefaultCompositionService.SatisfyImportsOnce(this);
            _workflow = WorkflowProvider.GetOrCreate();
        }
コード例 #29
0
ファイル: RSessionCallback.cs プロジェクト: jflam/RTVS
        public RSessionCallback(IInteractiveWindow interactiveWindow, IRSession session, IRSettings settings, ICoreShell coreShell, IFileSystem fileSystem)
        {
            _interactiveWindow = interactiveWindow;
            _session           = session;
            _settings          = settings;
            _coreShell         = coreShell;
            _fileSystem        = fileSystem;

            var workflowProvider = _coreShell.ExportProvider.GetExportedValue <IRInteractiveWorkflowProvider>();

            _workflow = workflowProvider.GetOrCreate();
        }
コード例 #30
0
        public RPlotManager(IRSettings settings, IRInteractiveWorkflow interactiveWorkflow, IFileSystem fileSystem)
        {
            _interactiveWorkflow = interactiveWorkflow;
            _fileSystem          = fileSystem;

            _disposableBag = DisposableBag.Create <RPlotManager>()
                             .Add(() => interactiveWorkflow.RSession.Connected -= RSession_Connected)
                             .Add(() => interactiveWorkflow.RSession.Mutated   -= RSession_Mutated);

            interactiveWorkflow.RSession.Connected += RSession_Connected;
            interactiveWorkflow.RSession.Mutated   += RSession_Mutated;
        }
コード例 #31
0
ファイル: RPlotManager.cs プロジェクト: Microsoft/RTVS
        public RPlotManager(IRSettings settings, IRInteractiveWorkflow interactiveWorkflow, IFileSystem fileSystem) {
            _interactiveWorkflow = interactiveWorkflow;
            _fileSystem = fileSystem;
            _shell = _interactiveWorkflow.Shell;

            _disposableBag = DisposableBag.Create<RPlotManager>()
                .Add(() => interactiveWorkflow.RSession.Connected -= RSession_Connected)
                .Add(() => interactiveWorkflow.RSession.Mutated -= RSession_Mutated);

            interactiveWorkflow.RSession.Connected += RSession_Connected;
            interactiveWorkflow.RSession.Mutated += RSession_Mutated;
        }
コード例 #32
0
 public HelpOnCurrentCommandBase(
     Guid group, int id,
     IRInteractiveWorkflow workflow,
     IActiveWpfTextViewTracker textViewTracker,
     IActiveRInteractiveWindowTracker activeReplTracker,
     string baseCommandName) :
     base(group, id)
 {
     _activeReplTracker = activeReplTracker;
     _workflow          = workflow;
     _textViewTracker   = textViewTracker;
     _baseCommandName   = baseCommandName;
 }
コード例 #33
0
        public CurrentDirectoryTest() {
            var connectionsProvider = VsAppShell.Current.ExportProvider.GetExportedValue<IConnectionManagerProvider>();
            var historyProvider = VsAppShell.Current.ExportProvider.GetExportedValue<IRHistoryProvider>();
            var packagesProvider = VsAppShell.Current.ExportProvider.GetExportedValue<IRPackageManagerProvider>();
            var plotsProvider = VsAppShell.Current.ExportProvider.GetExportedValue<IRPlotManagerProvider>();
            var activeTextViewTracker = new ActiveTextViewTrackerMock(string.Empty, string.Empty);
            var debuggerModeTracker = new TestDebuggerModeTracker();
            _interactiveWorkflow = UIThreadHelper.Instance.Invoke(() => new RInteractiveWorkflow(
                connectionsProvider, historyProvider, packagesProvider, plotsProvider, activeTextViewTracker,
                debuggerModeTracker, VsAppShell.Current, RToolsSettings.Current));

            _sessionProvider = _interactiveWorkflow.RSessions;
        }
コード例 #34
0
        public RPlotIntegrationUITest(RComponentsMefCatalogFixture catalog, ContainerHostMethodFixture containerHost) {
            _containerHost = containerHost;
            _exportProvider = catalog.CreateExportProvider();
            _exportProvider.GetExportedValue<TestRInteractiveWorkflowProvider>();
            _plotDeviceVisualComponentContainerFactory = _exportProvider.GetExportedValue<TestRPlotDeviceVisualComponentContainerFactory>();

            // Don't override the standard behavior of using the control size
            _plotDeviceVisualComponentContainerFactory.DeviceProperties = null;
            _plotHistoryVisualComponentContainerFactory = _exportProvider.GetExportedValue<IRPlotHistoryVisualComponentContainerFactory>();
            _workflow = _exportProvider.GetExportedValue<IRInteractiveWorkflowProvider>().GetOrCreate();
            _plotVisualComponent = UIThreadHelper.Instance.Invoke(() => _workflow.Plots.GetOrCreateVisualComponent(_plotDeviceVisualComponentContainerFactory, PlotWindowInstanceId));
            UIThreadHelper.Instance.Invoke(() => _workflow.Plots.RegisterVisualComponent(_plotVisualComponent));
        }
コード例 #35
0
 public SourceRScriptCommand(IRInteractiveWorkflow interactiveWorkflow, IActiveWpfTextViewTracker activeTextViewTracker)
     : base(RGuidList.RCmdSetGuid, RPackageCommandId.icmdSourceRScript) {
     _interactiveWorkflow = interactiveWorkflow;
     _activeTextViewTracker = activeTextViewTracker;
     _operations = interactiveWorkflow.Operations;
     _monitorSelection = VsAppShell.Current.GetGlobalService<IVsMonitorSelection>(typeof(SVsShellMonitorSelection));
     if (_monitorSelection != null) {
         var debugUIContextGuid = new Guid(UIContextGuids.Debugging);
         if (ErrorHandler.Failed(_monitorSelection.GetCmdUIContextCookie(ref debugUIContextGuid, out _debugUIContextCookie))) {
             _monitorSelection = null;
         }
     }
 }
コード例 #36
0
        public async Task InitializeProjectFromDiskAsync()
        {
            await Project.CreateInMemoryImport();

            _fileWatcher.Start();

            await _threadHandling.SwitchToUIThread();

            // Make sure R package is loaded
            VsAppShell.EnsurePackageLoaded(RGuidList.RPackageGuid);

            // Verify project is not on a network share and give warning if it is
            CheckRemoteDrive(_projectDirectory);

            _workflow = _workflowProvider.GetOrCreate();
            _session  = _workflow.RSession;
            _history  = _workflow.History;

            if (_workflow.ActiveWindow == null)
            {
                var window = await _workflow.GetOrCreateVisualComponentAsync();

                window.Container.Show(focus: true, immediate: false);
            }

            try {
                await _session.HostStarted;
            } catch (Exception) {
                return;
            }

            // TODO: need to compute the proper paths for remote, but they might not even exist if the project hasn't been deployed.
            // https://github.com/Microsoft/RTVS/issues/2223
            if (!_session.IsRemote)
            {
                var  rdataPath            = Path.Combine(_projectDirectory, DefaultRDataName);
                bool loadDefaultWorkspace = _coreShell.Services.FileSystem.FileExists(rdataPath) && await GetLoadDefaultWorkspace(rdataPath);

                if (loadDefaultWorkspace)
                {
                    await _session.LoadWorkspaceAsync(rdataPath);
                }
                await _session.SetWorkingDirectoryAsync(_projectDirectory);

                _toolsSettings.WorkingDirectory = _projectDirectory;
            }

            _history.TryLoadFromFile(Path.Combine(_projectDirectory, DefaultRHistoryName));

            CheckSurveyNews();
        }
コード例 #37
0
        public RPlotIntegrationUITest(IExportProvider exportProvider, ContainerHostMethodFixture containerHost)
        {
            _containerHost  = containerHost;
            _exportProvider = exportProvider;
            _exportProvider.GetExportedValue <TestRInteractiveWorkflowProvider>();
            _plotDeviceVisualComponentContainerFactory = _exportProvider.GetExportedValue <TestRPlotDeviceVisualComponentContainerFactory>();

            // Don't override the standard behavior of using the control size
            _plotDeviceVisualComponentContainerFactory.DeviceProperties = null;
            _plotHistoryVisualComponentContainerFactory = _exportProvider.GetExportedValue <IRPlotHistoryVisualComponentContainerFactory>();
            _workflow            = _exportProvider.GetExportedValue <IRInteractiveWorkflowProvider>().GetOrCreate();
            _plotVisualComponent = UIThreadHelper.Instance.Invoke(() => _workflow.Plots.GetOrCreateVisualComponent(_plotDeviceVisualComponentContainerFactory, PlotWindowInstanceId));
            UIThreadHelper.Instance.Invoke(() => _workflow.Plots.RegisterVisualComponent(_plotVisualComponent));
        }
コード例 #38
0
        public async Task InitializeProjectFromDiskAsync()
        {
            await Project.CreateInMemoryImport();

            _fileWatcher.Start();

            // Force REPL window up and continue only when it is shown
            await _threadHandling.SwitchToUIThread();

            // Make sure R package is loaded
            VsAppShell.EnsurePackageLoaded(RGuidList.RPackageGuid);

            // Verify project is not on a network share and give warning if it is
            CheckRemoteDrive(_projectDirectory);

            _workflow = _workflowProvider.GetOrCreate();
            _session  = _workflow.RSession;
            _history  = _workflow.History;

            if (_workflow.ActiveWindow == null)
            {
                var window = await _workflow.GetOrCreateVisualComponent(_componentContainerFactory);

                window.Container.Show(true);
            }

            try {
                await _session.HostStarted;
            } catch (Exception) {
                return;
            }

            var  rdataPath            = Path.Combine(_projectDirectory, DefaultRDataName);
            bool loadDefaultWorkspace = _fileSystem.FileExists(rdataPath) && await GetLoadDefaultWorkspace(rdataPath);

            using (var evaluation = await _session.BeginEvaluationAsync()) {
                if (loadDefaultWorkspace)
                {
                    await evaluation.LoadWorkspace(rdataPath);
                }

                await evaluation.SetWorkingDirectory(_projectDirectory);
            }

            _toolsSettings.WorkingDirectory = _projectDirectory;
            _history.TryLoadFromFile(Path.Combine(_projectDirectory, DefaultRHistoryName));

            CheckSurveyNews();
        }
コード例 #39
0
        private async Task ConnectAsync(CancellationToken ct)
        {
            var provider = _services.GetService <IRInteractiveWorkflowProvider>();

            _workflow = provider.GetOrCreate();
            _ui       = _services.GetService <IHostUIService>();
            _ui.SetLogLevel(MessageType.Info);

            var e = GetREngine();

            if (e == null)
            {
                return;
            }

            var log   = _services.Log();
            var info  = BrokerConnectionInfo.Create("(local)", e.InstallPath, e.Architecture, string.Empty);
            var start = DateTime.Now;

            _ui.LogMessageAsync($"Starting R Process with {e.InstallPath}...", MessageType.Info).DoNotWait();

            try {
                if (await _workflow.RSessions.TrySwitchBrokerAsync("(local)", info, ct))
                {
                    try {
                        await _workflow.RSession.StartHostAsync(new RHostStartupInfo(), new RSessionCallback(), _services.UI(), Debugger.IsAttached? 1000000 : 20000, ct);
                    } catch (Exception ex) {
                        _ui.ShowMessageAsync($"Unable to start Microsoft.R.Host process. Exception: {ex.Message}", MessageType.Error).DoNotWait();
                        return;
                    }

                    // Start package building
                    _ui.LogMessageAsync($"complete in {FormatElapsed(DateTime.Now - start)}", MessageType.Info).DoNotWait();
                    start = DateTime.Now;
                    _ui.LogMessageAsync("Building IntelliSense index...", MessageType.Info).DoNotWait();

                    _packageIndex = _services.GetService <IPackageIndex>();
                    _packageIndex.BuildIndexAsync(ct).ContinueWith(t => {
                        _ui.LogMessageAsync($"complete in {FormatElapsed(DateTime.Now - start)}", MessageType.Info).DoNotWait();
                    }, ct, TaskContinuationOptions.None, TaskScheduler.Default).DoNotWait();
                }
                else
                {
                    _ui.ShowMessageAsync($"Unable to connect to broker.", MessageType.Error).DoNotWait();
                }
            } catch (Exception ex) {
                _ui.ShowMessageAsync($"Unable to connect to broker. Exception: {ex.Message}", MessageType.Error).DoNotWait();
            }
        }
コード例 #40
0
        public CurrentDirectoryTest()
        {
            _sessionProvider = new RSessionProvider(TestCoreServices.CreateReal());

            var connectionsProvider   = VsAppShell.Current.ExportProvider.GetExportedValue <IConnectionManagerProvider>();
            var historyProvider       = VsAppShell.Current.ExportProvider.GetExportedValue <IRHistoryProvider>();
            var packagesProvider      = VsAppShell.Current.ExportProvider.GetExportedValue <IRPackageManagerProvider>();
            var plotsProvider         = VsAppShell.Current.ExportProvider.GetExportedValue <IRPlotManagerProvider>();
            var activeTextViewTracker = new ActiveTextViewTrackerMock(string.Empty, string.Empty);
            var debuggerModeTracker   = new TestDebuggerModeTracker();

            _interactiveWorkflow = UIThreadHelper.Instance.Invoke(() => new RInteractiveWorkflow(
                                                                      _sessionProvider, connectionsProvider, historyProvider, packagesProvider, plotsProvider, activeTextViewTracker,
                                                                      debuggerModeTracker, VsAppShell.Current, RToolsSettings.Current, null, () => { }));
        }
コード例 #41
0
ファイル: CurrentDirectoryTest.cs プロジェクト: mvacha/RTVS
        public CurrentDirectoryTest()
        {
            var connectionsProvider   = VsAppShell.Current.GlobalServices.GetService <IConnectionManagerProvider>();
            var historyProvider       = VsAppShell.Current.GlobalServices.GetService <IRHistoryProvider>();
            var packagesProvider      = VsAppShell.Current.GlobalServices.GetService <IRPackageManagerProvider>();
            var plotsProvider         = VsAppShell.Current.GlobalServices.GetService <IRPlotManagerProvider>();
            var activeTextViewTracker = new ActiveTextViewTrackerMock(string.Empty, string.Empty);
            var debuggerModeTracker   = new TestDebuggerModeTracker();

            _interactiveWorkflow = UIThreadHelper.Instance.Invoke(() => new RInteractiveWorkflow(
                                                                      connectionsProvider, historyProvider, packagesProvider, plotsProvider, activeTextViewTracker,
                                                                      debuggerModeTracker, VsAppShell.Current, RToolsSettings.Current));

            _sessionProvider = _interactiveWorkflow.RSessions;
        }
コード例 #42
0
        public WorkingDirectoryCommand(IRInteractiveWorkflow interactiveWorkflow) :
            base(new[] {
                new CommandId(RGuidList.RCmdSetGuid, RPackageCommandId.icmdGetDirectoryList),
                new CommandId(RGuidList.RCmdSetGuid, RPackageCommandId.icmdSetWorkingDirectory)
            }, false) {

            _interactiveWorkflow = interactiveWorkflow;
            _session = interactiveWorkflow.RSession;
            _session.Connected += OnSessionConnected;
            _session.DirectoryChanged += OnCurrentDirectoryChanged;

            if (InitializationTask == null && _session.IsHostRunning) {
                InitializationTask = UpdateRUserDirectoryAsync();
            }
        }
コード例 #43
0
        public FilesCompletionProvider(string directoryCandidate, IRInteractiveWorkflow workflow, IImagesProvider imagesProvider, IGlyphService glyphService, bool forceR = false)
        {
            if (directoryCandidate == null)
            {
                throw new ArgumentNullException(nameof(directoryCandidate));
            }

            _imagesProvider = imagesProvider;
            _workflow       = workflow;
            _glyphService   = glyphService;
            _forceR         = forceR;

            _enteredDirectory = ExtractDirectory(directoryCandidate);
            _task             = GetRootDirectoryAsync(_enteredDirectory);
        }
コード例 #44
0
        private async Task ConnectAsync(CancellationToken ct)
        {
            var provider = _services.GetService <IRInteractiveWorkflowProvider>();

            _workflow = provider.GetOrCreate();
            _ui       = _services.GetService <IUIService>();
            _ui.SetLogLevel(MessageType.Info);

            var e = GetREngine();

            if (e == null)
            {
                return;
            }

            var log  = _services.Log();
            var info = BrokerConnectionInfo.Create(_services.Security(), "VSCR", e.InstallPath, string.Empty, false);

            var start   = DateTime.Now;
            var message = $"Starting R Process with {e.InstallPath}...";

            _ui.LogMessageAsync(message, MessageType.Info).DoNotWait();

            log.Write(LogVerbosity.Normal, MessageCategory.General, $"Switching local broker to {e.InstallPath}");
            if (await _workflow.RSessions.TrySwitchBrokerAsync("VSCR", info, ct))
            {
                try {
                    await _workflow.RSession.StartHostAsync(new RHostStartupInfo(), new RSessionCallback(), Debugger.IsAttached? 100000 : 20000, ct);
                } catch (Exception ex) {
                    _ui.ShowMessageAsync($"Unable to start R process. Exception: {ex.Message}", MessageType.Error).DoNotWait();
                    return;
                }

                // Start package building
                _ui.LogMessageAsync($"complete in {FormatElapsed(DateTime.Now - start)}", MessageType.Info).DoNotWait();
                start = DateTime.Now;
                _ui.LogMessageAsync("Building IntelliSense index...", MessageType.Info).DoNotWait();

                _packageIndex = _services.GetService <IPackageIndex>();
                _packageIndex.BuildIndexAsync(ct).ContinueWith(t => {
                    _ui.LogMessageAsync($"complete in {FormatElapsed(DateTime.Now - start)}", MessageType.Info).DoNotWait();
                }, ct, TaskContinuationOptions.None, TaskScheduler.Default).DoNotWait();
            }
            else
            {
                _ui.ShowMessageAsync("Unable to start R process", MessageType.Error).DoNotWait();
            }
        }
コード例 #45
0
        public CurrentDirectoryTest()
        {
            var sessionProvider       = VsAppShell.Current.ExportProvider.GetExportedValue <IRSessionProvider>();
            var connectionsProvider   = VsAppShell.Current.ExportProvider.GetExportedValue <IConnectionManagerProvider>();
            var historyProvider       = VsAppShell.Current.ExportProvider.GetExportedValue <IRHistoryProvider>();
            var packagesProvider      = VsAppShell.Current.ExportProvider.GetExportedValue <IRPackageManagerProvider>();
            var plotsProvider         = VsAppShell.Current.ExportProvider.GetExportedValue <IRPlotManagerProvider>();
            var activeTextViewTracker = new ActiveTextViewTrackerMock(string.Empty, string.Empty);
            var debuggerModeTracker   = new TestDebuggerModeTracker();
            var brokerConnector       = new RHostBrokerConnector();

            brokerConnector.SwitchToLocalBroker(nameof(CurrentDirectoryTest));
            _interactiveWorkflow = new RInteractiveWorkflow(
                sessionProvider, connectionsProvider, historyProvider, packagesProvider, plotsProvider, activeTextViewTracker,
                debuggerModeTracker, brokerConnector, VsAppShell.Current, RToolsSettings.Current, () => brokerConnector.Dispose());
        }
コード例 #46
0
        public WorkingDirectoryCommand(IRInteractiveWorkflow interactiveWorkflow) :
            base(new[] {
            new CommandId(RGuidList.RCmdSetGuid, RPackageCommandId.icmdGetDirectoryList),
            new CommandId(RGuidList.RCmdSetGuid, RPackageCommandId.icmdSetWorkingDirectory)
        }, false)
        {
            _interactiveWorkflow       = interactiveWorkflow;
            _session                   = interactiveWorkflow.RSession;
            _session.Connected        += OnSessionConnected;
            _session.DirectoryChanged += OnCurrentDirectoryChanged;

            if (InitializationTask == null && _session.IsHostRunning)
            {
                InitializationTask = UpdateRUserDirectoryAsync();
            }
        }
コード例 #47
0
ファイル: SourceRScriptCommand.cs プロジェクト: fpcMotif/RTVS
 public SourceRScriptCommand(IRInteractiveWorkflow interactiveWorkflow, IActiveWpfTextViewTracker activeTextViewTracker)
     : base(RGuidList.RCmdSetGuid, RPackageCommandId.icmdSourceRScript)
 {
     _interactiveWorkflow   = interactiveWorkflow;
     _activeTextViewTracker = activeTextViewTracker;
     _operations            = interactiveWorkflow.Operations;
     _monitorSelection      = VsAppShell.Current.GetGlobalService <IVsMonitorSelection>(typeof(SVsShellMonitorSelection));
     if (_monitorSelection != null)
     {
         var debugUIContextGuid = new Guid(UIContextGuids.Debugging);
         if (ErrorHandler.Failed(_monitorSelection.GetCmdUIContextCookie(ref debugUIContextGuid, out _debugUIContextCookie)))
         {
             _monitorSelection = null;
         }
     }
 }
コード例 #48
0
        public CurrentDirectoryTest(BrokerFixture broker)
        {
            _broker          = broker;
            _sessionProvider = VsAppShell.Current.ExportProvider.GetExportedValue <IRSessionProvider>();

            var connectionsProvider   = VsAppShell.Current.ExportProvider.GetExportedValue <IConnectionManagerProvider>();
            var historyProvider       = VsAppShell.Current.ExportProvider.GetExportedValue <IRHistoryProvider>();
            var packagesProvider      = VsAppShell.Current.ExportProvider.GetExportedValue <IRPackageManagerProvider>();
            var plotsProvider         = VsAppShell.Current.ExportProvider.GetExportedValue <IRPlotManagerProvider>();
            var activeTextViewTracker = new ActiveTextViewTrackerMock(string.Empty, string.Empty);
            var debuggerModeTracker   = new TestDebuggerModeTracker();

            _interactiveWorkflow = new RInteractiveWorkflow(
                _sessionProvider, connectionsProvider, historyProvider, packagesProvider, plotsProvider, activeTextViewTracker,
                debuggerModeTracker, _broker.BrokerConnector, VsAppShell.Current, RToolsSettings.Current, null, () => { });
        }
コード例 #49
0
 public HistoryNavigationCommand(ITextView textView, IRInteractiveWorkflow interactiveWorkflow, ICompletionBroker completionBroker, IEditorOperationsFactoryService editorFactory) :
     base(textView, new[] {
     new CommandId(VSConstants.VSStd2K, (int)VSConstants.VSStd2KCmdID.UP),
     new CommandId(VSConstants.VSStd2K, (int)VSConstants.VSStd2KCmdID.DOWN),
     new CommandId(VSConstants.VSStd2K, (int)VSConstants.VSStd2KCmdID.LEFT),
     new CommandId(VSConstants.VSStd2K, (int)VSConstants.VSStd2KCmdID.RIGHT),
     new CommandId(VSConstants.VSStd2K, (int)VSConstants.VSStd2KCmdID.UP_EXT),
     new CommandId(VSConstants.VSStd2K, (int)VSConstants.VSStd2KCmdID.DOWN_EXT),
     new CommandId(VSConstants.VSStd2K, (int)VSConstants.VSStd2KCmdID.LEFT_EXT),
     new CommandId(VSConstants.VSStd2K, (int)VSConstants.VSStd2KCmdID.RIGHT_EXT)
 }, false)
 {
     _completionBroker    = completionBroker;
     _editorFactory       = editorFactory;
     _interactiveWorkflow = interactiveWorkflow;
     _history             = interactiveWorkflow.History;
 }
コード例 #50
0
ファイル: RPlotIntegrationUITest.cs プロジェクト: jflam/RTVS
 public RPlotIntegrationUITest(RComponentsMefCatalogFixture catalog, ContainerHostMethodFixture containerHost, TestMethodFixture testMethod, TestFilesFixture testFiles)
 {
     _containerHost               = containerHost;
     _exportProvider              = catalog.CreateExportProvider();
     _workflowProvider            = _exportProvider.GetExportedValue <TestRInteractiveWorkflowProvider>();
     _workflowProvider.BrokerName = nameof(RPlotIntegrationTest);
     _plotDeviceVisualComponentContainerFactory = _exportProvider.GetExportedValue <TestRPlotDeviceVisualComponentContainerFactory>();
     // Don't override the standard behavior of using the control size
     _plotDeviceVisualComponentContainerFactory.DeviceProperties = null;
     _plotHistoryVisualComponentContainerFactory = _exportProvider.GetExportedValue <IRPlotHistoryVisualComponentContainerFactory>();
     _workflow = _exportProvider.GetExportedValue <IRInteractiveWorkflowProvider>().GetOrCreate();
     _componentContainerFactory = _exportProvider.GetExportedValue <IInteractiveWindowComponentContainerFactory>();
     _testMethod          = testMethod.MethodInfo;
     _testFiles           = testFiles;
     _plotVisualComponent = UIThreadHelper.Instance.Invoke(() => _workflow.Plots.GetOrCreateVisualComponent(_plotDeviceVisualComponentContainerFactory, PlotWindowInstanceId));
     UIThreadHelper.Instance.Invoke(() => _workflow.Plots.RegisterVisualComponent(_plotVisualComponent));
 }
コード例 #51
0
ファイル: PackageIndex.cs プロジェクト: jingmouren/RTVS
        public PackageIndex(
            IRInteractiveWorkflowProvider interactiveWorkflowProvider, ICoreShell shell, IIntellisenseRSession host, IFunctionIndex functionIndex)
        {
            _shell         = shell;
            _host          = host;
            _functionIndex = functionIndex;

            _workflow = interactiveWorkflowProvider.GetOrCreate();

            _interactiveSession                  = _workflow.RSession;
            _interactiveSession.Connected       += OnSessionConnected;
            _interactiveSession.PackagesRemoved += OnPackagesRemoved;

            _workflow.RSessions.BrokerStateChanged += OnBrokerStateChanged;

            if (_workflow.RSession.IsHostRunning)
            {
                BuildIndexAsync().DoNotWait();
            }
        }
コード例 #52
0
        private bool _forceR; // for tests

        public FilesCompletionProvider(string directoryCandidate, IRInteractiveWorkflow workflow, IImagesProvider imagesProvider, IGlyphService glyphService, bool forceR = false)
        {
            if (directoryCandidate == null)
            {
                throw new ArgumentNullException(nameof(directoryCandidate));
            }

            _imagesProvider = imagesProvider;
            _workflow       = workflow;
            _glyphService   = glyphService;
            _forceR         = forceR;

            _directory = ExtractDirectory(directoryCandidate);

            if (_directory.Length == 0 || _directory.StartsWithOrdinal("~\\"))
            {
                _directory = _directory.Length > 1 ? _directory.Substring(2) : _directory;
                _userDirectoryFetchingTask = _workflow.RSession.GetRUserDirectoryAsync();
            }
        }
コード例 #53
0
        public RPackageManager(IRSettings settings, IRInteractiveWorkflow interactiveWorkflow, Action dispose)
        {
            _session                = interactiveWorkflow.RSessions.GetOrCreate(SessionNames.PackageManager);
            _settings               = settings;
            _interactiveWorkflow    = interactiveWorkflow;
            _loadedPackagesEvent    = new DirtyEventSource(this);
            _installedPackagesEvent = new DirtyEventSource(this);
            _availablePackagesEvent = new DirtyEventSource(this);

            _disposableBag = DisposableBag.Create <RPackageManager>(dispose)
                             .Add(() => _interactiveWorkflow.RSessions.BrokerChanged    -= BrokerChanged)
                             .Add(() => _interactiveWorkflow.RSession.Mutated           -= RSessionMutated)
                             .Add(() => _interactiveWorkflow.RSession.PackagesInstalled -= PackagesInstalled)
                             .Add(() => _interactiveWorkflow.RSession.PackagesRemoved   -= PackagesRemoved);

            _interactiveWorkflow.RSessions.BrokerChanged    += BrokerChanged;
            _interactiveWorkflow.RSession.Mutated           += RSessionMutated;
            _interactiveWorkflow.RSession.PackagesInstalled += PackagesInstalled;
            _interactiveWorkflow.RSession.PackagesRemoved   += PackagesRemoved;
        }
コード例 #54
0
        public RPlotHistoryCommands(IRInteractiveWorkflow interactiveWorkflow, IRPlotHistoryVisualComponent visualComponent)
        {
            if (interactiveWorkflow == null)
            {
                throw new ArgumentNullException(nameof(interactiveWorkflow));
            }

            if (visualComponent == null)
            {
                throw new ArgumentNullException(nameof(visualComponent));
            }

            ZoomIn       = new PlotHistoryZoomInCommand(interactiveWorkflow, visualComponent);
            ZoomOut      = new PlotHistoryZoomOutCommand(interactiveWorkflow, visualComponent);
            AutoHide     = new PlotHistoryAutoHideCommand(interactiveWorkflow, visualComponent);
            Cut          = new PlotHistoryCutCopyCommand(interactiveWorkflow, visualComponent, cut: true);
            Copy         = new PlotHistoryCutCopyCommand(interactiveWorkflow, visualComponent, cut: false);
            Remove       = new PlotHistoryRemoveCommand(interactiveWorkflow, visualComponent);
            ActivatePlot = new PlotHistoryActivateCommand(interactiveWorkflow, visualComponent);
        }
コード例 #55
0
        public async Task <string> ExecuteCodeAsync(string code, CancellationToken ct)
        {
            await TaskUtilities.SwitchToBackgroundThread();

            var result = string.Empty;

            _workflow = _workflow ?? _services.GetService <IRInteractiveWorkflowProvider>().GetOrCreate();

            try {
                ct.ThrowIfCancellationRequested();
                var session = await StartSessionAsync(ct);

                session.Output += OnSessionOutput;
                await ExecuteAndCaptureOutputAsync(session, code, ct);

                if (_sessionCallback.PlotResult != null)
                {
                    result = "$$IMAGE " + Convert.ToBase64String(_sessionCallback.PlotResult);
                    _sessionCallback.PlotResult = null;
                }
                else if (_output != null && _output.Length > 0)
                {
                    result = _output.ToString();
                }
                else if (_errors != null && _errors.Length > 0)
                {
                    result = "$$ERROR " + _errors;
                }
            } catch (Exception ex) when(!ex.IsCriticalException())
            {
                _output = _errors = null;
                result  = ex.Message;
            } finally {
                if (_session != null)
                {
                    _session.Output -= OnSessionOutput;
                }
            }

            return(result);
        }
コード例 #56
0
ファイル: PackageIndex.cs プロジェクト: skrutsick/RTVS
        public PackageIndex(IServiceContainer services, IIntellisenseRSession host, IFunctionIndex functionIndex)
        {
            _host          = host;
            _functionIndex = functionIndex;
            _idleTime      = services.GetService <IIdleTimeService>();

            var interactiveWorkflowProvider = services.GetService <IRInteractiveWorkflowProvider>();

            _workflow = interactiveWorkflowProvider.GetOrCreate();

            _interactiveSession                    = _workflow.RSession;
            _interactiveSession.Connected         += OnSessionConnected;
            _interactiveSession.PackagesInstalled += OnPackagesChanged;
            _interactiveSession.PackagesRemoved   += OnPackagesChanged;

            _workflow.RSessions.BrokerStateChanged += OnBrokerStateChanged;

            if (_workflow.RSession.IsHostRunning)
            {
                BuildIndexAsync().DoNotWait();
            }
        }
コード例 #57
0
ファイル: RHistory.cs プロジェクト: fpcMotif/RTVS
        public RHistory(IRInteractiveWorkflow interactiveWorkflow, ITextBuffer textBuffer, IFileSystem fileSystem, IRSettings settings, IEditorOperationsFactoryService editorOperationsFactory, IRtfBuilderService rtfBuilderService, Action dispose)
        {
            _interactiveWorkflow     = interactiveWorkflow;
            _historyTextBuffer       = textBuffer;
            _fileSystem              = fileSystem;
            _editorOperationsFactory = editorOperationsFactory;
            _rtfBuilderService       = rtfBuilderService;
            _dispose = dispose;

            _textBufferIsEditable = new CountdownDisposable(MakeTextBufferReadOnly);
            _isMultiline          = settings.MultilineHistorySelection;

            if (_isMultiline)
            {
                _entries = new MultilineRHistoryEntries();
            }
            else
            {
                _entries = new SinglelineRHistoryEntries();
            }

            MakeTextBufferReadOnly();
        }
コード例 #58
0
        public ConnectionManager(IStatusBar statusBar, IRSettings settings, IRInteractiveWorkflow interactiveWorkflow)
        {
            _statusBar       = statusBar;
            _sessionProvider = interactiveWorkflow.RSessions;
            _settings        = settings;
            _shell           = interactiveWorkflow.Shell;

            _statusBarViewModel = new ConnectionStatusBarViewModel(this, interactiveWorkflow.Shell);

            _disposableBag = DisposableBag.Create <ConnectionManager>()
                             .Add(_statusBarViewModel)
                             .Add(() => _sessionProvider.BrokerStateChanged -= BrokerStateChanged);

            _sessionProvider.BrokerStateChanged += BrokerStateChanged;

            // Get initial values
            var userConnections = CreateConnectionList();

            _userConnections = new ConcurrentDictionary <Uri, IConnection>(userConnections);

            UpdateRecentConnections(save: false);
            CompleteInitializationAsync().DoNotWait();
        }
コード例 #59
0
 protected AttachDebuggerCommand(IRInteractiveWorkflow interactiveWorkflow, int cmdId, DebuggerCommandVisibility visibility)
     : base(interactiveWorkflow, cmdId, visibility)
 {
     _interactiveWorkflow = interactiveWorkflow;
 }
コード例 #60
0
 public AttachDebuggerCommand(IRInteractiveWorkflow interactiveWorkflow)
     : base(interactiveWorkflow, RPackageCommandId.icmdAttachDebugger, DebuggerCommandVisibility.DesignMode)
 {
     _interactiveWorkflow = interactiveWorkflow;
 }