public TypeaheadProcessorInstruction postProcessDocumentChangeBuffer()

in plugin/src/software/aws/toolkits/eclipse/amazonq/util/JavaTypeaheadProcessor.java [97:133]


    public TypeaheadProcessorInstruction postProcessDocumentChangeBuffer(final int distanceTraversed,
            final int currentOffset, final String input, final IQInlineBracket[] brackets) {
        IQInlineBracket bracket = brackets[distanceTraversed];
        TypeaheadProcessorInstruction res = new TypeaheadProcessorInstruction();
        if (bracket == null || !(bracket instanceof QInlineSuggestionCloseBracketSegment)) {
            return res;
        }
        if (bracket.getSymbol() != input.charAt(0) || input.length() > 1) {
            return res;
        }
        QInlineSuggestionOpenBracketSegment openBracket = ((QInlineSuggestionCloseBracketSegment) bracket)
                .getOpenBracket();
        if (openBracket == null || openBracket.isResolved() || !openBracket.hasAutoCloseOccurred()) {
            return res;
        }
        switch (input.charAt(0)) {
        case ')':
        case ']':
        case '>':
            if (isBracketsSetToAutoClose) {
                res.setShouldModifyCaretOffset(true);
                res.setCaretOffset(currentOffset + 1);
            }
            break;
        case '\"':
        case '\'':
            if (isStringSetToAutoClose) {
                res.setShouldModifyCaretOffset(true);
                res.setCaretOffset(currentOffset + 1);
            }
            break;
        default:
            break;
        }

        return res;
    }