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;
}