Exemple #1
0
        protected override void Initialize()
        {
            Current = this;

            VsAppShell.EnsureInitialized();
            if (IsCommandLineMode())
            {
                return;
            }

            VsWpfOverrides.Apply();
            CranMirrorList.Download();

            using (var p = Current.GetDialogPage(typeof(RToolsOptionsPage)) as RToolsOptionsPage) {
                p?.LoadSettings();
            }

            RtvsTelemetry.Initialize(_packageIndex, VsAppShell.Current.ExportProvider.GetExportedValue <IRSettings>());
            base.Initialize();

            ProjectIconProvider.LoadProjectImages();
            LogCleanup.DeleteLogsAsync(DiagnosticLogs.DaysToRetain);

            BuildFunctionIndex();
            AdviseExportedWindowFrameEvents <ActiveWpfTextViewTracker>();
            AdviseExportedWindowFrameEvents <VsActiveRInteractiveWindowTracker>();
            AdviseExportedDebuggerEvents <VsDebuggerModeTracker>();

            IdleTimeAction.Create(ExpansionsCache.Load, 200, typeof(ExpansionsCache), VsAppShell.Current);
            IdleTimeAction.Create(() => RtvsTelemetry.Current.ReportConfiguration(), 5000, typeof(RtvsTelemetry), VsAppShell.Current);
        }
Exemple #2
0
        protected override void Initialize()
        {
            Current = this;

            VsAppShell.EnsureInitialized();
            if (IsCommandLineMode())
            {
                return;
            }

            VsWpfOverrides.Apply();
            CranMirrorList.Download();

            base.Initialize();

            ProjectIconProvider.LoadProjectImages(VsAppShell.Current.Services);
            LogCleanup.DeleteLogsAsync(DiagnosticLogs.DaysToRetain);

            var settings       = VsAppShell.Current.GetService <IRToolsSettings>();
            var editorSettings = VsAppShell.Current.GetService <IREditorSettings>();

            RtvsTelemetry.Initialize(_packageIndex, settings, editorSettings);

            BuildFunctionIndex();
            AdviseExportedWindowFrameEvents <ActiveWpfTextViewTracker>();
            AdviseExportedWindowFrameEvents <VsActiveRInteractiveWindowTracker>();
            AdviseExportedDebuggerEvents <VsDebuggerModeTracker>();

            System.Threading.Tasks.Task.Run(() => RtvsTelemetry.Current.ReportConfiguration());
            IdleTimeAction.Create(ExpansionsCache.Load, 200, typeof(ExpansionsCache), VsAppShell.Current);
        }
Exemple #3
0
        protected override void Initialize()
        {
            Current = this;

            VsAppShell.EnsureInitialized();
            if (IsCommandLineMode())
            {
                return;
            }

            CranMirrorList.Download();
            base.Initialize();

            _fs = Services.FileSystem();

            ProjectIconProvider.LoadProjectImages(Services);
            LogCleanup.DeleteLogsAsync(DiagnosticLogs.DaysToRetain);

            LoadEditorSettings();
            BuildFunctionIndex();
            AddConnectionStatusBar();
            RtvsTelemetry.Initialize(_packageIndex, Services);

            AdviseExportedWindowFrameEvents <ActiveWpfTextViewTracker>();
            AdviseExportedWindowFrameEvents <VsActiveRInteractiveWindowTracker>();
            AdviseExportedDebuggerEvents <VsDebuggerModeTracker>();

            System.Threading.Tasks.Task.Run(() => RtvsTelemetry.Current.ReportConfiguration());
            ExpansionsCache.Load(Services);
        }
Exemple #4
0
        protected override void OnTextBufferCreated(ITextView textView, ITextBuffer textBuffer)
        {
            var clh = ContainedLanguageHost.GetHost(textView, textBuffer, Services);

            VsAppShell.EnsurePackageLoaded(RGuidList.RPackageGuid);
            OleControllerChain.InitEditorInstance(textBuffer, Services);
            base.OnTextBufferCreated(textView, textBuffer);
        }
Exemple #5
0
        protected override void Initialize()
        {
            _package = this;

            VsAppShell.EnsureInitialized();
            LoadEditorSettings();

            base.Initialize();
        }
Exemple #6
0
        public static VsServiceManager Setup(VsAppShell instance)
        {
            var serviceManager = new VsServiceManager(instance);

            var catalog = VsTestCompositionCatalog.Current;

            var batch = new CompositionBatch().AddValue <ICoreShell>(instance);

            VsTestCompositionCatalog.Current.Container.Compose(batch);

            serviceManager.CompositionService = catalog.CompositionService;
            serviceManager.ExportProvider     = catalog.ExportProvider;
            serviceManager
            // ICoreShell
            .AddService(instance)
            // MEF
            .AddService(catalog)
            .AddService(catalog.CompositionService)
            .AddService(catalog.ExportProvider)
            // IMainThread and basic services
            .AddService(UIThreadHelper.Instance.MainThread)
            .AddService(Substitute.For <IActionLog>())
            .AddService(Substitute.For <IIdleTimeService>())
            .AddService(new VsApplicationMock())
            .AddService(new SecurityServiceStub())
            .AddService(new MaxLoggingPermissions())
            .AddService(new WindowsFileSystem())
            .AddService <IOutputService, TestOutputService>()
            .AddService(new RegistryImpl())
            .AddService(new ProcessServices())
            .AddService(new TestUIServices(UIThreadHelper.Instance.ProgressDialog))
            .AddService(UIThreadHelper.Instance.TaskService)
            .AddService(new TestPlatformServices())
            .AddService(new RSettingsStub())
            .AddService(new REditorSettings(new TestSettingsStorage()))
            .AddService(new TestImageService())
            .AddService(new VsEditorSupport(serviceManager))
            .AddRComponentsServices()
            .AddWindowsRInterpretersServices()
            .AddWindowsHostClientServices()
            .AddWindowsRComponentsServices()
            // OLE and VS specifics
            .AddService(new TestStatusBar())
            .AddService(new VsRegisterProjectGeneratorsMock(), typeof(SVsRegisterProjectTypes))
            .AddService(VsRegisterEditorsMock.Create(), typeof(SVsRegisterEditors))
            .AddService(new MenuCommandServiceMock(), typeof(IMenuCommandService))
            .AddService(new ComponentModelMock(VsTestCompositionCatalog.Current), typeof(SComponentModel))
            .AddService(new TextManagerMock(), typeof(SVsTextManager))
            .AddService(VsImageServiceMock.Create(), typeof(SVsImageService))
            .AddService(new VsUiShellMock(), typeof(SVsUIShell))
            .AddService(OleComponentManagerMock.Create(), typeof(SOleComponentManager))
            .AddService(VsSettingsManagerMock.Create(), typeof(SVsSettingsManager))
            .AddService(new UIHostLocaleMock(), typeof(SUIHostLocale));

            return(serviceManager);
        }
Exemple #7
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.GetOrCreateVisualComponent(_componentContainerFactory);

                window.Container.Show(true);
            }

            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 = _fileSystem.FileExists(rdataPath) && await GetLoadDefaultWorkspace(rdataPath);

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

                    await evaluation.SetWorkingDirectoryAsync(_projectDirectory);
                }

                _toolsSettings.WorkingDirectory = _projectDirectory;
            }

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

            CheckSurveyNews();
        }
Exemple #8
0
        protected override void Dispose(bool disposing)
        {
            SavePackageIndex();

            LogCleanup.Cancel();
            ProjectIconProvider.Close();
            CsvAppFileIO.Close(VsAppShell.Current.FileSystem());

            RtvsTelemetry.Current?.Dispose();
            VsAppShell.Terminate();

            base.Dispose(disposing);
        }
Exemple #9
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();
        }
        public static void Setup(VsAppShell instance)
        {
            var serviceManager = instance.Services as VsServiceManager;

            Debug.Assert(!serviceManager.AllServices.Any(), "Test VsAppShell service container must be empty at init time");

            var catalog = VsTestCompositionCatalog.Current;

            var batch = new CompositionBatch().AddValue <ICoreShell>(instance);

            VsTestCompositionCatalog.Current.Container.Compose(batch);

            serviceManager.CompositionService = catalog.CompositionService;
            serviceManager.ExportProvider     = catalog.ExportProvider;
            serviceManager
            // ICoreShell
            .AddService(instance)
            // MEF
            .AddService(catalog)
            .AddService(catalog.CompositionService)
            .AddService(catalog.ExportProvider)
            // IMainThread and basic services
            .AddService(UIThreadHelper.Instance)
            .AddService(Substitute.For <IActionLog>())
            .AddService(new SecurityServiceStub())
            .AddService(new MaxLoggingPermissions())
            .AddService(new WindowsFileSystem())
            .AddService(new RegistryImpl())
            .AddService(new ProcessServices())
            .AddService(new TestUIServices())
            .AddService(new TestTaskService())
            .AddService(new TestPlatformServices())
            .AddService(new TestRToolsSettings())
            .AddService(new REditorSettings(new TestSettingsStorage()))
            .AddService(new TestImageService())
            .AddWindowsRInterpretersServices()
            .AddWindowsHostClientServices()
            // OLE and VS specifics
            .AddService(new VsRegisterProjectGeneratorsMock(), typeof(SVsRegisterProjectTypes))
            .AddService(VsRegisterEditorsMock.Create(), typeof(SVsRegisterEditors))
            .AddService(new MenuCommandServiceMock(), typeof(IMenuCommandService))
            .AddService(new ComponentModelMock(VsTestCompositionCatalog.Current), typeof(SComponentModel))
            .AddService(new TextManagerMock(), typeof(SVsTextManager))
            .AddService(VsImageServiceMock.Create(), typeof(SVsImageService))
            .AddService(new VsUiShellMock(), typeof(SVsUIShell))
            .AddService(OleComponentManagerMock.Create(), typeof(SOleComponentManager))
            .AddService(VsSettingsManagerMock.Create(), typeof(SVsSettingsManager));
        }
Exemple #11
0
 protected override void OnTextBufferCreated(ITextView textView, ITextBuffer textBuffer)
 {
     VsAppShell.EnsurePackageLoaded(MdGuidList.MdPackageGuid);
     OleControllerChain.InitEditorInstance(textBuffer, Services);
     base.OnTextBufferCreated(textView, textBuffer);
 }
Exemple #12
0
 protected override void Initialize()
 {
     VsAppShell.EnsureInitialized();
     base.Initialize();
 }