Отмена автоматического отступа

Если вы используете irb с режимом автоматического отступа, операторы end получают отступ на один уровень больше

 def foo
   ...
   end

вместо обычного соглашения об отступах:

def foo
  ...
end

, потому что вы не можете сказать irb заранее, что вы собираетесь покинуть один уровень в следующей строке. Этот вопрос рассматривался в другом месте, например здесь или здесь , но ни один из них не дает удовлетворительного ответа. Они просто предлагают сдаться.

Однако, если мы сможем минимально перезаписать некоторые методы irb, чтобы при автоматическом отступе пробелы вставлялись не в область подсказки, а в начало вводимой вами строки, то по умолчанию irb все равно будет будет вставлять пробелы, но мы сможем удалить некоторые пробелы с помощью Backspace. Возможно ли это?

Или, если это нереально, тогда можно ли заставить irb стереть последнюю строку с экрана и снова отобразить ее с правильным отступом сразу после того, как вы нажмете Enter в строке, содержащей end ?

8
задан sawa 21 May 2011 в 00:07
поделиться