firstLine = content.getLineAtOffset(event.start); textChangeY = firstLine * lineHeight - verticalScrollOffset + topMargin;
int firstLine = content.getLineAtOffset(event.start); int textChangeY = firstLine * lineHeight - verticalScrollOffset + topMargin;
void handleTextChanging(TextChangingEvent event) {	int firstLine;		int textChangeY;	boolean isMultiLineChange = event.replaceLineCount > 0 || event.newLineCount > 0;				if (event.replaceCharCount < 0) {		event.start += event.replaceCharCount;		event.replaceCharCount *= -1;	}	lastTextChangeStart = event.start;	lastTextChangeNewLineCount = event.newLineCount;	lastTextChangeNewCharCount = event.newCharCount;	lastTextChangeReplaceLineCount = event.replaceLineCount;	lastTextChangeReplaceCharCount = event.replaceCharCount;	firstLine = content.getLineAtOffset(event.start);	textChangeY = firstLine * lineHeight - verticalScrollOffset + topMargin;	if (isMultiLineChange) {		redrawMultiLineChange(textChangeY, event.newLineCount, event.replaceLineCount);	}	// notify default line styler about text change	if (defaultLineStyler != null) {		defaultLineStyler.textChanging(event);	}		// Update the caret offset if it is greater than the length of the content.	// This is necessary since style range API may be called between the	// handleTextChanging and handleTextChanged events and this API sets the	// caretOffset.	int newEndOfText = content.getCharCount() - event.replaceCharCount + event.newCharCount;	if (caretOffset > newEndOfText) caretOffset = newEndOfText;}