mark elementsToHighlightFilter as dynamic

GitOrigin-RevId: 480411a143bd5fcbcf6f42aaf3a2136cfa0f451e
This commit is contained in:
Sergey Ignatov
2019-11-21 19:11:00 +00:00
committed by intellij-monorepo-bot
parent 0468724eda
commit b4ad34874d
3 changed files with 5 additions and 11 deletions
@@ -94,7 +94,7 @@ public class Divider {
int startOffset = restrictRange.getStartOffset();
int endOffset = restrictRange.getEndOffset();
final Condition<PsiElement>[] filters = CollectHighlightsUtil.FiltersHolder.FILTERS;
final Condition<PsiElement>[] filters = CollectHighlightsUtil.EP_NAME.getExtensions();
final TIntStack starts = new TIntStack(STARTING_TREE_HEIGHT);
starts.push(startOffset);
@@ -19,7 +19,7 @@ import java.util.ArrayList;
import java.util.List;
public class CollectHighlightsUtil {
private static final ExtensionPointName<Condition<PsiElement>> EP_NAME = ExtensionPointName.create("com.intellij.elementsToHighlightFilter");
static final ExtensionPointName<Condition<PsiElement>> EP_NAME = ExtensionPointName.create("com.intellij.elementsToHighlightFilter");
private static final Logger LOG = Logger.getInstance(CollectHighlightsUtil.class);
@@ -52,16 +52,10 @@ public class CollectHighlightsUtil {
private static final int STARTING_TREE_HEIGHT = 100;
static class FiltersHolder {
static final Condition<PsiElement>[] FILTERS = EP_NAME.getExtensions();
}
@NotNull
private static List<PsiElement> getElementsToHighlight(@NotNull PsiElement parent, final int startOffset, final int endOffset) {
final List<PsiElement> result = new ArrayList<>();
final int currentOffset = parent.getTextRange().getStartOffset();
final Condition<PsiElement>[] filters = FiltersHolder.FILTERS;
int offset = currentOffset;
int offset = parent.getTextRange().getStartOffset();
final TIntStack starts = new TIntStack(STARTING_TREE_HEIGHT);
final Stack<PsiElement> elements = new Stack<>(STARTING_TREE_HEIGHT);
@@ -72,7 +66,7 @@ public class CollectHighlightsUtil {
while (true) {
ProgressIndicatorProvider.checkCanceled();
for (Condition<PsiElement> filter : filters) {
for (Condition<PsiElement> filter : EP_NAME.getExtensionList()) {
if (!filter.value(element)) {
assert child == PsiUtilCore.NULL_PSI_ELEMENT;
child = null; // do not want to process children
@@ -346,7 +346,7 @@
</extensionPoint>
<extensionPoint name="highlightRangeExtension" interface="com.intellij.codeInsight.daemon.impl.HighlightRangeExtension"/>
<extensionPoint name="elementsToHighlightFilter" interface="com.intellij.openapi.util.Condition"/>
<extensionPoint name="elementsToHighlightFilter" interface="com.intellij.openapi.util.Condition" dynamic="true"/>
<extensionPoint name="sdkType" interface="com.intellij.openapi.projectRoots.SdkType"/>
<extensionPoint name="sdkFinder" interface="com.intellij.openapi.roots.impl.SdkFinder"/>