void () { PsiElement checkable = myWalker.findElementToCheck(myPosition); if (!(checkable instanceof JsonStringLiteral) && !(checkable instanceof JsonReferenceExpression)) return; JsonObject propertiesObject = JsonRequiredPropsReferenceProvider.findPropertiesObject(checkable); if (propertiesObject == null) return; PsiElement parent = checkable.getParent(); Set<String> items = parent instanceof JsonArray ? ((JsonArray)parent).getValueList().stream() .filter(v -> v instanceof JsonStringLiteral).map(v -> ((JsonStringLiteral)v).getValue()) .collect(Collectors.toSet()) : new HashSet<>(); propertiesObject.getPropertyList().stream().map(p -> p.getName()).filter(n -> !items.contains(n)) .forEach(n -> addStringVariant(n)); }