示例#1
0
        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);
        }