示例#1
0
        public void Execute(Action <DaemonStageResult> commiter)
        {
            PsiManager  manager = PsiManager.GetInstance(myDaemonProcess.Solution);
            ICSharpFile file    = manager.GetPsiFile(myDaemonProcess.SourceFile, CSharpLanguage.Instance) as ICSharpFile;

            if (file == null)
            {
                return;
            }

            // Running visitor against the PSI
            var elementProcessor = new MakeEnumComparisonTypeSafeFinderElementProcessor(myDaemonProcess);

            file.ProcessDescendants(elementProcessor);

            // Checking if the daemon is interrupted by user activity
            if (myDaemonProcess.InterruptFlag)
            {
                throw new ProcessCancelledException();
            }

            // Fill in the result
            DaemonStageResult result = new DaemonStageResult(elementProcessor.Highlightings);

            commiter(result);
        }
        public void Execute(Action <DaemonStageResult> committer)
        {
            var consumer = new FilteringHighlightingConsumer(DaemonProcess.SourceFile, _file, DaemonProcess.ContextBoundSettingsStore);

            _file.ProcessDescendants(_elementProcessor, consumer);
            committer(new DaemonStageResult(consumer.Highlightings));
        }
 public static IList<DisposeMethodStatus> Build(ICSharpFile file)
 {
     var ret = new DisposeCacheBuilder();
     file.ProcessDescendants(ret);
     return ret.GetStatuses();
 }