public static AnalysisEntry Initialize(IServiceProvider serviceProvider, ITextBuffer textBuffer)
        {
            AnalysisEntry analysisEntry;
            IVsSolution   sln  = serviceProvider.GetService(typeof(SVsSolution)) as IVsSolution;
            IVsProject    proj = sln.GetLoadedProject();

            // if not a NPL project
            if (proj == null)
            {
                analysisEntry = textBuffer.GetAnalysisAtCaretSingletonMode();
                // if not register yet, register it
                if (analysisEntry == null)
                {
                    analysisEntry = new AnalysisEntry(textBuffer.GetFilePath());
                    analysisEntry.RegisterSingletonMode(textBuffer);
                }
            }
            else
            {
                var project = sln.GetLoadedProject().GetNPLProject();
                if (!project.Analyzer.HasMonitoredTextBuffer(textBuffer))
                {
                    project.Analyzer.MonitorTextBuffer(textBuffer);
                }

                analysisEntry = textBuffer.GetAnalysisAtCaretProjectMode(serviceProvider);
            }
            return(analysisEntry);
        }
Exemplo n.º 2
0
 internal bool HasMonitoredTextBuffer(ITextBuffer textBuffer)
 {
     return(textBuffer.GetAnalysisAtCaretProjectMode(_serviceProvider) != null);
 }