новая строка существует в реболе / красном для блока, а как насчет вкладок? - PullRequest
0 голосов
/ 29 мая 2018

Я не могу найти новую вкладку, в то время как есть новая строка, так как вы сохраняете вкладки в блоках?

    help new-line
    USAGE:
         NEW-LINE position value

    DESCRIPTION: 
         Sets or clears the new-line marker within a block or paren. 
         NEW-LINE is a native! value.

    ARGUMENTS:
         position     [block! paren!] "Position to change marker (modified)".
         value         "Set TRUE for newline".

    REFINEMENTS:
         /all         => Set/clear marker to end of series.
         /skip        => Set/clear marker periodically to the end of the series.
            size         [integer!] 

    RETURNS:
         [block! paren!]

1 Ответ

0 голосов
/ 29 мая 2018

Существует один флаг новой строки для каждой ячейки в массивах ("any-block!"), Который указывает, должен ли процесс формования выводить новую строку перед этим значением.

Отступзапускается только из этих флагов. Отступ начинается с первого флага новой строки, и каждая новая строка будет выравниваться по этому уровню, с отступом в конце блока, если произошли какие-либо новые строки / отступы.

>> data: [a b c]

>> new-line next data true

>> data
== [a 
   b c
]

Обратите внимание, что в блоке [a b c] есть 4 "позиции кандидата" для новых строк (например, позиции [* a * b * c *]).Тем не менее, есть только три ячейки значения, с маркером новой строки, указывающим на желание вывести новую строку до этой ячейки.Не имея возможности поместить четвертый сигнал новой строки, в Rebol2 и Red принято неявно ставить закрывающую скобку на своей собственной строке, если были обработаны какие-либо маркеры новой строки.

Я уже упоминал что не совсем очевидно, как именно такая «внеполосная» информация управляется перед лицом серийных модификаций.Это помогает оправдать ваши ожидания.Даже если беспокоиться только о одном бите , есть много нюансов, например, когда вы говорите:

compose [
    1 + (block1)
    (block2)
]

Как следует объединять маркеры новой строки, между тем, что находится в COMPOSE, и тем, что находится всклеены сами данные?Это просто логика, связанная с один бит .Ввод «подсчета отступов» привел бы к еще большему количеству вопросов.Кроме того, для этого подсчета осталось не так много битов: одно из «правил игры» состоит в том, чтобы сократить до 4 указателей платформы на ячейку значения.

Расширение возможностей форматирования не являетсяслишком вероятноОдна особенность запроса, чтобы хвост получал свой собственный маркер новой строки, была принята для открытого исходного кода Rebol3 , но отклонена Red .Я не ожидал бы увидеть намного больше сделанного в этой области.

...