Dmitry Fedorov wrote: > Правильный табстоп - это механический флажок на пишущей машинке или > перфораторе, выставляемый в некую позицию строки, останавливающий > каретку, быстро двигающуюся после нажатия клавиши табуляции. > Очевидно, придуман для экономии времени оператора > пишмашинки/перфоратора при вводе таблиц. Правильная метафора. А если представить, что таких табстопов может быть несколько; что они могут быть выставлены в произвольные места в строке, а не только с фиксированным шагом; и более того, что они могут выставляться не вручную, а автоматически/динамически, создавая наиболее визуально приятное выделение отступаемых блоков кода - вот тогда мы получим "правильный табстоп для программистского редактора". Этакая комбинация чисто визуальных "флажков" из OOo/MSO, и в то же время ориентированности на программистские задачи, в которых до сих пор приходится форматировать "псевдотаблицы" (например, пытаясь выровнять друг под другом список аргументов).
Как могли бы, например, работать такие табстопы, если бы кто-нибудь задался целью реализовать табуляционный алгоритм, удобный для программистов, и при этом не привязанный к квадратно-гнездовым методам печати (пример на том же Питоне): def my_cool_function (<tab-1>argument_1, <tab-1a>argument_2, <tab-1b>argument_3): <tab-2>print (<tab-3>argument_1 + argument_2, <tab-2a><tab-3a>argument_2 + argument_3) tab-1 (появившись в середине текста, а не в начале строки) в таком случае формирует новый "флажок", находящийся на некотором расстоянии от скобки (например, на 1 em/2 en в случае пропорциональных шрифтов, или на парочку пробелов в случае моноширинных); tab-1a и tab-1b догадываются, что свой текст они должны выровнять под уже имеющийся флажок, и выравнивают argument_2 и argument_3 под argument_1 соответственно. Но помимо флажков, необходим какой-то метод сдвинуть всё левое поле в целом, так, чтобы это не посчитали за попытку подравнять текст под имеющийся флажок. Тогда можно пойти на допущение и решить, что пустая строка сбрасывает настройки "флажков". Поэтому tab-2 сделает привычный "абзацный отступ" (в парочку пропорциональных em/штуки 4 en, или в 4 моноширинных пробела) в начале строки; tab-3, т.к. в середине строки, сформирует новый "флажок" на 1 em от скобки; tab-2a сдвинет текст на уровень начала слова print, а tab-3a - на уровень "флажка". Подобная система табуляций позволяла бы выравнивать друг под другом элементы одной смысловой группы, не привязываясь к знакоместам вообще. А значит, например, делать это и для пропорциональных шрифтов с таким же успехом, как и для моноширинных. Alex Myodov -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

