On Thu, Sep 25, 2008 at 03:05:18AM +0400, Alex Myodov wrote: > Не могу сказать, что я полностью понял логику выравнивания в том куске. > Но в том, что я понял, я бы расставил табуляции (буде у меня был > редактор, который бы обрабатывал табуляцию так "умно", как мне хочется), > следующим образом:
Я в ответе Atrem Chuprina отписался по поводу того, что тут не так все просто. > (defmacro save-variables (vars &rest body) > <tab>"Protect values of global vars from changes by body." > <tab>(declare (indent 1)) > <tab>(let ((save-pairs (loop<tab>for var in vars > <tab><tab><tab>collect (cons var (make-symbol "tmp"))))) > <tab><tab>(let (<tab>(save-form (loop<tab>for pair in save-pairs > <tab><tab><tab><tab><tab>collect `(,(cdr pair) ,(car pair)))) > <tab><tab><tab><tab>(restore-form (loop for pair in save-pairs > > Для каждой строчки придётся помнить предыдущий известный размер левого > поля. Если в этой строке табов в начале строки столько же, сколько для > левого поля - отступаем на столько же. Если на один таб больше - то > делаем поле на один шаг больше. Если на два или более табов больше - > отступаем под следующий определённый "флажок". Флажки определяются > исключительно табами в "теле" текста. Чтобы с этими табами правильно отформатировать, нужно распарсить исходник, а если это сделать, то правильно его отформатировать можно и без табов. > >> Хотя если выравнивать бездумно пробелами - да, запись расползётся. > >> Разумеется. Про что я и говорю. > >> > > > > А если выравнивать бездумно табуляциями, придавая им смысл, отличный от > > того, который принят большинством, > Большинством принято, что символ табуляции... табулирует. > Если же вы имели в виду, что символ табуляции должен отступать на > фиксированные и равномерные расстояния, то как минимум в OpenOffice > думают иначе. Большинством представителей определенного слоя населения -- в данном случае, программистов. Также, как у математиков свои представления о смысле используемых ими значков, а у полиграфистов свои далеко не тривиальные представления о том, как правильно форматировать текст. -- Dmitry -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

