CPP-50655 CLion MCP: clang-tidy diags are not reported

extract `awaitBackendMarkupFlushed`

Can be flaky due to IJPL-246574 MCP tests are flaky
Fix disposable from `project` to `testScopeDisposable`
Renames and minor fixes

Co-authored-by: Zakhar Kaval <Zakhar.Koval@jetbrains.com>

(cherry picked from commit de267f3fa4709afb7c857cf2aaf03c42b25c1ebb)


Merge-request: IJ-MR-213674
Merged-by: Alexey Utkin <alexey.utkin@gmail.com>

GitOrigin-RevId: 75d5cfe8e8476ad9283dcab6d48873b46f2f1c50
This commit is contained in:
Alexey Utkin
2026-07-16 22:06:41 +00:00
committed by intellij-monorepo-bot
co-authored by Zakhar Kaval
parent ddb1bb7745
commit 45da5350d8
2 changed files with 23 additions and 0 deletions
@@ -31,6 +31,9 @@ import org.jetbrains.annotations.Nullable;
import java.util.List;
import java.util.concurrent.CancellationException;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.TimeoutException;
import java.util.function.Consumer;
public abstract class DaemonCodeAnalyzerEx extends DaemonCodeAnalyzer {
@@ -206,4 +209,15 @@ public abstract class DaemonCodeAnalyzerEx extends DaemonCodeAnalyzer {
@NotNull ProperTextRange visibleRange,
boolean canChangeFileSilently,
@NotNull Consumer<? super @NotNull HighlightingSession> runnable);
/**
* Blocks until all pending external annotators (e.g. ClangTidyAnnotator) have written their
* results to the {@link com.intellij.openapi.editor.impl.DocumentMarkupModel}.
* No-op by default; overridden in {@code DaemonCodeAnalyzerImpl}.
*/
@ApiStatus.Internal
@RequiresBackgroundThread
public void waitForExternalAnnotators(long timeout, @NotNull TimeUnit unit)
throws ExecutionException, InterruptedException, TimeoutException {
}
}
@@ -125,7 +125,9 @@ import java.util.concurrent.CompletableFuture;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ForkJoinPool;
import java.util.concurrent.Future;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.TimeoutException;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.concurrent.atomic.AtomicLong;
import java.util.function.Consumer;
@@ -1727,4 +1729,11 @@ public final class DaemonCodeAnalyzerImpl extends DaemonCodeAnalyzerEx
@NotNull Consumer<? super @NotNull HighlightingSession> runnable) {
HighlightingSessionImpl.runInsideAdditionalHighlightingSession(psiFile, editorColorsScheme, visibleRange, canChangeFileSilently, runnable);
}
@Override
@RequiresBackgroundThread
public void waitForExternalAnnotators(long timeout, @NotNull TimeUnit unit)
throws ExecutionException, InterruptedException, TimeoutException {
ExternalAnnotatorManager.getInstance().waitForAllExecuted(timeout, unit);
}
}