mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
json schema annotation: add a check for annotated element type
- significantly improves performance for big files, because less matching schema searches are done
This commit is contained in:
committed by
Irina.Chernushina
parent
6d6f61f345
commit
fdf07bb9c3
@@ -15,6 +15,8 @@
|
||||
*/
|
||||
package com.jetbrains.jsonSchema.impl;
|
||||
|
||||
import com.intellij.json.psi.JsonObject;
|
||||
import com.intellij.json.psi.JsonProperty;
|
||||
import com.intellij.lang.annotation.AnnotationHolder;
|
||||
import com.intellij.lang.annotation.AnnotationSession;
|
||||
import com.intellij.lang.annotation.Annotator;
|
||||
@@ -42,7 +44,8 @@ public class JsonSchemaAnnotator implements Annotator {
|
||||
|
||||
@Override
|
||||
public void annotate(@NotNull PsiElement element, @NotNull AnnotationHolder holder) {
|
||||
if (element.getContainingFile() == null) return;
|
||||
if (element.getContainingFile() == null ||
|
||||
!(element instanceof JsonProperty || element instanceof JsonObject)) return;
|
||||
|
||||
final JsonSchemaObject rootSchema =
|
||||
JsonSchemaService.Impl.get(element.getProject()).getSchemaObject(element.getContainingFile().getViewProvider().getVirtualFile());
|
||||
|
||||
@@ -36,6 +36,6 @@ public class JsonSchemaPerformanceTest extends JsonSchemaHeavyAbstractTest {
|
||||
doHighlighting();
|
||||
}
|
||||
});
|
||||
PlatformTestUtil.startPerformanceTest(getTestName(false), 7000, test).attempts(1).usesAllCPUCores().assertTiming();
|
||||
PlatformTestUtil.startPerformanceTest(getTestName(false), 20000, test).attempts(1).usesAllCPUCores().assertTiming();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -39,6 +39,7 @@ public class JsonSchemaTestSuite extends TestCase {
|
||||
suite.addTestSuite(JsonBySchemaHeavyCompletionTest.class);
|
||||
suite.addTestSuite(JsonSchemaReadTest.class);
|
||||
suite.addTestSuite(JsonSchemaFileResolveTest.class);
|
||||
suite.addTestSuite(JsonSchemaPerformanceTest.class);
|
||||
return suite;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user