in plugin/src/software/aws/toolkits/eclipse/amazonq/util/JavaTypeaheadProcessor.java [52:94]
public TypeaheadProcessorInstruction preprocessDocumentChangedBuffer(final int distanceTraversed,
final int eventOffset, final String input, final IQInlineBracket[] brackets) {
TypeaheadProcessorInstruction res = new TypeaheadProcessorInstruction();
PreprocessingCategory category = getBufferPreprocessingCategory(distanceTraversed, input, brackets);
switch (category) {
case STR_QUOTE_OPEN:
case NORMAL_BRACKETS_OPEN:
res.setShouldModifyDocument(true);
res.setDocInsertOffset(eventOffset);
res.setDocInsertLength(2);
res.setDocInsertContent(input.substring(0, 1) + " ");
break;
case NORMAL_BRACKETS_CLOSE:
brackets[distanceTraversed].onTypeOver();
res.setShouldModifyCaretOffset(true);
res.setShouldModifyDocument(true);
res.setDocInsertOffset(eventOffset);
res.setDocInsertLength(2);
res.setDocInsertContent(input);
res.setCaretOffset(widget.getCaretOffset() + 1);
break;
case STR_QUOTE_CLOSE:
res.setShouldModifyDocument(true);
res.setDocInsertOffset(eventOffset);
res.setDocInsertLength(2);
res.setDocInsertContent(input.substring(0, 1));
break;
case CURLY_BRACES:
int firstNewlineIndex = input.indexOf('\n');
int secondNewlineIndex = input.indexOf('\n', firstNewlineIndex + 1);
if (secondNewlineIndex != -1) {
String sanitizedInput = input.substring(0, secondNewlineIndex);
res.setShouldModifyDocument(true);
res.setDocInsertOffset(eventOffset);
res.setDocInsertLength(input.length());
res.setDocInsertContent(sanitizedInput);
}
break;
default:
break;
}
return res;
}