@Override
    public void invoke(@NotNull Project project,
                       @NotNull PsiFile file,
                       @Nullable Editor editor,
                       @NotNull PsiElement startElement,
                       @NotNull PsiElement endElement) {
      PsiElement mapping = getMappingFromHighlightElement(startElement);
      if (mapping == null) {
        return;
      }

      final YAMLElementGenerator elementGenerator = YAMLElementGenerator.getInstance(project);
      int indent = YAMLUtil.getIndentToThisElement(mapping);

      PsiElement firstInsertedKey = null;
      for (final String missingKey : myMissingKeys) {
        mapping.add(elementGenerator.createEol());
        mapping.add(elementGenerator.createIndent(indent));
        PsiElement newElement = mapping.add(elementGenerator.createYamlKeyValue(missingKey, ""));
        if (firstInsertedKey == null) {
          firstInsertedKey = newElement;
        }
      }

      if (editor != null && firstInsertedKey != null) {
        editor.getCaretModel().moveToOffset(firstInsertedKey.getTextOffset() + firstInsertedKey.getTextLength());
      }
    }
@Override
    public void invoke(@NotNull Project project,
                       @NotNull PsiFile file,
                       @Nullable Editor editor,
                       @NotNull PsiElement startElement,
                       @NotNull PsiElement endElement)