org_eclipse_lemminx_extensions_catalog_XMLCatalogExtensionTest_java
org.eclipse.lemminx.extensions.contentmodel.participants.ContentModelCompletionParticipant
private static void addCompletionItem(CMElementDeclaration elementDeclaration, DOMElement parentElement, String defaultPrefix, boolean forceUseOfPrefix, ICompletionRequest request, ICompletionResponse response, XMLGenerator generator, Set<String> tags) {
        String prefix = forceUseOfPrefix ? defaultPrefix : (parentElement != null ? parentElement.getPrefix(elementDeclaration.getNamespace()) : null);
        String label = elementDeclaration.getName(prefix);
        if (tags != null) {
            if (tags.contains(label)) {
                return;
            }
            tags.add(label);
        }
        CompletionItem item = new CompletionItem(label);
        item.setFilterText(request.getFilterForStartTagName(label));
        item.setKind(CompletionItemKind.Property);
        MarkupContent documentation = XMLGenerator.createMarkupContent(elementDeclaration, request);
        item.setDocumentation(documentation);
        String xml = generator.generate(elementDeclaration, prefix, ContentModelCompletionParticipant.isGenerateEndTag(request.getNode(), request.getOffset(), label));
        item.setTextEdit(Either.forLeft(new TextEdit(request.getReplaceRange(), xml)));
        item.setInsertTextFormat(InsertTextFormat.Snippet);
        response.addCompletionItem(item, true);
    }
 -> java.util.List.iterator(): java.util.Iterator -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object -> java.lang.String.startsWith(java.lang.String): boolean -> java.lang.String.equals(java.lang.Object): boolean -> java.lang.String.equals(java.lang.Object): boolean -> java.util.Iterator.hasNext(): boolean -> java.util.Collections.emptyList(): java.util.List -> java.util.Collections.emptyList(): java.util.List -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.hasNext(): boolean -> java.util.List.size(): int -> java.util.List.size(): int -> java.util.Iterator.hasNext(): boolean -> java.util.List.size(): int -> java.util.List.iterator(): java.util.Iterator -> java.util.Iterator.hasNext(): boolean -> java.lang.StringBuilder.toString(): java.lang.String -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.util.List.iterator(): java.util.Iterator -> java.util.Iterator.hasNext(): boolean -> java.lang.StringBuilder.toString(): java.lang.String -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.toString(): java.lang.String -> java.lang.String.trim(): java.lang.String -> java.util.Vector.size(): int -> java.util.Vector.elementAt(int): java.lang.Object -> java.lang.String.isEmpty(): boolean -> java.util.List.indexOf(java.lang.Object): int -> java.util.List.size(): int -> java.util.List.contains(java.lang.Object): boolean -> java.util.List.add(java.lang.Object): boolean -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.util.Collection.add(java.lang.Object): boolean -> java.util.Collection.add(java.lang.Object): boolean -> java.util.Collection.iterator(): java.util.Iterator -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object -> java.util.List.add(java.lang.Object): boolean -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object -> java.util.Iterator.hasNext(): boolean -> java.util.List.size(): int -> java.util.List.iterator(): java.util.Iterator -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object -> java.util.Collections.emptyList(): java.util.List -> java.lang.Character.toString(char): java.lang.String -> java.lang.StringBuilder.toString(): java.lang.String -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.String.length(): int -> java.lang.Character.valueOf(char): java.lang.Character -> java.lang.Character.charValue(): char -> java.lang.StringBuilder.append(char): java.lang.StringBuilder -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.Character.charValue(): char -> java.lang.StringBuilder.append(char): java.lang.StringBuilder -> java.util.Iterator.hasNext(): boolean -> java.util.Collection.size(): int -> java.lang.Boolean.booleanValue(): boolean -> java.lang.StringBuilder.length(): int -> java.lang.StringBuilder.length(): int -> java.lang.StringBuilder.charAt(int): char -> java.lang.Character.isSpaceChar(char): boolean -> java.lang.StringBuilder.charAt(int): char -> java.lang.StringBuilder.charAt(int): char -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.toString(): java.lang.String -> java.util.List.add(java.lang.Object): boolean
 [CALL] [CALL] [CALL] [EXIT] [EXIT] [CALL] [CALL] [EXIT] [CALL] [EXIT] -> java.util.List.iterator(): java.util.Iterator -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object [CALL] [CALL] [CALL] -> java.lang.String.startsWith(java.lang.String): boolean [EXIT] [EXIT] -> java.lang.String.equals(java.lang.Object): boolean [CALL] [CALL] -> java.lang.String.equals(java.lang.Object): boolean [EXIT] [EXIT] [EXIT] -> java.util.Iterator.hasNext(): boolean [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [CALL] [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [EXIT] [CALL] [CALL] [EXIT] [CALL] [EXIT] [EXIT] [CALL] [CALL] -> java.util.Collections.emptyList(): java.util.List -> java.util.Collections.emptyList(): java.util.List [CALL] [CALL] [CALL] [EXIT] [EXIT] -> java.util.Iterator.hasNext(): boolean [CALL] [EXIT] [EXIT] [CALL] [CALL] [CALL] [EXIT] [EXIT] -> java.util.Iterator.hasNext(): boolean [CALL] [EXIT] [EXIT] [CALL] -> java.util.List.size(): int [EXIT] [CALL] -> java.util.List.size(): int [EXIT] [CALL] [CALL] [CALL] [EXIT] [EXIT] -> java.util.Iterator.hasNext(): boolean [CALL] [EXIT] [EXIT] [EXIT] [EXIT] [CALL] [CALL] -> java.util.List.size(): int [EXIT] [CALL] -> java.util.List.iterator(): java.util.Iterator -> java.util.Iterator.hasNext(): boolean -> java.lang.StringBuilder.toString(): java.lang.String [EXIT] -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder [CALL] -> java.util.List.iterator(): java.util.Iterator -> java.util.Iterator.hasNext(): boolean -> java.lang.StringBuilder.toString(): java.lang.String [EXIT] -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.toString(): java.lang.String -> java.lang.String.trim(): java.lang.String [EXIT] [EXIT] [CALL] [CALL] [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [EXIT] [CALL] [CALL] [CALL] -> java.util.Vector.size(): int [EXIT] [EXIT] [CALL] -> java.util.Vector.elementAt(int): java.lang.Object [EXIT] [EXIT] [EXIT] [CALL] [CALL] [EXIT] [CALL] [EXIT] [EXIT] [CALL] [CALL] [CALL] -> java.lang.String.isEmpty(): boolean [EXIT] [EXIT] [EXIT] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [CALL] [CALL] [EXIT] [CALL] [CALL] [CALL] [EXIT] [CALL] [EXIT] -> java.util.List.indexOf(java.lang.Object): int -> java.util.List.size(): int [EXIT] [EXIT] [EXIT] [EXIT] [CALL] [CALL] [CALL] [EXIT] [EXIT] [CALL] -> java.util.List.contains(java.lang.Object): boolean -> java.util.List.add(java.lang.Object): boolean [CALL] [CALL] [EXIT] [EXIT] [CALL] [CALL] -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder [EXIT] [CALL] -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder [EXIT] [EXIT] [CALL] [CALL] [CALL] [EXIT] [CALL] [EXIT] [CALL] [CALL] [CALL] [CALL] [EXIT] [EXIT] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] -> java.util.Collection.add(java.lang.Object): boolean [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] -> java.util.Collection.add(java.lang.Object): boolean [CALL] [EXIT] [EXIT] [EXIT] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [CALL] -> java.util.Collection.iterator(): java.util.Iterator -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object [CALL] [CALL] [EXIT] [EXIT] -> java.util.List.add(java.lang.Object): boolean -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object [CALL] [CALL] [EXIT] [EXIT] -> java.util.Iterator.hasNext(): boolean -> java.util.List.size(): int -> java.util.List.iterator(): java.util.Iterator -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object [CALL] [CALL] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [CALL] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [EXIT] [CALL] [CALL] [CALL] [EXIT] [EXIT] [CALL] [EXIT] [CALL] [CALL] [CALL] [EXIT] [EXIT] [CALL] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [CALL] [EXIT] [CALL] [CALL] [EXIT] [EXIT] -> java.util.Collections.emptyList(): java.util.List [EXIT] [EXIT] [CALL] [CALL] [EXIT] [CALL] [CALL] [CALL] [EXIT] [EXIT] -> java.lang.Character.toString(char): java.lang.String [EXIT] -> java.lang.StringBuilder.toString(): java.lang.String [EXIT] [CALL] [CALL] [CALL] [EXIT] [EXIT] [CALL] [EXIT] [EXIT] [CALL] [CALL] [CALL] [CALL] -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder [EXIT] [EXIT] [CALL] [CALL] -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder [EXIT] [CALL] -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder [EXIT] [CALL] [CALL] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [EXIT] [CALL] -> java.lang.String.length(): int [EXIT] -> java.lang.Character.valueOf(char): java.lang.Character [CALL] -> java.lang.Character.charValue(): char [CALL] -> java.lang.StringBuilder.append(char): java.lang.StringBuilder [EXIT] [CALL] -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder [EXIT] -> java.lang.Character.charValue(): char [CALL] -> java.lang.StringBuilder.append(char): java.lang.StringBuilder [EXIT] [EXIT] [EXIT] [EXIT] [EXIT] -> java.util.Iterator.hasNext(): boolean [EXIT] [CALL] [CALL] [CALL] [EXIT] [CALL] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [EXIT] [EXIT] -> java.util.Collection.size(): int [CALL] [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [EXIT] [CALL] [CALL] [CALL] [EXIT] [CALL] [CALL] [CALL] [CALL] [EXIT] [CALL] [EXIT] [EXIT] [EXIT] -> java.lang.Boolean.booleanValue(): boolean [EXIT] [EXIT] [CALL] -> java.lang.StringBuilder.length(): int -> java.lang.StringBuilder.length(): int -> java.lang.StringBuilder.charAt(int): char -> java.lang.Character.isSpaceChar(char): boolean -> java.lang.StringBuilder.charAt(int): char -> java.lang.StringBuilder.charAt(int): char [EXIT] [CALL] [CALL] -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder [EXIT] [EXIT] [CALL] -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder [EXIT] [EXIT] [EXIT] [CALL] -> java.lang.StringBuilder.toString(): java.lang.String [EXIT] [EXIT] [CALL] [EXIT] [CALL] [CALL] [EXIT] [CALL] [EXIT] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [CALL] [CALL] [EXIT] -> java.util.List.add(java.lang.Object): boolean [EXIT] [EXIT] [EXIT]