public void NotifyAnalysisComplete(IDocumentAnalysis analysis) { lock (_syncObj) { if (analysis.Version < Analysis.Version) { return; } Analysis = analysis; GlobalScope = analysis.GlobalScope; // Derived classes can override OnAnalysisComplete if they want // to perform additional actions on the completed analysis such // as declare additional variables, etc. OnAnalysisComplete(); ContentState = State.Analyzed; if (ModuleType != ModuleType.User) { _buffer.Clear(); } } // Do not report issues with libraries or stubs if (ModuleType == ModuleType.User) { _diagnosticsService?.Replace(Uri, analysis.Diagnostics, DiagnosticSource.Analysis); } NewAnalysis?.Invoke(this, EventArgs.Empty); }