Example #1
0
        public GeneralOptionsDialogControl(ISonarLintSettings settings, ISonarLintDaemon daemon, IDaemonInstaller installer, ICommand openSettingsFileCommand, ILogger logger)
        {
            if (settings == null)
            {
                throw new ArgumentNullException(nameof(settings));
            }
            if (daemon == null)
            {
                throw new ArgumentNullException(nameof(daemon));
            }
            if (installer == null)
            {
                throw new ArgumentNullException(nameof(installer));
            }
            if (logger == null)
            {
                throw new ArgumentNullException(nameof(logger));
            }
            if (openSettingsFileCommand == null)
            {
                throw new ArgumentNullException(nameof(openSettingsFileCommand));
            }

            this.settings  = settings;
            this.daemon    = daemon;
            this.installer = installer;
            this.logger    = logger;

            InitializeComponent();

            this.OpenSettingsButton.Command = openSettingsFileCommand;
        }
        public SonarLintDaemon(ISonarLintSettings settings, IDaemonInstaller daemonInstaller, ILogger logger)
        {
            this.settings  = settings;
            this.logger    = logger;
            this.installer = daemonInstaller;

            this.WorkingDirectory = CreateTempDirectory();
        }
Example #3
0
 public DelayedRequest(DaemonAnalyzer daemonAnalyzer, string path, string charset, IEnumerable <AnalysisLanguage> detectedLanguages,
                       IIssueConsumer consumer)
 {
     this.daemonAnalyzer    = daemonAnalyzer;
     this.daemon            = daemonAnalyzer.daemon;
     this.daemonInstaller   = daemonAnalyzer.installer;
     this.path              = path;
     this.charset           = charset;
     this.detectedLanguages = detectedLanguages;
     this.consumer          = consumer;
 }
        public StatusBarDownloadProgressHandler(IVsStatusbar statusBar, IDaemonInstaller installer, ILogger logger)
        {
            if (statusBar == null)
            {
                return; // no point in doing anything if we don't have a status bar
            }

            this.statusBar = statusBar;
            this.installer = installer;
            this.logger    = logger;

            this.installer.InstallationProgressChanged += HandleDownloadProgressChanged;
            this.installer.InstallationCompleted       += HandleInstallationCompleted;
        }
        private async System.Threading.Tasks.Task InitAsync()
        {
            try
            {
                logger = await this.GetMefServiceAsync <ILogger>();

                logger.WriteLine(Resources.Strings.Daemon_Initializing);

                await DisableRuleCommand.InitializeAsync(this, logger);

                await CFamilyReproducerCommand.InitializeAsync(this, logger);

                cFamilyPreCompiledHeadersEventListener = await this.GetMefServiceAsync <IPreCompiledHeadersEventListener>();

                daemon = await this.GetMefServiceAsync <ISonarLintDaemon>();

                LegacyInstallationCleanup.CleanupDaemonFiles(logger);

                // Set up the solution tracker so we can shut down the daemon when a solution is closed
                var solutionTracker = await this.GetMefServiceAsync <IActiveSolutionTracker>();

                solutionTracker.ActiveSolutionChanged += HandleActiveSolutionChanged;

                IDaemonInstaller installer = await this.GetMefServiceAsync <IDaemonInstaller>();

                if (!installer.IsInstalled())
                {
                    // Set up the status bar download handler in case the user enables
                    // support for additional languages during the VS session
                    var sbService = await this.GetServiceAsync(typeof(IVsStatusbar)) as IVsStatusbar;

                    statusBarDownloadProgressHandler = new StatusBarDownloadProgressHandler(sbService, installer, logger);

                    var settings = await this.GetMefServiceAsync <ISonarLintSettings>();

                    if (settings.IsActivateMoreEnabled)
                    {
                        // User already agreed to have the daemon installed so directly start download.
                        // No UI interation so we don't need to be on the UI thread.
                        installer.Install();
                    }
                }
            }
            catch (Exception ex) when(!ErrorHandler.IsCriticalException(ex))
            {
                logger?.WriteLine(Resources.Strings.ERROR_InitializingDaemon, ex);
            }
            logger?.WriteLine(Resources.Strings.Daemon_InitializationComplete);
        }
Example #6
0
 public TestableSonarLintDaemon(ISonarLintSettings settings, ILogger logger, IDaemonInstaller installer)
     : base(settings, installer, logger)
 {
     this.Ready += (s, a) => WasReadyEventInvoked = true;
 }
 public DaemonAnalyzer(ISonarLintDaemon daemon, IDaemonInstaller daemonInstaller, ITelemetryManager telemetryManager)
 {
     this.daemon           = daemon;
     this.installer        = daemonInstaller;
     this.telemetryManager = telemetryManager;
 }
        private static void ConfigureSiteMock(GeneralOptionsDialogPage testSubject, ISonarLintSettings settings, ISonarLintDaemon daemon, IDaemonInstaller installer)
        {
            var mefHostMock = new Mock <IComponentModel>();

            mefHostMock.Setup(m => m.GetExtensions <ISonarLintDaemon>()).Returns(() => new[] { daemon });
            mefHostMock.Setup(m => m.GetExtensions <IDaemonInstaller>()).Returns(() => new[] { installer });
            mefHostMock.Setup(m => m.GetExtensions <ISonarLintSettings>()).Returns(() => new[] { settings });
            mefHostMock.Setup(m => m.GetExtensions <ILogger>()).Returns(() => new[] { new TestLogger() });
            mefHostMock.Setup(m => m.GetExtensions <IUserSettingsProvider>()).Returns(() => new[] { new Mock <IUserSettingsProvider>().Object });

            var siteMock = new Mock <ISite>();

            siteMock.As <IServiceProvider>().Setup(m => m.GetService(It.Is <Type>(t => t == typeof(SComponentModel)))).Returns(mefHostMock.Object);

            testSubject.Site = siteMock.Object;
        }