void (@NotNull YamlInsertionMarkup markup, boolean manyNotOne, @NotNull ForcedCompletionPath.Iteration iteration) { markup.append(":"); markup.doTabbedBlock(manyNotOne ? 2 : 1, () -> { markup.newLineAndTabs(manyNotOne); List<Field> allRequired = ContainerUtil.filter(myFeatures, field -> field.isRequired() || iteration.isNextOnPath(field)); if (allRequired.isEmpty() && iteration.isEndOfPathReached()) { markup.appendCaret(); } else { for (Iterator<Field> iterator = allRequired.iterator(); iterator.hasNext(); ) { Field field = iterator.next(); buildCompleteKeyMarkup(markup, field, iteration.nextIterationFor(field)); if (iterator.hasNext()) { markup.newLineAndTabs(); } } } }); }