suppress json schema download for JSCS config, WEB-32613

This commit is contained in:
Maxim Kropotov
2018-05-07 21:43:22 +03:00
parent e1c7ce2f52
commit fe6f9e6187
3 changed files with 25 additions and 0 deletions
@@ -0,0 +1,19 @@
// Copyright 2000-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
package com.jetbrains.jsonSchema.remote;
import com.intellij.openapi.extensions.ExtensionPointName;
import com.intellij.openapi.vfs.VirtualFile;
import org.jetbrains.annotations.ApiStatus;
import org.jetbrains.annotations.NotNull;
/**
* Disables JSON schema download from schema store for particular files.
* Not intended to be used except to suppress JSON schema for JSCS
*/
@ApiStatus.Experimental
public interface JsonSchemaCatalogExclusion {
ExtensionPointName<JsonSchemaCatalogExclusion> EP_NAME = ExtensionPointName.create("com.intellij.json.catalog.exclusion");
boolean isExcluded(@NotNull VirtualFile file);
}
@@ -50,6 +50,11 @@ public class JsonSchemaCatalogManager {
@Nullable
public VirtualFile getSchemaFileForFile(@NotNull VirtualFile file) {
if (!myIsEnabled.get()) return null;
for (JsonSchemaCatalogExclusion exclusion : JsonSchemaCatalogExclusion.EP_NAME.getExtensions()) {
if (exclusion.isExcluded(file)) {
return null;
}
}
String name = file.getName();
if (myResolvedMappings.containsKey(name)) {
@@ -112,6 +112,7 @@
<extensionPoint qualifiedName="JavaScript.JsonSchema.ProviderFactory" interface="com.jetbrains.jsonSchema.extension.JsonSchemaProviderFactory"/>
<extensionPoint qualifiedName="Json.Like.Psi.Walker.Factory" interface="com.jetbrains.jsonSchema.extension.JsonLikePsiWalkerFactory"/>
<extensionPoint qualifiedName="com.intellij.json.jsonLiteralChecker" interface="com.intellij.json.codeinsight.JsonLiteralChecker"/>
<extensionPoint qualifiedName="com.intellij.json.catalog.exclusion" interface="com.jetbrains.jsonSchema.remote.JsonSchemaCatalogExclusion"/>
</extensionPoints>
</idea-plugin>