json: use only one singleton of JsonOriginalPsiWalker

This commit is contained in:
Anton Lobov
2019-03-01 13:26:52 +01:00
parent 7bfdb72511
commit 224d360683
3 changed files with 3 additions and 7 deletions
@@ -14,7 +14,6 @@ import com.intellij.spellchecker.tokenizer.SpellcheckingStrategy;
import com.intellij.spellchecker.tokenizer.TokenConsumer;
import com.intellij.spellchecker.tokenizer.Tokenizer;
import com.intellij.util.ThreeState;
import com.jetbrains.jsonSchema.extension.JsonLikePsiWalker;
import com.jetbrains.jsonSchema.ide.JsonSchemaService;
import com.jetbrains.jsonSchema.impl.JsonOriginalPsiWalker;
import com.jetbrains.jsonSchema.impl.JsonSchemaObject;
@@ -62,7 +61,7 @@ public class JsonSpellcheckerStrategy extends SpellcheckingStrategy {
String value = element.getValue();
if (StringUtil.isEmpty(value)) return false;
JsonOriginalPsiWalker walker = JsonLikePsiWalker.JSON_ORIGINAL_PSI_WALKER;
JsonOriginalPsiWalker walker = JsonOriginalPsiWalker.INSTANCE;
final PsiElement checkable = walker.findElementToCheck(element);
if (checkable == null) return false;
final ThreeState isName = walker.isName(checkable);
@@ -20,8 +20,6 @@ import java.util.Set;
* @author Irina.Chernushina on 2/15/2017.
*/
public interface JsonLikePsiWalker {
JsonOriginalPsiWalker JSON_ORIGINAL_PSI_WALKER = new JsonOriginalPsiWalker();
/**
* Returns YES in place where a property name is expected,
* NO in place where a property value is expected,
@@ -60,7 +58,7 @@ public interface JsonLikePsiWalker {
@Nullable
static JsonLikePsiWalker getWalker(@NotNull final PsiElement element, JsonSchemaObject schemaObject) {
if (JSON_ORIGINAL_PSI_WALKER.handles(element)) return JSON_ORIGINAL_PSI_WALKER;
if (JsonOriginalPsiWalker.INSTANCE.handles(element)) return JsonOriginalPsiWalker.INSTANCE;
return JsonLikePsiWalkerFactory.EXTENSION_POINT_NAME.getExtensionList().stream()
.filter(extension -> extension.handles(element))
@@ -11,7 +11,6 @@ import com.intellij.psi.PsiElement;
import com.intellij.psi.PsiLanguageInjectionHost;
import com.intellij.util.ThreeState;
import com.intellij.util.containers.ContainerUtil;
import com.jetbrains.jsonSchema.extension.JsonLikePsiWalker;
import com.jetbrains.jsonSchema.ide.JsonSchemaService;
import org.intellij.lang.regexp.ecmascript.EcmaScriptRegexpLanguage;
import org.jetbrains.annotations.NotNull;
@@ -22,7 +21,7 @@ public class JsonSchemaRegexInjector implements MultiHostInjector {
@Override
public void getLanguagesToInject(@NotNull MultiHostRegistrar registrar, @NotNull PsiElement context) {
if (!JsonSchemaService.isSchemaFile(context.getContainingFile())) return;
JsonOriginalPsiWalker walker = JsonLikePsiWalker.JSON_ORIGINAL_PSI_WALKER;
JsonOriginalPsiWalker walker = JsonOriginalPsiWalker.INSTANCE;
if (!(context instanceof JsonStringLiteral)) return;
ThreeState isName = walker.isName(context);
JsonPointerPosition position = walker.findPosition(context, isName == ThreeState.NO);