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(); }