Когда вы используете irb с режимом автоматического отступа, операторы end
получают отступ на один уровень дополнительно
def foo
...
end
вместо обычного отступа:
def foo
...
end
потому что вы не можете сказать irb заранее, что вы собираетесь покинуть один уровень в следующей строке. Этот вопрос был рассмотрен в другом месте, например, здесь или здесь , но ни один из них не дает удовлетворительного ответа. Они просто предлагают сдаться.
Однако, если мы можем минимально перезаписать некоторые методы irb, чтобы автоматический отступ вставлял пробелы не в области приглашения, а в начале вводимой строки, то по умолчанию irb по-прежнему будет вставлять пробелы, но мы сможет стереть некоторые пробелы с Backspace. Это возможно?
Или, если это нереально, можно ли заставить irb стереть последнюю строку с экрана и заново отобразить ее с правильным отступом сразу после нажатия клавиши Enter на строке, включающей end
?