public Server()
        {
            AnalysisQueue = new AnalysisQueue();
            AnalysisQueue.UnhandledException += Analysis_UnhandledException;

            ParseQueue   = new ParseQueue();
            _editorFiles = new EditorFiles(this);

            _disposableBag
            .Add(() => {
                foreach (var ext in _extensions.Values)
                {
                    ext?.Dispose();
                }
                foreach (var ext in _oldExtensions.Values)
                {
                    (ext as IDisposable)?.Dispose();
                }
            })
            .Add(ProjectFiles)
            .Add(() => Analyzer?.Dispose())
            .Add(AnalysisQueue)
            .Add(_editorFiles)
            .Add(() => _shutdownCts.Cancel());
        }
        public Server(IServiceContainer services = null) : base(services)
        {
            AnalysisQueue = new AnalysisQueue();
            AnalysisQueue.UnhandledException += Analysis_UnhandledException;

            ParseQueue   = new ParseQueue();
            _editorFiles = new EditorFiles(this);

            _disposableBag
            .Add(() => {
                foreach (var ext in _extensions.Values)
                {
                    ext.Dispose();
                }
            })
            .Add(ProjectFiles)
            .Add(() => Analyzer?.Dispose())
            .Add(AnalysisQueue)
            .Add(_editorFiles)
            .Add(() => _shutdownCts.Cancel());
        }