private static <V extends XSmartStepIntoVariant> void choose(final XSmartStepIntoHandler<V> handler,
                                                               List<? extends V> variants,
                                                               XSourcePosition position,
                                                               final XDebugSession session,
                                                               Editor editor) {
    if (Registry.is("debugger.smart.step.inplace") && ContainerUtil.and(variants, v -> v.getHighlightRange() != null)) {
      try {
        inplaceChoose(handler, variants, session, editor);
        return;
      } catch (Exception e) {
        // in case of any exception fallback to popup
        LOG.error(e);
        SmartStepData data = editor.getUserData(SMART_STEP_INPLACE_DATA);
        if (data != null) {
          data.clear();
        }
      }
    }
    showPopup(handler, variants, position, session, editor);
  }
private static <V extends XSmartStepIntoVariant> void choose(final XSmartStepIntoHandler<V> handler,
                                                               List<? extends V> variants,
                                                               XSourcePosition position,
                                                               final XDebugSession session,
                                                               Editor editor)