Tim Sobolev wrote:
У BM.prev есть спец.роль (см. уточнения к BM.add).
Я так понимаю эту особую роль можно заменить двумя обычными командами, применение которых абсолютно прозрачно и не требует примечаний в Писании.
И даже если преположить что
BM.prev таки нужен, его всё равно можно реализовать с помощью
BM.goto(BM_Prev) (где BM_Prev константа, со значением, к примеру, -2).
Tim Sobolev wrote:John Doe wrote:И правильно ли вообще обзывать вершину стека "хвостом" и "концом"?
Ну можешь предложить свой вариант наименование, суть я вроде описал
В данном случае я только лишь усомнился, с точки зрения здравого смысла. Если есть какая-то общепринятая практика именования - значит стоит её придерживаться.
(Какова практика мне неизвестно)
John Doe wrote:Code: Select all
Примечание для BM.add() и BM.prev()
Если была выполнена операция BM.add() и после неё BM.prev(), произойдёт
следующее:
а) Если текущая позиция в редакторе соответствует позиции, сохранённой в
BM.add(), то произойдёт переход на предшествующую, созданной BM.add(),
закладку.
Ну а если были множественные перемещения, и позиция совпадает совершенно
случайно?
Имхо этот пункт снижает предсказуемость закладок, не давая ничего взамен.
Tim Sobolev wrote:Создание закладки в текущей позиции редактора происходит ТОЛЬКО при вызове BM.prev и ТОЛЬКО для случая когда перед этим была вызвана BM.add, мы не стоим в позиции редактора, которая была при вызове BM.add и не производилось других, изменяющих состояние стековых закладок, операций. Такой функционал заложен изначально (ради него, по сути, эти закладки и добавлялись) и только для пары BM.add/BM.prev с целью простой и быстрой навигации, например при переходе на определение функции из колорера.
В результате мы незначительно экономим на явном вызове BM.Add, но зато существенно запутываем описание.