Dmitry Azhichakov wrote: > On Tue, Sep 23, 2008 at 02:23:39PM +0400, Alex Myodov wrote: > >> Десяток писем назад я описал один из возможных алгоритмов, которые могли >> бы выравнивать подобные группы внутри текста. Всего-то надо перед каждым >> элементом группы (знаком "равно") ставить какой-нибудь спецсимвол, >> который бы значил, что знаки "равно" надо выровнять друг под другом. По >> чистой случайности, таким символом может быть символ табуляции. >> > В ответе на предыдущее письмо этой ветки я привел кусок кода на Emacs > Lisp. Где и как там надо расставить табуляции, чтобы все нормально > выравнивалось так, как оно выровнено сейчас? > Не могу сказать, что я полностью понял логику выравнивания в том куске. Но в том, что я понял, я бы расставил табуляции (буде у меня был редактор, который бы обрабатывал табуляцию так "умно", как мне хочется), следующим образом:
(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 думают иначе. >> появись в каком редакторе адаптивная табуляция, выровнялись бы даже >> следующие строчки, >> > Но только в этом одном редакторе. Пользователи более других старомодных > редакторов закидают вас тухлыми яйцами, ведь у них будет далеко не так > красиво и даже много хуже, чем в варианте с моноширинными шрифтами и > выравниванием пробелами. > Факт, да. Поэтому это и не является первостепенной задачей для Мировой Революции. Надо бы народ для начала приучить хоть в начале строк правильные отступы делать. И показать, что исходники, представленные пропорциональным шрифтом, выглядят не так уж и плохо - даже наоборот. А дальше по ситуации. Alex Myodov -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

