@Override
  public void visit(@NotNull PsiElement element) {
    if (element instanceof JsonProperty) {
      PsiFile file = element.getContainingFile();
      String fileName = file.getName();
      if (Holder.blacklist.containsKey(fileName)) {
        JsonPointerPosition position = JsonOriginalPsiWalker.INSTANCE.findPosition(element, false);
        if (position != null && Holder.blacklist.get(fileName).contains(position.toJsonPointer())) return;
      }
      String name = ((JsonProperty)element).getName();
      addInfo(getInfo(file, ((JsonProperty)element).getNameElement(), name, JsonSyntaxHighlighterFactory.JSON_PROPERTY_KEY));
      JsonValue value = ((JsonProperty)element).getValue();
      if (value instanceof JsonObject) {
        addInfo(getInfo(file, value.getFirstChild(), name, JsonSyntaxHighlighterFactory.JSON_BRACES));
        addInfo(getInfo(file, value.getLastChild(), name, JsonSyntaxHighlighterFactory.JSON_BRACES));
      }
      else if (value instanceof JsonArray) {
        addInfo(getInfo(file, value.getFirstChild(), name, JsonSyntaxHighlighterFactory.JSON_BRACKETS));
        addInfo(getInfo(file, value.getLastChild(), name, JsonSyntaxHighlighterFactory.JSON_BRACKETS));
        for (JsonValue jsonValue : ((JsonArray)value).getValueList()) {
          addSimpleValueInfo(name, file, jsonValue);
        }
      }
      else {
        addSimpleValueInfo(name, file, value);
      }
    }
  }
@Override
  public void visit(@NotNull PsiElement element)