org_eclipse_lemminx_extensions_contentmodel_DTDCompletionExtensionsTest_java
org.eclipse.lemminx.services.XMLCompletions
private void collectionRegionProposals(ICompletionRequest request, ICompletionResponse response) {
        try {
            int offset = request.getOffset();
            TextDocument document = request.getXMLDocument().getTextDocument();
            Position pos = document.positionAt(offset);
            String lineText = document.lineText(pos.getLine());
            String lineUntilPos = lineText.substring(0, pos.getCharacter());
            Matcher match = regionCompletionRegExpr.matcher(lineUntilPos);
            if (match.find()) {
                InsertTextFormat insertFormat = request.getInsertTextFormat();
                Range range = new Range(new Position(pos.getLine(), pos.getCharacter() + match.regionStart()), pos);
                String text = request.isCompletionSnippetsSupported() ? "<!-- #region $1-->" : "<!-- #region -->";
                CompletionItem beginProposal = new CompletionItem("#region");
                beginProposal.setTextEdit(Either.forLeft(new TextEdit(range, text)));
                beginProposal.setDocumentation("Insert Folding Region Start");
                beginProposal.setFilterText(match.group());
                beginProposal.setSortText("za");
                beginProposal.setKind(CompletionItemKind.Snippet);
                beginProposal.setInsertTextFormat(insertFormat);
                response.addCompletionAttribute(beginProposal);
                CompletionItem endProposal = new CompletionItem("#endregion");
                endProposal.setTextEdit(Either.forLeft(new TextEdit(range, "<!-- #endregion-->")));
                endProposal.setDocumentation("Insert Folding Region End");
                endProposal.setFilterText(match.group());
                endProposal.setSortText("zb");
                endProposal.setKind(CompletionItemKind.Snippet);
                endProposal.setInsertTextFormat(InsertTextFormat.PlainText);
                response.addCompletionAttribute(endProposal);
            }
        }
        catch (BadLocationException e) {
            LOGGER.log(Level.SEVERE, "While performing collectRegionCompletion", e);
        }
    }
 -> java.util.List.size(): int -> java.util.List.size(): int -> java.util.List.get(int): java.lang.Object -> java.util.List.get(int): java.lang.Object -> java.util.List.get(int): java.lang.Object -> java.util.List.get(int): java.lang.Object -> java.util.List.size(): int -> java.util.List.get(int): java.lang.Object -> java.util.List.size(): int -> java.util.List.get(int): java.lang.Object -> java.lang.String.substring(int,int): java.lang.String -> java.lang.String.substring(int,int): java.lang.String -> java.util.regex.Pattern.matcher(java.lang.CharSequence): java.util.regex.Matcher -> java.util.regex.Matcher.find(): boolean
 [CALL] [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [CALL] [EXIT] [CALL] [CALL] [CALL] -> java.util.List.size(): int -> java.util.List.size(): int -> java.util.List.get(int): java.lang.Object -> java.util.List.get(int): java.lang.Object -> java.util.List.get(int): java.lang.Object -> java.util.List.get(int): java.lang.Object [EXIT] [EXIT] -> java.util.List.size(): int -> java.util.List.get(int): java.lang.Object [CALL] [EXIT] [EXIT] [EXIT] [CALL] [EXIT] [CALL] [CALL] [EXIT] [CALL] -> java.util.List.size(): int -> java.util.List.get(int): java.lang.Object [EXIT] [CALL] [EXIT] -> java.lang.String.substring(int,int): java.lang.String [EXIT] [CALL] [EXIT] -> java.lang.String.substring(int,int): java.lang.String -> java.util.regex.Pattern.matcher(java.lang.CharSequence): java.util.regex.Matcher -> java.util.regex.Matcher.find(): boolean [EXIT]