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