@Override
  public void handleInsert(@NotNull InsertionContext context, @NotNull LookupElement item) {
    if (!needsColon(context)) {
      return;
    }

    final ForcedCompletionPath path = Optional.of(item.getObject())
      .filter(ForcedCompletionPath.class::isInstance)
      .map(ForcedCompletionPath.class::cast)
      .orElse(null);

    final String lookupString;
    if (path != null) {  // deep completion
      lookupString = getReplacement();
      context.getDocument().replaceString(context.getStartOffset(), context.getTailOffset(), lookupString);
    }
    else {
      lookupString = item.getLookupString();
    }

    String commonPadding = getIndentation(context, lookupString);

    YamlInsertionMarkup insertionMarkup = computeInsertionMarkup(context, path != null ? path : ForcedCompletionPath.nullPath());

    commonPadding = insertBeforeItem(context, lookupString, commonPadding, insertionMarkup);
    insertionMarkup.insertStringAndCaret(context.getEditor(), commonPadding);
  }
@Override
  public void handleInsert(@NotNull InsertionContext context, @NotNull LookupElement item)