Emit highlighting only in visible documents

I've created some custom highlightings (just like the highlightings in HeapView):

I've implemented it the same way as Controlflow in HeapView, using a custom "Highlighter"/ClassificationFormatDefinition and a ElementProblemAnalyzer. The only difference is that I'm using a StaticSeverityHighlighting instead of a configurable one because this makes no sense for my highlighting (it will be configured in another way).

My question is: I only need to calculate the highlightings in visible documents. The background analysis for the whole solution (with enabled SWEA), performed by ElementProblemAnalyzer is completely unnecessary. How can I achieve this?

 

 

 

1 comment
Comment actions Permalink

I now exit my `ElementProblemAnalyzer.Run`, based on the `ProcessKind` (see snippet below). Is this the right/most efficient way to achieve this? I've also managed to create an own `DaemonStage` with `GlobalAnalysisStage=false`. Which kind of produced the same result with more code. Which option should it use?

protected override void Run(IDeclaration declaration, ElementProblemAnalyzerData data, IHighlightingConsumer consumer)
{
    if (data.ProcessKind != DaemonProcessKind.VISIBLE_DOCUMENT)
        return;

    // emit (StaticSeverity) highlighting
}

 

0

Please sign in to leave a comment.