plugin/src/software/aws/toolkits/eclipse/amazonq/util/GenericTypeheadProcessor.java [77:136]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    @Override
    public TypeaheadProcessorInstruction processVerifyKeyBuffer(final int distanceTraversed, final char input,
            final IQInlineBracket[] brackets) {
        return new TypeaheadProcessorInstruction();
    }

    @Override
    public boolean isBracketsSetToAutoClose() {
        return true;
    }

    @Override
    public boolean isAngleBracketsSetToAutoClose() {
        return true;
    }

    @Override
    public boolean isBracesSetToAutoClose() {
        return true;
    }

    @Override
    public boolean isStringSetToAutoClose() {
        return true;
    }

    @Override
    public boolean isCurlyBracesAutoCloseDelayed() {
        return false;
    }

    @Override
    public int getOutstandingPadding(final IQInlineBracket[] brackets) {
        // Geenric document does not need padding because deleting an unresolved open
        // bracket does not delete its close counter part.
        return 0;
    }

    private PreprocessingCategory getBufferPreprocessingCategory(final int distanceTraversed, final String input,
            final IQInlineBracket[] brackets) {
        var bracket = brackets[distanceTraversed];
        if (input.length() > 1 && bracket != null && bracket.getSymbol() == input.charAt(0)
                && (input.equals("()") || input.equals("<>") || input.equals("[]") || input.equals("{}"))) {
            ((QInlineSuggestionOpenBracketSegment) bracket).setAutoCloseOccurred(true);
            return PreprocessingCategory.NORMAL_BRACKETS_OPEN;
        }
        if (input.equals("\"\"") || input.equals("\'\'")) {
            if (bracket != null && bracket.getSymbol() == input.charAt(0)) {
                if (bracket instanceof QInlineSuggestionOpenBracketSegment) {
                    ((QInlineSuggestionOpenBracketSegment) bracket).setAutoCloseOccurred(true);
                    return PreprocessingCategory.STR_QUOTE_OPEN;
                }
            }
        }
        Matcher matcher = CURLY_AUTO_CLOSE_MATCHER.matcher(input);
        if (matcher.find()) {
            ((QInlineSuggestionOpenBracketSegment) bracket).setAutoCloseOccurred(true);
            return PreprocessingCategory.CURLY_BRACES;
        }
        return PreprocessingCategory.NONE;
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



plugin/src/software/aws/toolkits/eclipse/amazonq/util/JavascriptTypeaheadProcessor.java [62:121]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    @Override
    public TypeaheadProcessorInstruction processVerifyKeyBuffer(final int distanceTraversed, final char input,
            final IQInlineBracket[] brackets) {
        return new TypeaheadProcessorInstruction();
    }

    @Override
    public boolean isBracketsSetToAutoClose() {
        return true;
    }

    @Override
    public boolean isAngleBracketsSetToAutoClose() {
        return true;
    }

    @Override
    public boolean isBracesSetToAutoClose() {
        return true;
    }

    @Override
    public boolean isStringSetToAutoClose() {
        return true;
    }

    @Override
    public boolean isCurlyBracesAutoCloseDelayed() {
        return false;
    }

    @Override
    public int getOutstandingPadding(final IQInlineBracket[] brackets) {
        // Geenric document does not need padding because deleting an unresolved open
        // bracket does not delete its close counter part.
        return 0;
    }

    private PreprocessingCategory getBufferPreprocessingCategory(final int distanceTraversed, final String input,
            final IQInlineBracket[] brackets) {
        var bracket = brackets[distanceTraversed];
        if (input.length() > 1 && bracket != null && bracket.getSymbol() == input.charAt(0)
                && (input.equals("()") || input.equals("<>") || input.equals("[]") || input.equals("{}"))) {
            ((QInlineSuggestionOpenBracketSegment) bracket).setAutoCloseOccurred(true);
            return PreprocessingCategory.NORMAL_BRACKETS_OPEN;
        }
        if (input.equals("\"\"") || input.equals("\'\'")) {
            if (bracket != null && bracket.getSymbol() == input.charAt(0)) {
                if (bracket instanceof QInlineSuggestionOpenBracketSegment) {
                    ((QInlineSuggestionOpenBracketSegment) bracket).setAutoCloseOccurred(true);
                    return PreprocessingCategory.STR_QUOTE_OPEN;
                }
            }
        }
        Matcher matcher = CURLY_AUTO_CLOSE_MATCHER.matcher(input);
        if (matcher.find()) {
            ((QInlineSuggestionOpenBracketSegment) bracket).setAutoCloseOccurred(true);
            return PreprocessingCategory.CURLY_BRACES;
        }
        return PreprocessingCategory.NONE;
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



