private void handleShowAttributeValuesPopup(@NotNull String name, @Nullable String valuePrefix, int caretPosition) {
    Collection<String> values = getValues(name);
    if (ContainerUtil.isEmpty(values)) {
      handleShowPopupForQuery();
      return;
    }

    CollectionListModel<Object> model = new CollectionListModel<>(values);

    if (noPrefixSearchValues(model, valuePrefix)) {
      return;
    }

    if (updatePopupOrCreate(SearchPopup.Type.AttributeValue, model, valuePrefix, caretPosition)) {
      return;
    }

    createAndShow(true, new SearchPopupCallback(valuePrefix) {
      @Override
      public void consume(String value) {
        appendSearchText(SearchQueryParser.wrapAttribute(value), prefix);
        handleShowPopupForQuery();
      }
    });
  }
private void handleShowAttributeValuesPopup(@NotNull String name, @Nullable String valuePrefix, int caretPosition)