public async Task UpdateEditorConfig()
        {
            if (string.IsNullOrEmpty(_config.DownloadUrl) ||
                string.IsNullOrEmpty(_config.ProjectsRoot))
            {
                await _logger.Error("Invalid config")
                .ConfigureAwait(false);

                return;
            }

            try
            {
                var       editorConfig = Path.Combine(_config.ProjectsRoot, EditorConfigFileName);
                WebClient webClient    = new WebClient();
                await webClient.DownloadFileTaskAsync(_config.DownloadUrl, editorConfig)
                .ConfigureAwait(false);
            }
            catch (Exception ex)
            {
                await _logger.Exception(ex)
                .ConfigureAwait(false);

                throw;
            }
        }
        private async Task SetupSolutionEventsSink()
        {
            var solution = _accessor.GetService(typeof(SVsSolution)) as IVsSolution;

            if (solution == null)
            {
                await _logger.Error("Can't subscribe to solution events")
                .ConfigureAwait(false);

                return;
            }

            await _joinableTaskFactory.SwitchToMainThreadAsync();

            solution.AdviseSolutionEvents(_eventsSink, out _);
        }