Are there any disadvantages of ignoring the cursor and all?
func cropLineToMaxLength(maxLength: int) -> void:
var inputText := get_line(0)
if inputText.length() > maxLength:
set_line(0, inputText.substr(0, maxLength))
func _on_Input_text_changed() -> void:
And I think it would clarify the purpose if it was connected directly to the respective TextEdit Node instead of to the Control, would it not?